在PROTEUS上采用雙單片機A和B,采取TXD連接另一個單片機的RXD,建立一對一通信A外接4個按鍵,編號1~3;B外接一個數(shù)碼管,平時顯示0。 A按鍵后,B顯示相應鍵號0.3秒;
進階要求1:A的TXD與B的RXD間加入按鍵開關K,通過K的ON/OFF來控制通信連接的有效和無效;
運行中,K由ON改為OFF,通信無效時,B不響應A的按鍵表示通信未建立;
進階2:通信無效時,B顯示9,表示通信無效;運行中K由OFF改為ON,系統(tǒng)自動回復正常
1,首先考慮資源分配
波特率設置要用定時器1自動重裝載模式。
定時器1用于產(chǎn)生10ms中斷
定時器2用來產(chǎn)生20ms中斷
故可選用89c52單片機
2:主函數(shù)完成3個定時器初始化函數(shù),之后在while(1)休眠或啥也不干。
3:定時器2中斷服務函數(shù):
自動重裝載模式不需要重置本定時器
按鍵掃描函數(shù)獲取鍵號,若無按鍵鍵號為0
重置并啟動超時定時器(tim0)
根據(jù)S_OK狀態(tài)點亮LED(S_OK=0時點亮)
4:接收中斷模塊
S_OK置1
關閉超時定時器
5:10ms定時中斷模塊
S_OK=0
關閉超時定時器
接收B板模塊
同樣需要3個定時器
1:main函數(shù)中三個定時器初始化
2:接收中斷
直接顯示鍵號,開啟0.3s定時器
重置啟動超時定時器
發(fā)送信息給A板
3:0.3s定時中斷
關閉本定時器
顯示0
4:超時中斷函數(shù)
S_OK=0
數(shù)碼管顯示9
關閉本定時器
關閉0.3s定時器
發(fā)送A板主函數(shù)文件程序示例。完整程序和proteus圖見附件。
單片機源程序如下:
全部資料51hei下載地址:
程序源碼和原理圖.rar
(105.97 KB, 下載次數(shù): 33)
2020-5-18 08:16 上傳
點擊文件名下載附件
|