本實驗可以初步了解怎樣通過上位機來進行數據的讀取和執行。本實驗將仿真打開可以將零到七任意一個數字輸入在上位機中,則相應的LED燈會被點亮。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #include "reg51.h"
- #define u8 unsigned char//0--255
- #define u16 unsigned int//0--65535
- //void delay16(u16 i){while(i--);}
- #include "uart.h"
- u8 code tab[20]={1,2,4,8,16,32,64,128,64,32,16,8,4,2,1};
- u8 i=0;//獲取電腦上位機通過串口發送過來的數
- void main()
- {
- UART1_init();
- while(1);
- }
- void UART_INT(void) interrupt 4//暫時只接收1個數
- {
- if(RI)//如果是串口輸入引起的中斷
- {
- i=SBUF & 0x0F;//或者i=SBUF-0x30;
- P1=~tab[i];
- RI=0;
- }
- else TI=0;//串口輸出引起的中斷,不管
- }
復制代碼
所有資料51hei提供下載:
串口控制1-8個LED.7z
(93.61 KB, 下載次數: 26)
2021-7-18 22:28 上傳
點擊文件名下載附件
|