找回密碼
         注冊(cè)會(huì)員
        搜索附件  

        串口通訊例程.rar

         

        51系列串口通訊例程:
        51系列單片機(jī)串口通訊例程

        以下為部分代碼,完整源代碼見(jiàn)附件

        1. // 題目:串口初始化C代碼
        2. // 要求:
        3. // 1.波特率1200bps,無(wú)奇偶校驗(yàn),停止位1,數(shù)據(jù)位8
        4. // 2.定時(shí)器T1做波特率發(fā)生器

        5. // 軟件模擬測(cè)試說(shuō)明:
        6. // 1.這個(gè)測(cè)試采用查詢方式進(jìn)行串口通訊
        7. // 2.將軟件仿真環(huán)境的晶震設(shè)為11.0592 MHz
        8. // 3.軟件模擬全速運(yùn)行, 觀察波特率是1200bps
        9. // 4.在串口1中輸入數(shù)字或字母,可觀察到通訊是否有誤。

        10. //#pragma src

        11. #include <reg51.h>

        12. //串口初始化
        13. void serial_init(void)
        14. {
        15. //ET1 = 0; //CLR 0ABH ;禁止T1中斷
        16. TMOD = 0x20; //MOV 89H,#20H ;timer 1 mode 2: 8-Bit reload(定時(shí)器T1 模式2: 8位自動(dòng)初值重裝)
        17. TH1 = 0xE8; //MOV 8DH,#0E8H
        18. TL1 = 0xE8; //MOV 8BH,#0E8H ;1200bps, 11.059
        19. TR1 = 1; //SETB 8EH ;啟動(dòng)定時(shí)器1

        20. SCON = 0x50; // mode 1: 10-bit UART, enable receiver(模式1: 10位異步發(fā)送/接收, 使能接收允許位)
        21. //SM1 = 1; // ;串行口 模式1
        22. //SM0 = 0;
        23. //REN = 1; // ;允許串行中斷接收

        24. SM2 = 1; //SETB O9DH ;收到有效的停止位時(shí)才將RI置1

        25. ES = 1; //SETB 0ACH ;允許串行中斷
        26. EA = 1; //SETB 0AFH ;總中斷開(kāi)
        27. }

        28. //中斷方式處理串口數(shù)據(jù)

        29. void serial(void) interrupt 4 using 1
        30. {
        31. if(RI)
        32. {
        33. // RI = 0;
        34. // 串口接收, 采用臨時(shí)緩沖
        35. }
        36. #if 0
        37. if(TI)
        38. {
        39. // TI = 0;
        40. // 串口發(fā)送, 沒(méi)有必要使用中斷方式
        41. }
        42. #endif

        43. }

        44. // 查詢方式接收串口數(shù)據(jù)
        45. unsigned char getchar(void)
        46. {
        47. while(!RI);// 沒(méi)有收到串口數(shù)據(jù)則一直等待
        48. RI=0;
        49. return SBUF;
        50. }
        51. // 查詢方式發(fā)送串口數(shù)據(jù)
        52. void putchar(unsigned char ch)
        53. {
        54. SBUF=ch;
        55. while(!TI);
        56. TI=0;
        57. }

        58. code unsigned char HEX_TAB []="0123456789ABCDEF";
        59. void puthex(unsigned char ch)
        60. {
        61. unsigned char i,j;
        62. i=ch>>4;
        63. j=ch&0x0f;
        64. putchar(HEX_TAB[i]);
        65. putchar(HEX_TAB[j]);
        66. }
        復(fù)制代碼

        QQ|手機(jī)版|MCU資訊論壇 ( 京ICP備18035221號(hào)-2 )|網(wǎng)站地圖

        GMT+8, 2025-3-18 12:40 , Processed in 0.041097 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2024 Discuz! Team.

        返回頂部
        香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 亚洲AV第一页国产精品| 日韩精品无码久久久久久| 91精品视频网站| 精品人妻少妇嫩草AV无码专区| 最近中文字幕免费4| 2020亚洲男人天堂精品| 国产系列高清精品第一页| 久久综合精品国产丝袜长腿| 国产精品一区二区久久精品| 香港三级精品三级在线专区| 国产精品水嫩水嫩| 国产精品自产拍在线观看花钱看 | 国产精品无码久久久久久| 国产精品 日韩欧美| 欧美在线成人午夜影视| 精品国产福利久久久| 亚洲精品国产精品乱码不卞| 国产a∨精品一区二区三区不卡| 国内精品国语自产拍在线观看 | 久久精品国产99国产精偷| 久久亚洲国产成人精品无码区| 久久精品人成免费| 国产精品免费久久久久久久久 | 国产69精品久久久久99尤物| 日本午夜vr影院新入口| 久久精品国产亚洲网站| 一区二区三区精品高清视频免费在线播放| avtt天堂网久久精品| 女人高潮内射99精品| 国产短视频精品一区二区三区| 亚洲国产精品无码久久青草| 日本精品不卡视频| 中文字幕久久精品无码| 国产精品一区二区久久精品无码| 日韩AV无码精品人妻系列| 精品乱子伦一区二区三区高清免费播放 | 成年黄页网站大全免费| 88国产精品无码一区二区三区| 亚洲精品无码鲁网中文电影| 国产精品成人99久久久久 |