找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4960|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机 串口通信—数码管实验

[复制链接]
跳转到指定楼层
楼主
ID:203042 发表于 2017-5-23 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;
  6. sbit led=P1^1;
  7. uchar flag,num;
  8. uchar code table[]={
  9. 0x3f,0x06,0x5b,0x4f,
  10. 0x66,0x6d,0x7d,0x07,
  11. 0x7f,0x6f,0x77,0x7c,
  12. 0x39,0x5e,0x79,0x71};
  13. void delayms(uint xms)         //延时函数
  14. {
  15. uint i,j;
  16. for(i=xms;i>0;i--)
  17.      for(j=110;j>0;j--);
  18. }
  19. void display(uchar num)        //数码管显示函数
  20. {
  21.   uchar bai,shi,ge;
  22.   bai=num/100;
  23.   shi=num%100/10;
  24.   ge =num%10;
  25.   dula=1;
  26.   P0=table[bai];
  27.   dula=0;
  28.   P0=0xff;
  29.   wela=1;
  30.   P0=0x7e;
  31.   wela=0;
  32.   delayms(5);
  33.   dula=1;
  34.   P0=table[shi];
  35.   dula=0;
  36.   P0=0xff;
  37.   wela=1;
  38.   P0=0x7d;
  39.   wela=0;
  40.   delayms(5);
  41.   dula=1;
  42.   P0=table[ge];
  43.   dula=0;
  44.   P0=0xff;
  45.   wela=1;
  46.   P0=0x7b;
  47.   wela=0;
  48.   delayms(5);
  49. }       
  50. void ser() interrupt 4          //串口中断
  51. {  
  52.    RI = 0;
  53.    num = SBUF;            //从串口缓冲区取得数据
  54.    flag=1;
  55.   
  56.    }
  57.   
  58.    
  59.        

  60. void init()
  61. {
  62.     SCON=0x50;           //设定串口工作方式
  63.     PCON=0x00;           //波特率不倍增               
  64.     TMOD=0x20;           //定时器1工作于8位自动重载模式, 用于产生波特率
  65.     EA=1;
  66.     ES = 1;              //允许串口中断
  67.     TL1=0xfd;
  68.     TH1=0xfd;             //波特率9600
  69.     TR1=1;
  70. }
  71.                          
  72. void main()
  73. {
  74.    led=0;
  75.   wela=1;
  76.   P0=0x7f;
  77.   wela=0;
  78.   init();
  79.   while(1)
  80.    {
  81.   display(num)        ;
  82.   if(flag==1)           //标志判断
  83.   {

  84.   SBUF=num;
  85.   while(!TI);
  86.   TI=0;
  87.   flag=0;                  //标志清除
  88.   }
  89.           }
  90.   
  91. }
复制代码


全部资料下载地址:
串口实验.zip (21.88 KB, 下载次数: 28)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表