標題: 用PROTEUS仿真單片機串口通訊 [打印本頁]
作者: hansong。 時間: 2020-6-24 16:19
標題: 用PROTEUS仿真單片機串口通訊
設計要求:
實現與Proteus中的8051單片機進行串行通信。先回顧一下串行通信。在串行通信中有兩個引腳分別稱為TX和RX。TX引腳用于發送數據,而RX引腳用于接收數據。
8051微控制器具有這兩個引腳,因此它支持串行通信,并且這些引腳位于AT89C52微控制器的10號和11號引腳上。
首先,將對此項目進行原理圖設計(如下圖),在端口1上連接8個LED,并通過串行端口發送字符來打開或關閉這些LED。設計完原理圖之后,我們將為8051微控制器設計編程代碼,并測試結果。
#include <reg52.h>
#define Baud_rate 0xFD // BAUD RATE 9600
void SerialInitialize(void);
void SendByteSerially(unsigned char);
void cct_init(void);
sbit Appliance1 = P1^0;
sbit Appliance2 = P1^1;
sbit Appliance3 = P1^2;
sbit Appliance4 = P1^3;
sbit Appliance5 = P1^4;
sbit Appliance6 = P1^5;
sbit Appliance7 = P1^6;
sbit Appliance8 = P1^7;
void main()
{
cct_init();
SerialInitialize();
EA = 1;
ES = 1;
while(1) {;}
}
void cct_init(void) //initialize cct
{
P0 = 0x00; //not used
P1 = 0x00; //Used for Appliances
P2 = 0x00; //not used
P3 = 0x03; //used for serial
}
void SerialInitialize(void) // INITIALIZE SERIAL PORT
{
TMOD = 0x20;// Timer 1 IN MODE 2 -AUTO RELOAD TO GENERATE BAUD RATE
SCON = 0x50;// SERIAL MODE 1, 8-DATA BIT 1-START BIT, 1-STOP BIT, REN
//ENABLED
TH1 = Baud_rate;// LOAD BAUDRATE TO TIMER REGISTER
TR1 = 1;// START TIMER
}
void SendByteSerially(unsigned char serialdata)
{
SBUF = serialdata; // LOAD DATA TO SERIAL BUFFER REGISTER
while(TI == 0);// WAIT UNTIL TRANSMISSION TO COMPLETE
TI = 0;// CLEAR TRANSMISSION INTERRUPT FLAG
}
void serial_ISR (void) interrupt 4
{
//receive character
char chr;
if(RI==1)
{
chr = SBUF;
RI = 0;
}
P0 = ~P0; //Show the data has been updated
switch(chr)
{
case '1': Appliance1 = 1; SendByteSerially('k'); break;
case '2': Appliance2 = 1; SendByteSerially('k'); break;
case '3': Appliance3 = 1; SendByteSerially('k');break;
case '4': Appliance4 = 1; SendByteSerially('k'); break;
case '5': Appliance5 = 1; SendByteSerially('k'); break;
case '6': Appliance6 = 1; SendByteSerially('k'); break;
case '7': Appliance7 = 1; SendByteSerially('k'); break;
case '8': Appliance8 = 1; SendByteSerially('k'); break;
case 'a': Appliance1 = 0; SendByteSerially('k'); break;
case 'b':Appliance2 = 0; SendByteSerially('k'); break;
case 'c': Appliance3 = 0; SendByteSerially('k'); break;
case 'd': Appliance4 = 0; SendByteSerially('k'); break;
case 'e': Appliance5 = 0; SendByteSerially('k'); break;
case 'f': Appliance6 = 0; SendByteSerially('k'); break;
case 'g': Appliance7 = 0; SendByteSerially('k'); break;
case 'h': Appliance8 = 0; SendByteSerially('k'); break;
default: ;break; //do nothing
}
RI = 0;
}
-
1.png
(297.29 KB, 下載次數: 48)
下載附件
2020-6-24 16:16 上傳
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
亚洲综合色视频在线观看
|
国产精品成人一区二区
|
久久久成|
欧美日韩一
|
午夜久久久久
|
日本 欧美 三级 高清 视频
|
国产精品不卡一区
|
精品久久香蕉国产线看观看亚洲
|
69电影网
|
日本久久精品视频
|
亚洲激情第一页
|
日韩欧美在线观看视频网站
|
jizjizjiz中国护士18
|
欧美综合一区二区三区
|
91av亚洲
|
国产日韩欧美在线
|
亚洲视频一区在线观看
|
国产在线精品免费
|
欧美一级做a爰片免费视频
国产美女特级嫩嫩嫩bbb片
|
人成在线视频
|
成人精品一区二区三区四区
|
午夜欧美一区二区三区在线播放
|
亚洲嫩草|
日本精品久久
|
高清免费av
|
亚洲人久久
|
99精品欧美一区二区三区综合在线
|
国产综合精品
|
日韩中文字幕在线观看
|
亚洲高清在线免费观看
|
国产精品欧美一区二区
|
在线黄av
|
国产伦精品一区二区
|
久草在线
|
午夜专区
|
久久久精品久久
|
国产激情一区二区三区
|
国产精品亚洲精品日韩已方
|
国产日韩一区二区三免费高清
|
日韩精品在线观看一区二区三区
|
丁香五月网久久综合
|