找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

2個(gè)單片機(jī)串口通訊代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:990536 發(fā)表于 2021-12-10 15:03 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
80C51 串口通訊程序
  1. /* 名稱:甲機(jī)發(fā)送控制命令字符  
  2. 說明:甲單片機(jī)負(fù)責(zé)向外發(fā)送控制命令字符“A”、“B”、“C”,或者停止發(fā)送,
  3. 乙機(jī)根據(jù)所接收到的字符完成LED1閃爍、LED2閃爍、雙閃爍、或停止閃爍。 */
  4. #include<reg51.h>
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. sbit LED1=P0^0;  

  8. sbit LED2=P0^3;
  9. sbit K1=P1^0;
  10. //延時(shí)
  11. void DelayMS(uint ms)
  12. {  
  13. uchar i;  
  14. while(ms--) for(i=0;i<120;i++);
  15. }
  16. //向串口發(fā)送字符
  17. void Putc_to_SerialPort(uchar c)
  18. {  
  19. SBUF=c;  
  20. while(TI==0);  
  21. TI=0;
  22. }
  23. //主程序
  24. void main()
  25. {  
  26. uchar Operation_No=0;  
  27. SCON=0x40;  
  28. //串口模式1
  29. TMOD=0x20;  
  30. //T1工作模式2  
  31. PCON=0x00;  
  32. //波特率不倍增  
  33. TH1=0xfd;  
  34. TL1=0xfd;  
  35. TI=0;
  36. TR1=1;  
  37. while(1)  
  38. {   
  39. if(K1==0) //按下K1時(shí)選擇操作代碼0,1,2,3
  40. {   
  41. while(K1==0);  
  42. Operation_No=(Operation_No+1)%4;  
  43. }   
  44. switch(Operation_No) //根據(jù)操作代碼發(fā)送A/B/C或停止發(fā)送
  45. {  
  46. case 0:
  47. LED1=LED2=1;  
  48. break;  
  49. case 1:
  50. Putc_to_SerialPort('A');  
  51. LED1=~LED1;LED2=1;  
  52. break;  
  53. case 2:
  54. Putc_to_SerialPort('B');  
  55. LED2=~LED2;LED1=1;  
  56. break;  
  57. case 3:
  58. Putc_to_SerialPort('C');  
  59. LED1=~LED1;LED2=LED1;  
  60. break;  
  61. }  
  62. DelayMS(100);
  63.         }
  64. }

復(fù)制代碼


Keil代碼下載: 80C51串口通訊SLJ.rar (31.91 KB, 下載次數(shù): 20)

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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