基于Proteus的單片機串口通信仿真.doc

基于Proteus的單片機串口通信仿真.doc

ID:56483411

大小:202.50 KB

頁數:12頁

時間:2020-06-24

基于Proteus的單片機串口通信仿真.doc_第1頁
基于Proteus的單片機串口通信仿真.doc_第2頁
基于Proteus的單片機串口通信仿真.doc_第3頁
基于Proteus的單片機串口通信仿真.doc_第4頁
基于Proteus的單片機串口通信仿真.doc_第5頁
資源描述:

《基于Proteus的單片機串口通信仿真.doc》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫

1、Proteus基于Proteus的串口通信仿真班級:電信13-2姓名:段學亮鄧成智崔俊杰鄧石磊陳亮高金玉成績:電子與信息工程學院信息與通信工程系1.設計要求1.1甲單片機向乙單片機機發(fā)送控制命令字符,甲單片機同時接收乙單片機機發(fā)送的數字,并顯示在數碼管上。1.2乙機程序接收甲機發(fā)送字符并完成相應動作乙機接收到甲機發(fā)送的信號后,根據相應信號控制LED完成不同閃爍動作。2.仿真電路圖串口通信仿真電路圖如圖一圖1:串口通信仿真電路圖3.串口通信C51程序/*名稱:甲機串口程序說明:甲機向乙機發(fā)送控制命令字符,甲機同時接收乙機發(fā)送的數字,并顯示在數碼管上。*/#include#

2、defineucharunsignedchar#defineuintunsignedintsbitLED1=P1^0;sbitLED2=P1^3;sbitK1=P1^7;ucharOperation_No=0;//操作代碼//數碼管代碼ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//延時voidDelayMS(uintms){uchari;while(ms--)for(i=0;i<120;i++);}//向串口發(fā)送字符voidPutc_to_SerialPort(ucharc){SBUF=

3、c;while(TI==0);TI=0;}//主程序voidmain(){LED1=LED2=1;P0=0x00;SCON=0x50;//串口模式1,允許接收TMOD=0x20;//T1工作模式2PCON=0x00;//波特率不倍增TH1=0xfd;TL1=0xfd;TI=RI=0;TR1=1;IE=0x90;//允許串口中斷while(1){DelayMS(100);if(K1==0)//按下K1時選擇操作代碼0,1,2,3{while(K1==0);Operation_No=(Operation_No+1)%4;switch(Operation_No)//根據操作代碼發(fā)送A/B/C或

4、停止發(fā)送{case0:Putc_to_SerialPort('X');LED1=LED2=1;break;case1:Putc_to_SerialPort('A');LED1=~LED1;LED2=1;break;case2:Putc_to_SerialPort('B');LED2=~LED2;LED1=1;break;case3:Putc_to_SerialPort('C');LED1=~LED1;LED2=LED1;break;}}}}//甲機串口接收中斷函數voidSerial_INT()interrupt4{if(RI){RI=0;if(SBUF>=0&&SBUF<=9)P0=D

5、SY_CODE[SBUF];elseP0=0x00;}}/*名稱:乙機程序接收甲機發(fā)送字符并完成相應動作說明:乙機接收到甲機發(fā)送的信號后,根據相應信號控制LED完成不同閃爍動作。*/#include#defineucharunsignedchar#defineuintunsignedintsbitLED1=P1^0;sbitLED2=P1^3;sbitK2=P1^7;ucharNumX=-1;//延時voidDelayMS(uintms){uchari;while(ms--)for(i=0;i<120;i++);}//主程序voidmain(){LED1=LED2=1;

6、SCON=0x50;//串口模式1,允許接收TMOD=0x20;//T1工作模式2TH1=0xfd;//波特率9600TL1=0xfd;PCON=0x00;//波特率不倍增RI=TI=0;TR1=1;IE=0x90;while(1){DelayMS(100);if(K2==0){while(K2==0);NumX=++NumX%11;//產生0~10范圍內的數字,其中10表示關閉SBUF=NumX;while(TI==0);TI=0;}}}voidSerial_INT()interrupt4{if(RI)//如收到則LED則動作{RI=0;switch(SBUF)//根據所收到的不同命令

7、字符完成不同動作{case'X':LED1=LED2=1;break;//全滅case'A':LED1=0;LED2=1;break;//LED1亮case'B':LED2=0;LED1=1;break;//LED2亮case'C':LED1=LED2=0;//全亮}}}4.交通燈仿真效果4.1按下甲單片機的按鈕向單片機乙發(fā)送數據,再松開甲單片機的按鈕,此時甲單片機的LED1和乙單片機的LED3亮如下圖4-1。4-1:甲機的LED1

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。