freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計--單片機多機通信實現(xiàn)(完整版)

2025-01-18 20:13上一頁面

下一頁面
  

【正文】 示選擇從機錯誤 13B uchar code disp_key0[] Host or Slave.。 //顯示按鍵錯誤 第一行 16B uchar code disp_keye2[] Please again!。 //發(fā)送數(shù)據(jù)區(qū)首址 uchar data * const RecAddr 0x80。//主機發(fā)送與接收計數(shù) uchar data SScount,SRcount。將擬定的方案轉(zhuǎn)化為實際成果,即繪制好該方案的圖紙,并參考各方面的資料,不斷的修正完善設(shè)計方案。但檢錯機制不夠精確,難以保證 很高的正確率,還需進一步完善。串口初始化使串口工作在方式三, 9 位數(shù)據(jù)位。由鍵盤程序負責 調(diào)度。通信子程序包括主機模式通信與從機模式通信。直流輸入與交流輸入類似,都要經(jīng)過整流橋,確保電 解電容 C4不會反接,穩(wěn)壓電路公用,用 MC7805實現(xiàn) 5V 直流穩(wěn)壓,最大可輸出 1A 的電流,足以為整個系統(tǒng)供電。輸入八個端均是低電平有效,對地平編碼,輸出為對應的反碼。 圖 4- 13 主機權(quán)分配電路 將此主機權(quán)分配電路設(shè)在 1號單片機電路中,不 需接插件來連接 1號單片機。 LED2 為綠色接到 腳,用于指示本機為從機,只有本機是從機時才發(fā)光。本單片機作為一塊電路板,通過此接插件接口,用三根的排線接口接 到優(yōu)先編碼器的輸入端即可。 2 號與 3 號單片機按鍵電路設(shè)計 2 號與 3 號單片機均有四個按鍵,分別為從機選擇鍵、通信方向選擇鍵、啟動通信鍵與設(shè)置主從機鍵。 每個三態(tài)門的邏輯結(jié)構(gòu)圖如下: 圖 4- 9 74HC126 的三態(tài)門內(nèi)部邏輯結(jié)構(gòu)圖 輸入 nA 經(jīng)四次反相后等效于同相。該單片機此時就起主機作用。 液晶顯示電路設(shè)計 液晶顯示電路如下圖: 圖 4- 3 液晶 LCD1602 顯示電路 P0 口上拉 10K 8 的排阻,自己畫的排阻符號如下: 圖 4- 4 排阻符號 排阻具有九個引腳,一個公共端,另外八個腳分別接到 需要接上拉電阻的單片機的 P0 口。 ?????? 將使用者自己設(shè)計的圖形存入 CGRAM。參數(shù)設(shè)定的情況如下: ?????位名 ????????????? 設(shè)置 ?????D??????????????? 0 顯示功能關(guān) ?????????????? 1 顯示功能開 ?????C??????????????? 0 無光標 ?????????????????? 1 有光標 ?????B??????????????? 0 光標閃爍 ???????????????? 1 光標不閃爍 功能:使光標移位或使整個顯示屏幕移位。因此我們在向 DDRAM 寫 C51 字符代碼程序時甚至可以直接用P1= 39。在 PC 上我們只要打開文本文件就能在屏幕上看到對應的字符是因為在操作系統(tǒng)里和 BIOS 里都固化有字符字模。 市面上字符液晶絕大多數(shù)是基 于 HD44780 液晶芯片的,控制原理是完全相同的,因此 HD44780 寫的控制程序可以很方便地應用于市面上大部分的字符型液晶。定時器 2 外部允許標志位。 EXEN2 1 時, T2EX 上的負跳變而出現(xiàn)捕捉或重載時, EXF2 會被硬件置位。用戶不應該給這些未定義的地址寫入數(shù)據(jù)“ 1”。 :外部程序存儲器選通信號( PSEN)是外部程序存儲器選通信號。 :地址鎖存控制信號( ALE)是訪問外部程序存儲器時,鎖存低 8 位地址的輸出脈沖。在訪問外部程序存儲器或用 16 位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR)時, P2 口送出高八位地址。程序校驗時,需要外部上拉電阻。 RI 置位表示一幀數(shù)據(jù)接收完畢,可用查詢的方法獲知或者用中斷的方法獲知。 TI:發(fā)送中斷標志。 REN:接收允許控制位。 本研究已經(jīng)仿真通過,真實可行。對于 1 號單片機,還可通過液晶實時顯示工作狀態(tài),初始為主機。本文重點研究了多單片機的平權(quán)式多機通信,使各單片機有相同的權(quán)限。然后從機發(fā)給主機校驗字節(jié)數(shù)據(jù),主機檢驗錯誤,檢驗無誤后,作出響應, 1 號單片機液晶會顯示, 2 號和 3 號單片機收發(fā)數(shù)據(jù)無誤后會使 LED 指示燈亮起。在方式 0 時, SM2 一定要等于 0。在方式 0 中不使用 RB8。 RI:接收中斷標志位。當訪問外部程序和數(shù)據(jù)存儲器時, P0 口也被作為低 8 位地址 /數(shù)據(jù)復用。 P2 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口, P2 輸出緩沖器能驅(qū)動 4 個 TTL 邏輯電平。對 P3 端口寫“ 1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。這一位置“ 1”, ALE 僅在執(zhí)行 MOVX 或 MOVC 指令時有效。 在 flash 編程期間, EA 也接收 12 伏 VPP 電壓。必須軟件清“ 0”。若 RCLK 1,串行口將使用定時器 2 溢出脈沖作為串行口工作模式 1 和 3 的串口接收時鐘; RCLK= 0,將使用定 時器 1 計數(shù)溢出作為串口接收時鐘。當 EXEN2 1 時,為 1, T2EX 出現(xiàn)負脈沖,會引起捕捉操作;當定時器 2 溢出或 EXEN2 1 時 T2EX 出現(xiàn)負跳變,都會出現(xiàn)自動重載操作。第二行也一樣用前 16 個地址。下圖說明了 CGROM 和 CGRAM 與字符的對應關(guān)系。 功能: 把光標撤回到顯示器的左上方 ?????? 把地址計數(shù)器 AC 的值設(shè)置為 0 ?????? 保持 DDRAM 的內(nèi)容不變。當 BF 0 時 ,液晶顯示器可以接收單片機送來的數(shù)據(jù)或指令 。正常工作時,按下按鍵SW1 就可以使單片機復位。 口用于控制接口的連接方式。具體功能結(jié)構(gòu)圖如下: 圖 4- 8 74HC126 的功能圖 引腳 13 為使能端,當使能端為高電平時,該三態(tài)門有效,輸出等于輸入,具體的真值表如下: 表 4- 1 74HC126 的真值表 表中 H 表示高電平, L 表示低電平。 74HC04 的真值表如下: 表 4- 2 74HC04 的真值表 表中 L 表示低電平, H 表示高電平。 SW5 接 R10 到電源,被拉至高電平,當按鍵按下時,接插件 J3 的 1 腳變成低電平,外接到 74HC148 優(yōu)先編碼器的輸入端,去申請主機權(quán)。兩個 LED 的連接類似與下圖中 LED6 與 LED7 的連接,分別接到 1 號單片。 LED 顯示電路的電源均為+ 5V,限流電阻均取 510 歐姆。優(yōu)先級有 7到 0 遞減,按照電路,優(yōu)先級順序為: 1HS 2HS 3HS,即 1 號單片機的權(quán)限最高。 圖 4- 16 74HC20 的功能圖 每個四輸入與非門又又由一些門電路組成,具體組成如下: 圖 4- 17 74HC20 的單個與非門的邏輯圖 74HC20 的真值表如下: 表 4- 4 74HC20 的真值表 表中左邊為輸入, nY 為輸出, L 表示低電平, H 表示高電平, X 表示無關(guān)有真值表可知,四個輸入端只要有一個為低電平,輸出就為高電平,只有當輸入均為高電平時,輸出才為低電平。用 Proteus 作為仿真工具,與 Keil C51 uVesion3 聯(lián)合調(diào)試,最終達到了設(shè)計要求,仿真無誤。 多機通信協(xié)議的算法設(shè)計 每個單片機均有兩種通信模式,即主機模式與從機模式,主機模式流程如下: 圖 5- 3 主機模式通信流程圖 從機模式通信流程如下: 圖 5- 4 從機模式通信流程圖 鍵盤程序設(shè)計 1 號單片機的按鍵采用矩陣形式, 4 3 的行列矩陣,共 12 個按鍵,可以完成多種控制功能。具體流程如下: 圖 5- 6 按鍵處理流程圖 主機設(shè)置流程如下: 圖 5- 7 主機設(shè)置流程圖 通信方向設(shè)置流程如下: 圖 5- 8 通信方向設(shè)置流程圖 從機選擇流程如下: 圖 5- 9 從機選擇流程圖 系統(tǒng)初始化程序設(shè)計 系統(tǒng)初始化程序包括定時器初始化、串口初始化、發(fā)送數(shù)據(jù)初始化和全局變量初始化。輸出字符的 ASCII 碼,液晶顯示對應的字符。同時也很感謝學校開放機房供我們用于畢業(yè)設(shè)計,為我提供了一個很好的學習環(huán)境。 //接收到的主機號 uchar data Slave。 //主機與從機標志 2 sbit HS P2^2。 uchar data * const du 0xa0。 //顯示命令 0 4B uchar code disp_cmde[] Command Error!。 uchar code disp_keyc[] Cancel。//獲取鍵值函數(shù) void init_t 。 //主從機確認處理 void cmd_deal 。 //串口通信子程序 主機模式 void mus 。0xf1 ! 0xf1 // 延時后再判斷一次,去除抖動影響 scancode 0xfd。// 行掃描碼左移一位 return 0 。 // SMOD 1 SCON 0xd0。\039。 if SET 0 delay 5 。amp。 while keyscan 。 writedata *dis 。 dis++。 else writedata key 。 //主從機設(shè)置 break。 //命令設(shè)置 break。//顯示工作狀態(tài) break。 writedata *dis 。 /*****************主從機確認處理 *********************/ void HS_deal //主從機確認處理 uchar code *dis。\039。 nop。 dis++。 writedata *dis 。 lcd_pos 0x40 。 else dis disp_HS1。 lcd_disp disp_cmd1 。 while *dis ! 39。 dis++。 lcd_pos 0x40 。 。!39。\039。 。 dis++。 while *dis ! 39。 writedata *dis 。 lcd_pos 0x04 。 while *dis ! 39。 HScount 0。 //消抖動 if key 39。 lcd_disp disp_se1 。 switch keyin case 0x12: // 1 行 1 列,數(shù)字 0 key 39。 break。539。 case 0x18: // 3 行 1 列,數(shù)字 8 key 39。 break。 while HSflag //主機模式 SBUF Slave。 while !RI 。 TB8 1。 while !TI 。結(jié)束 while !TI 。 SBUF Scount。 else ACC SBUF。//收 RI 0。 *dat SBUF。 while !TI 。 //置為從。 if SScount Rcount LED1 0。 while !TI 。 while *dat ! 39。 TB8 1。 TI 0。 SBUF ID。 dat++。 TI 0。 ACC SBUF。 RI 0。C39。 break。 case 0x44: // 2 行 3 列,數(shù)字 6 key 39。339。 break。239。 Slave 2。 SScount 0。 writedata *dis 。 while *dis ! 39。 writedata n/10 + 0x30 。 writedata *dis 。 writedata m%10 + 0x30 。339。 dis++。 /*****************液晶顯示通信信息 *******************/ void lcd_mu1 uchar data h,uchar code *p1,uchar data m,uchar data s,uchar code *p2,uchar data n //液晶顯示通信信息 uchar code *dis。O39。 while *dis ! 39。:39。 writedata *dis 。 lcd_disp disp_cmd0 。 //清 LCD delay 1 。 writecmd 0x01 。
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1