找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1868|回复: 0
收起左侧

51单片机串口发送0-9数码管显示程序Proteus仿真图

[复制链接]
ID:585940 发表于 2022-1-28 19:07 | 显示全部楼层 |阅读模式
串口发送数字,数码管显示对应数字,只是个位数字
1.png

单片机源程序如下:
  1. #include         "reg52.h" //包含头文件

  2. #define          uchar         unsigned char
  3. #define          uint          unsigned int

  4. #define         DM             P0
  5. #define         WM             P2

  6. uchar           code           SMG_DM[]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
  7. uchar           code           SMG_WM[]={1,2,4,8};

  8. uchar           dis[4];

  9. uchar            dat = 0;

  10. //-------------------------------------------------------------------------------------
  11. void     delay(uint t)
  12. {
  13. while(t--);
  14. }
  15. //-------------------------------------------------------------------------------------
  16. void     Uart_Int_Init()
  17. {
  18.         SCON=0x40;
  19.         TMOD=0x20;
  20.         TH1=TL1=0xFD;
  21.         TR1=1;
  22.         EA=1; //开总中断
  23.         ES=1; //开串口中断        
  24.         REN=1; //打开接收
  25. }        
  26. //=====================================================================================
  27. void     main()    //主函数
  28. {                    
  29.         Uart_Int_Init();
  30.         delay(1000);

  31.         WM = SMG_WM[0];
  32.         
  33.         while(1)
  34.         {
  35.                 DM=SMG_DM[dat];
  36.         }         
  37. }
  38. //=====================================================================
  39. void     uart_isr(void) interrupt 4
  40. {
  41. RI=0;  //数据接收完成标志位
  42.         
  43. dat=SBUF;
  44. dat-='0';
  45.         if(dat>41)
  46.                 dat=dat-41+2;
  47. }
复制代码
Keil代码与Proteus仿真下载:
串口发送0~9,SMG显示(解压打开).zip (62 KB, 下载次数: 46)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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