?? 資源詳細信息
?? 溫馨提示:本資源由用戶 umuo 上傳分享,僅供學習交流使用。如有侵權,請聯系我們刪除。
資源簡介
題目:基于51單片機的RS485從機系統設計
單片機接口資源配置:
1. 上電復位電路;
2. 晶振電路采用11.0592Mhz晶振;
3. 485接口電路(P3.7用于485芯片的收發控制,收發管腳接單片機的rxd和txd);
4. P2口通過外部跳線接相應的高低電平,配置從機地址為組號;
5. P3.6外接一發光二極管(注意串聯電阻進行限流);
6. P3.2外接一按鍵,斷開高電平,按下低電平;
7. 按鍵檢測采用外部中斷方式,下跳沿觸發;
8. 單片機定時器0以模式1(16位模式)工作,產生50ms的定時中斷,并在此基礎上設計一單片機內部時鐘(24小時制,能計數時、分、秒、50ms值);
9. 單片機串行通信采用模式1非多機通信方式,采用9600波特率以串行中斷方式進行數據的收發通信,主機地址為0xF0,廣播地址為0xFF。
系統功能需求:
1. 系統配置和自檢功能:
l 從機上電后進行初始化,通過讀取P2口進行從機地址配置;
l 發光二極管以每秒一次的頻率閃爍(亮0.5秒,滅0.5秒);
l 檢測到一次按鍵按下操作后,熄滅發光二極管。
2. 數據接收和按鍵計時功能:
l 從機接收主機程序(PC機上的串口調試程序)的按鍵允許命令幀并進行校驗;
l 校驗正確并且目的地址是廣播地址或者本從機的地址,通過發光二極管長亮指示,并允許按鍵操作;
l 按鍵按下后,盡可能準確記錄按鍵的動作時點(定時器的低8位、定時器的高8位、50ms值、秒、分、小時);
l 按鍵操作只能響應一次,重復按鍵操作不響應;
l 按鍵的動作時點記錄后,發光二極管以每秒一次的頻率閃爍(亮0.5秒,滅0.5秒)。
3. 數據發送功能:
l 從機接收主機程序發來的時鐘數據搜索命令幀并進行校驗;
l 如果校驗正確并且數據幀的目的地址是本從機的地址,從機將前面記錄的按鍵動作時點數據(定時器的低8位、定時器的高8位、50ms值、秒、分、小時)按附錄中的時鐘數據返回幀的幀格式回傳給主機;
l 時鐘數據返回幀回傳結束后,熄滅發光二極管。
4. 校驗和生成和檢測功能:
l 發送數據幀時能自動生成數據幀校驗和;
l 每幀數據在發送幀尾前,發送一字節的當前幀數據的校驗和;
l 接收數據幀時能檢測校驗和并判斷接收數據是否正確。
附錄:幀定義
校驗和的計算:除去幀頭和幀尾后將幀中的其他數據求和并取低8位;
幀長:不計幀頭、幀尾和校驗和字節。
按鍵允許命令幀:
|
幀頭 |
幀長 |
目的地址 |
源地址 |
命令字 |
校驗和 |
幀尾 |
|
AA |
04 |
FF |
F0 |
01 |
F4 |
66 |
時鐘數據搜索命令幀:
|
幀頭 |
幀長 |
目的地址 |
源地址 |
命令字 |
保留字 |
校驗和 |
幀尾 |
|
AA |
05 |
01 |
F0 |
03 |
00 |
F9 |
66 |
時鐘數據返回幀:
|
幀頭 |
幀長 |
目的地址 |
源地址 |
命令字 |
TL0 |
TH0 |
50ms |
秒 |
分 |
時 |
校驗和 |
幀尾 |
|
AA |
0A |
F0 |
01 |
07 |
01 |
B6 |
09 |
03 |
00 |
00 |
C5 |
66 |
幀結構頭文件frame.h(內容如下)
//幀格式定義
#define FRAME_HEAD 0xAA //幀頭
#define FRAME_FOOT 0x66 //幀尾
#define FRAME_LEN 0x00 //幀長
#define FRAME_DST_ADR 0x01 //目的地址
#define FRAME_SRC_ADR 0x02 //源地址
#define FRAME_CMD 0x03 //命令字
#define FRAME_DATA 0x04 //幀數據起始
//幀命令定義
#define READY 0x01 //按鍵允許命令
#define TIME_SERCH 0x03 //時鐘數據輪詢命令
#define TIME_BACK 0x07 //時鐘數據返回命令
//地址定義
#define BROAD_ADR 0xFF //廣播地址
#define MASTER_ADR 0xF0 //主機地址
立即下載此資源
資源說明
下載說明
- 下載需消耗 2積分
- 24小時內重復下載不扣分
- 支持斷點續傳
- 資源永久有效
使用說明
- 下載后用解壓軟件解壓
- 推薦 WinRAR 或 7-Zip
- 如有密碼請查看說明
- 解壓后即可使用
積分獲取
- 上傳資源獲得積分
- 每日簽到免費領取
- 邀請好友注冊獎勵
- 查看詳情 →