久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4189|回復: 1
打印 上一主題 下一主題
收起左側

單片機串口單個數據和多個數據的發送和接受程序及proteus仿真

[復制鏈接]
跳轉到指定樓層
樓主
單片機發送和接受單個數據或者多個數據的源程序及仿真,下面是原理圖:



仿真工程文件及所有完整程序等資料下載地址(壓縮包一共有45個單片機仿真,全部下載后找到這個項目027即可):
http://www.zg4o1577.cn/bbs/dpj-56298-1.html


單片機串口多個數據的發送程序:
  1. /********************************************************************
  2.                            天馬電子
  3. *********************************************************************/
  4. #include<reg52.h>                 //庫文件
  5. #define uchar unsigned char//宏定義無符號字符型
  6. #define uint unsigned int  //宏定義無符號整型
  7. /********************************************************************
  8.                             初始定義
  9. *********************************************************************/
  10. code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數碼管字跟
  11. uchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端

  12. code uchar dat[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //發送的數據
  13. uchar shu;
  14. /********************************************************************
  15.                             延時函數
  16. *********************************************************************/
  17. void delay(uchar t)
  18. {
  19.   uchar i,j;
  20.    for(i=0;i<t;i++)
  21.    {
  22.             for(j=13;j>0;j--);
  23.          { ;
  24.          }
  25.    }
  26. }


  27. void delayms(uchar n)
  28. {
  29. uchar m,s;
  30. for(m=n;m>0;m--)
  31. for(n=20;n>0;n--)
  32. for(s=248;s>0;s--);
  33. }

  34. /********************************************************************
  35.                             顯示函數
  36. *********************************************************************/        
  37. void Led(uchar date) //顯示函數
  38. {
  39. /*****************數據轉換*****************************/
  40. uint z,x,c,v;
  41.   z=date/1000;                         //求千位
  42.   x=date%1000/100;                 //求百位
  43.   c=date%100/10;                 //求十位
  44.   v=date%10;                         //求個位

  45.       P2=0XFF;
  46.           P0=seg7code[z];
  47.           P2=wei[0];
  48.           delay(80);
  49.           P2=0XFF;  
  50.       P0=seg7code[x];
  51.           P2=wei[1];
  52.           delay(80);
  53.           P2=0XFF;  
  54.              P0=seg7code[c];
  55.           P2=wei[2];
  56.           delay(80);
  57.           P2=0XFF;  
  58.       P0=seg7code[v];
  59.           P2=wei[3];
  60.           delay(80);
  61.           P2=0XFF;
  62. }
  63. /********************************************************************
  64.                 功能:串口初始化,波特率9600,方式1
  65. *********************************************************************/

  66. void Init_Com(void)
  67. {
  68. TMOD = 0x20;
  69. PCON = 0x00;
  70. SCON = 0x50;
  71. TH1 = 0xFd;
  72. TL1 = 0xFd;
  73. TR1 = 1;
  74. }
  75. /********************************************************************
  76.                             主函數
  77. *********************************************************************/
  78. void main()
  79. {
  80. uchar a;
  81. uint b;
  82. Init_Com();
  83. while(1)
  84. {
  85. for(a=0;a<10;a++)
  86. {
  87. delayms(20);
  88. SBUF = dat[a];
  89. shu  = dat[a];
  90. Led(shu); //顯示數據
  91. while(TI==0);
  92. TI=0;
  93. }
  94.    

  95. }
  96. }
  97.         
  98. /********************************************************************
  99.                               結束
  100. *********************************************************************/
復制代碼

單片機串口多個數據的發送程序:
  1. /********************************************************************
  2. *********************************************************************/
  3. #include<reg52.h>                 //庫文件
  4. #define uchar unsigned char//宏定義無符號字符型
  5. #define uint unsigned int  //宏定義無符號整型
  6. /********************************************************************
  7.                             初始定義
  8. *********************************************************************/
  9. code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數碼管字跟
  10. uchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端
  11. uchar dat; //用于存儲單片機接收發送緩沖寄存器SBUF里面的內容
  12. uchar i;
  13. /********************************************************************
  14.                             延時函數
  15. *********************************************************************/
  16. void delay(uchar t)
  17. {
  18.   uchar i,j;
  19.    for(i=0;i<t;i++)
  20.    {
  21.             for(j=13;j>0;j--);
  22.          { ;
  23.          }
  24.    }
  25. }

  26. /********************************************************************
  27.                             顯示函數
  28. *********************************************************************/        
  29. void Led(uchar date) //顯示函數
  30. {
  31. /*****************數據轉換*****************************/
  32. uint z,x,c,v;
  33.   z=date/1000;                         //求千位
  34.   x=date%1000/100;                 //求百位
  35.   c=date%100/10;                 //求十位
  36.   v=date%10;                         //求個位

  37.       P2=0XFF;
  38.           P0=seg7code[z];
  39.           P2=wei[0];
  40.           delay(80);
  41.           P2=0XFF;  
  42.       P0=seg7code[x];
  43.           P2=wei[1];
  44.           delay(80);
  45.           P2=0XFF;  
  46.              P0=seg7code[c];
  47.           P2=wei[2];
  48.           delay(80);
  49.           P2=0XFF;  
  50.       P0=seg7code[v];
  51.           P2=wei[3];
  52.           delay(80);
  53.           P2=0XFF;
  54. }

  55. /********************************************************************
  56.                             鍵盤取值函數
  57. *********************************************************************/
  58. void Keyin(void)
  59. {
  60. i=8;

  61. switch(dat)
  62.   {
  63.    case 1:i=0;break;
  64.    case 2:i=1;break;
  65.    case 4:i=2;break;
  66.    case 8:i=3;break;
  67.    case 16:i=4;break;
  68.    case 32:i=5;break;
  69.    case 64:i=6;break;
  70.    case 128:i=7;break;
  71.    default:break;
  72.   }
  73. }

  74. /********************************************************************
  75.                 功能:串口初始化,波特率9600,方式1
  76. *********************************************************************/

  77. void Init_Com(void)
  78. {
  79. TMOD = 0x20;
  80. PCON = 0x00;
  81. SCON = 0x50;
  82. TH1 = 0xFd;
  83. TL1 = 0xFd;
  84. TR1 = 1;
  85. }

  86. /********************************************************************
  87.                             主函數
  88. 說明:串口發送十六進制數 01 02 04 08 10 20 40 80         (發送其他數字顯示 8)
  89.       對應的數碼管顯示   0   1  2  3  4  5  6  7

  90. *********************************************************************/
  91. void main()
  92. {
  93. Init_Com();//串口初始化

  94. while(1)
  95. {
  96.                      
  97. if( RI) //掃描判斷是否接收到數據,
  98. {
  99. dat = SBUF; //接收數據SBUF賦與dat
  100. RI=0;
  101. Keyin();
  102. SBUF=dat;
  103. }
  104. Led(i); //顯示鍵盤函數所對應的數據
  105. }
  106. }
  107.         
  108. /********************************************************************
  109.                               結束
  110. *********************************************************************/
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:240534 發表于 2017-10-18 12:02 | 只看該作者
大神能不能發一份給我啊,我的黑幣不夠下載不了,郵箱是:2859852818@qq.com,萬分感謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情综合网 | 精品久久久久久 | 成人免费视频网 | 国产999精品久久久久久 | 91精品国产91久久综合桃花 | 色www精品视频在线观看 | 欧美日产国产成人免费图片 | 日韩国产在线 | 古典武侠第一页久久777 | 99久久国产精 | 一区二区三区四区在线视频 | 欧美一区二区三区久久精品 | 2018国产大陆天天弄 | 2022精品国偷自产免费观看 | 国产精品一区在线 | 亚洲色视频 | 欧美中文字幕 | 围产精品久久久久久久 | 国产一区高清 | 国产精品视频入口 | a级片在线观看 | 日韩久久久久久 | 成人久久18免费网站 | 国产成人99久久亚洲综合精品 | 国产精品视频一 | 久久久一区二区三区 | 在线观看av网站 | 亚洲精品日本 | 国产一区久久久 | 亚洲欧美日本在线 | 黄色精品| 91 久久| 精品欧美乱码久久久久久 | 在线日韩欧美 | 神马久久久久久久久久 | 国产精品99久久久久久宅男 | 在线免费视频一区 | 久久久福利 | 爱草在线 | 性欧美精品一区二区三区在线播放 | 日韩综合在线播放 |