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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PC(Python)+51單片機C語言之串口通信篇

[復制鏈接]
跳轉到指定樓層
樓主
PC端為Python所寫,運行時需要增加2個虛擬串口。
PC(Python)運行界面


仿真電路圖


  1. import serial   #導入serial
  2. import tkinter as tk  #導入tkinter

  3. ser = serial.Serial("COM2", 9600,timeout = 0)

  4. def btn1Clicked():
  5.     ser.write('1'.encode())
  6.     labelHello.config(text = "LED ON")

  7. def btn2Clicked():
  8.     ser.write('2'.encode())
  9.     labelHello.config(text = "LED OFF")

  10. def winsafter():
  11.         Ent1.delete(0,"end")
  12.         Ent1.insert(0,ser.read(1))
  13.         top.after(1000,winsafter)

  14. # 建立tkinter窗口,設置窗口標題
  15. top = tk.Tk()
  16. top.title("Device Control(BPS:9600)")
  17. top.geometry("380x180")

  18. # 在窗口中創建標簽及設置位置
  19. labelHello = tk.Label(top, text = "Press the button……")
  20. labelHello.place(x=130, y=40)


  21. # 在窗口中創建按鈕
  22. btn1 = tk.Button(top, text = "打開", command = btn1Clicked)
  23. btn2 = tk.Button(top, text = "關閉", command = btn2Clicked)

  24. # 設置按鈕位置
  25. btn1.place(x=130, y=80)
  26. btn2.place(x=210, y=80)

  27. tk.Label(top, text = "報警狀態:").place(x=130, y=130)
  28. Ent1 = tk.Entry(top,width=7)
  29. Ent1.place(x=190, y=130)


  30. top.after(1000,winsafter)

  31. # 運行并顯示窗口
  32. top.mainloop()
復制代碼

  1. #include "reg52.h"

  2. sbit LED=P2^0;
  3. sbit key1=P1^0;
  4. sbit key2=P1^3;

  5. unsigned char senddata;
  6. unsigned char putdata[]={0x31,0x32,0x33,0x34,'\0'};

  7. void delay(unsigned int z)
  8. {
  9.         unsigned int x,y;
  10.         for(x=z;x>0;x--)
  11.         for(y=1000;y>0;y--);        
  12. }

  13. //串口初始化,波特率9600BPS(晶振為11.0592M)
  14. void InitializeSystem()
  15. {
  16.         SCON = 0X50;//串口方式1,允許接收
  17.         TMOD = 0X20;//定時器1定時方式2
  18.         TCON = 0x40;//設定時器1開始計數
  19.         TH1 = TL1 = 250;
  20.         PCON = 0x80; //波特率加倍控制,SMOD位
  21.         RI = 0; //清收發標志
  22.         TI = 0;
  23.         TR1 = 1; //啟動定時器
  24.         EA=1;                //開啟總中斷
  25.         ES = 1;
  26.         ET1=0;
  27. }


  28. //字符發送函數
  29. void putchar(unsigned char data1)  
  30. {
  31.         SBUF = data1;               //將待發送的字符送入發送緩沖器
  32.         while(TI == 0);            //等待發送完成
  33.         TI = 0;                     //發送中斷標志請0
  34. }

  35. //字符串發送函數
  36. void putstring(unsigned char *dat)
  37. {
  38.         while(*dat != '\0')           //判斷字符串是否發送完畢
  39.         {
  40.                 putchar(*dat);        //發送單個字符
  41.                 dat++;                 //字符地址加1,指向先下一個字符
  42.                 delay(5);
  43.         }
  44. }

  45. //主函數
  46. void main( )
  47. {   
  48.         InitializeSystem( );
  49.         while(1)
  50.         {
  51.                 if(senddata=='1')
  52.                 {
  53.                         LED=0;
  54.                 }
  55.                 if(senddata=='2')
  56.                 {
  57.                         LED=1;
  58.                 }
  59.                
  60.                 if(key1==0)
  61.                 {
  62.                         while(key1==0){}
  63.                         putchar(0x31);
  64.                 }
  65.                 if(key2==0)
  66.                 {
  67.                         while(key2==0){}
  68.                         putstring(putdata);
  69.                 }
  70.                
  71.         }
  72. }

  73. //接收中斷函數
  74. void revdata(void) interrupt 4
  75. {
  76.         if(RI == 0) return;         //如果沒有接收中斷標志,返回
  77.         ES = 0;            //關閉串口中斷
  78.         RI = 0;            //清串行中斷標志位
  79.         senddata=SBUF;
  80.         ES = 1;                 //開啟串口中斷
  81. }

復制代碼

工程包


以上資料51hei附件下載:
PC(Python) 51單片機(C51).rar (55.85 KB, 下載次數: 28)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:112693 發表于 2022-11-6 21:49 | 只看該作者
沙發,學習一下,謝謝樓主的分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩免费毛片视频 | 久久久久久久99 | 丝袜美腿一区 | 毛片片| 久草网视频| 日韩在线xx | 成人精品一区亚洲午夜久久久 | 99re在线视频 | 国产三级精品视频 | 亚洲 欧美 日韩在线 | 久久毛片 | 欧美一级免费看 | 国产成人精品一区二区三区网站观看 | 中文字幕一区二区三区不卡在线 | 国产中文字幕在线 | 日本久久精品视频 | 欧美一区二区三区四区视频 | 成人av免费 | 欧洲高清转码区一二区 | 久久久久国产一区二区三区不卡 | 精品国产一二三区 | 亚洲欧洲小视频 | 国产伦精品一区二区三区照片91 | 国产精品久久久久久婷婷天堂 | 福利网址| 红色av社区| 亚洲精品免费观看 | 日韩精品免费视频 | 99综合网 | 亚洲免费在线观看视频 | avmans最新导航地址 | 午夜电影网站 | 亚洲精品乱码久久久久v最新版 | 亚洲欧美在线免费观看 | 久久精品久久精品 | 一区在线视频 | 亚洲一区精品视频 | 日日操视频 | 亚洲一区电影 | 免费午夜电影 | 99re6在线视频精品免费 |