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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

RS232單片機串口實驗

[復制鏈接]
跳轉到指定樓層
樓主
RS232串口實驗,在附件里,一共有4個程序 分別實現4個不同的功能。

LCD1602顯示接收到HEX數據
數碼管顯示接收到的HEX數據
返回接收到的數據
發送數據



下面是數碼管的那個源碼:
  1. /*******************************************************************************
  2. *                 
  3. *                                        普中科技
  4. --------------------------------------------------------------------------------
  5. * 實 驗 名                 : RS232串口試驗
  6. * 實驗說明       : 單片機將串口接收到的數據以10進制顯示在數碼管上。
  7. * 連接方式       : 見連接圖
  8. * 注    意                 :
  9. *******************************************************************************/

  10. #include<reg51.h>

  11. //--定義使用的IO--//
  12. #define GPIO_DIG P0

  13. sbit LSA=P2^2;
  14. sbit LSB=P2^3;
  15. sbit LSC=P2^4;

  16. //--定義全局變量--//
  17. unsigned char code DIG_CODE[17]={
  18. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  19. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  20. //0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
  21. unsigned char DisplayData[8];
  22. //用來存放要顯示的8位數的值

  23. //--聲明全局函數--//
  24. void DigDisplay();         //動態顯示函數          
  25. void UsartConfiguration();
  26. /*******************************************************************************
  27. * 函 數 名         : main
  28. * 函數功能                   : 主函數
  29. * 輸    入         : 無
  30. * 輸    出         : 無
  31. *******************************************************************************/

  32. void main()
  33. {
  34.         unsigned char receiveData;

  35.         UsartConfiguration();
  36.         while(1)
  37.         {
  38.                 if(RI == 1)                                //查看是否接收到數據
  39.                 {
  40.                         receiveData = SBUF;        //讀取數據
  41.                         RI = 0;                                //清除標志位

  42.                         //--因為一次接受只能接收到8位數據,最大為255,所以只用顯示百位之后--//
  43.                         DisplayData[0] = 0x00;
  44.                         DisplayData[1] = DIG_CODE[receiveData / 100];      // 百位
  45.                         DisplayData[2] = DIG_CODE[receiveData % 100 / 10]; // 十位
  46.                         DisplayData[3] = DIG_CODE[receiveData % 10];           // 個位
  47.                         DisplayData[4] = 0x00;
  48.                         DisplayData[5] = DIG_CODE[receiveData / 100];      // 百位
  49.                         DisplayData[6] = DIG_CODE[receiveData % 100 / 10]; // 十位
  50.                         DisplayData[7] = DIG_CODE[receiveData % 10];
  51.                 }
  52.                 DigDisplay();
  53.         }
  54. }
  55. /*******************************************************************************
  56. * 函 數 名         :UsartConfiguration()
  57. * 函數功能                   :設置串口
  58. * 輸    入         : 無
  59. * 輸    出         : 無
  60. *******************************************************************************/

  61. void UsartConfiguration()
  62. {
  63.         SCON=0X50;                        //設置為工作方式1
  64.         TMOD=0X20;                        //設置計數器工作方式2
  65.         PCON=0X80;                        //波特率加倍
  66.         TH1=0XF3;                    //計數器初始值設置,注意波特率是4800的
  67.         TL1=0XF3;
  68.         TR1=1;                                            //打開計數器
  69. }
  70. /*******************************************************************************
  71. * 函 數 名         : DigDisplay
  72. * 函數功能                   : 使用數碼管顯示
  73. * 輸    入         : 無
  74. * 輸    出         : 無
  75. *******************************************************************************/
  76. void DigDisplay()
  77. {
  78.         unsigned char i;
  79.         unsigned int j;
  80.         for(i=0;i<8;i++)
  81.         {
  82.                 switch(i)         //位選,選擇點亮的數碼管,
  83.                 {
  84.                         case(0):
  85.                                 LSA=0;LSB=0;LSC=0; break;//顯示第0位
  86.                         case(1):
  87.                                 LSA=1;LSB=0;LSC=0; break;//顯示第1位
  88.                         case(2):
  89.                                 LSA=0;LSB=1;LSC=0; break;//顯示第2位
  90.                         case(3):
  91.                                 LSA=1;LSB=1;LSC=0; break;//顯示第3位
  92.                         case(4):
  93.                                 LSA=0;LSB=0;LSC=1; break;//顯示第4位
  94.                         case(5):
  95.                                 LSA=1;LSB=0;LSC=1; break;//顯示第5位
  96.                         case(6):
  97.                                 LSA=0;LSB=1;LSC=1; break;//顯示第6位
  98.                         case(7):
  99.                                 LSA=1;LSB=1;LSC=1; break;//顯示第7位       
  100.                 }
  101.                 GPIO_DIG=DisplayData[i];//發送段碼
  102.                 j=10;                                                 //掃描間隔時間設定
  103.                 while(j--);       
  104.                 GPIO_DIG=0x00;//消隱
  105.         }
  106. }
復制代碼


21、RS232串口實驗.rar

2.91 MB, 下載次數: 24, 下載積分: 黑幣 -5

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

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av黄色在线| 亚洲成人播放器 | 91精品久久久 | 国产成人免费视频网站高清观看视频 | 九九九久久国产免费 | 中文字幕av高清 | 91精品久久久久久综合五月天 | 亚洲中字在线 | 亚洲欧洲精品成人久久奇米网 | 成人久草 | 国产91丝袜在线播放 | 91精品国产91久久久久久吃药 | 免费一区在线观看 | 国产成人免费视频 | 精品免费国产一区二区三区 | 欧美精品在欧美一区二区少妇 | 欧洲高清转码区一二区 | 日韩欧美一级片 | 你懂的免费在线 | 91在线电影 | 成人激情视频免费观看 | 99re6在线视频精品免费 | 久久精品视频一区二区三区 | 99久热在线精品视频观看 | 国内精品99 | 欧美视频网 | 一区二区三区四区日韩 | 1000部精品久久久久久久久 | 日韩精品视频在线观看一区二区三区 | 91精品国产92| 久久精品久久久 | 久久综合久久久 | 日韩精品久久一区二区三区 | 亚洲第一女人av | 国产精品久久久久久久久久软件 | 国产在线观看 | 亚洲精品中文在线观看 | 日本久久www成人免 成人久久久久 | 久久久精品一区 | 午夜视频在线免费观看 | 午夜私人影院在线观看 |