找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5502|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī) 串口通信—數(shù)碼管實(shí)驗(yàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:203042 發(fā)表于 2017-5-23 10:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  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)         //延時(shí)函數(shù)
  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)        //數(shù)碼管顯示函數(shù)
  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;            //從串口緩沖區(qū)取得數(shù)據(jù)
  54.    flag=1;
  55.   
  56.    }
  57.   
  58.    
  59.        

  60. void init()
  61. {
  62.     SCON=0x50;           //設(shè)定串口工作方式
  63.     PCON=0x00;           //波特率不倍增               
  64.     TMOD=0x20;           //定時(shí)器1工作于8位自動(dòng)重載模式, 用于產(chǎn)生波特率
  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)           //標(biāo)志判斷
  83.   {

  84.   SBUF=num;
  85.   while(!TI);
  86.   TI=0;
  87.   flag=0;                  //標(biāo)志清除
  88.   }
  89.           }
  90.   
  91. }
復(fù)制代碼


全部資料下載地址:
串口實(shí)驗(yàn).zip (21.88 KB, 下載次數(shù): 28)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表