




已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
摘要本文通過單片機(jī)的串口并經(jīng)過max202電平轉(zhuǎn)換,可實(shí)現(xiàn)兩個單片機(jī)之間實(shí)時(shí)會話,半雙工工作模式;程序中設(shè)有發(fā)送接收允許、自行校驗(yàn),提高了通信的準(zhǔn)確度;可以將接收數(shù)據(jù)儲存并將儲存數(shù)據(jù)進(jìn)行讀取,可儲存99個數(shù)據(jù);設(shè)有軟件復(fù)位功能,防止程序走死。關(guān)鍵字:實(shí)時(shí)會話 自行校驗(yàn) 軟件復(fù)位abstractthrough and through the max202 chip serial level converter, enabling real-time conversation, half-duplex mode between two microcontrollers; program features allow sending and receiving, self check and improve the accuracy of communication; may be receiving data storage and store data read, can store 99 data; has a software reset function to prevent the program go to die.key words: live session self-calibration software reset session目錄摘要1abstract1目錄2第1章 課題概述3第2章 總體設(shè)計(jì)方案3第3章 硬件設(shè)計(jì)33.1 單片機(jī)33.2 ut62256cpcl芯片33.3 單片機(jī)間串行通訊43.4 按鍵與顯示43.5 軟件復(fù)位43.6 讀取儲存數(shù)據(jù)4第4章 軟件設(shè)計(jì)與調(diào)試54.1 待機(jī)界面54.2 通信協(xié)議54.2.1 發(fā)送接收允許54.2.2 自行校驗(yàn)54.3軟件復(fù)位64.4 儲存接收數(shù)據(jù)64.5 讀取接收數(shù)據(jù)64.6 總程序框圖6第5章 結(jié)論8第6章 參考文獻(xiàn)8程序9第1章 課題概述單片機(jī)行業(yè)已經(jīng)有了很久的歷史,隨著科學(xué)技術(shù)的進(jìn)步和社會的發(fā)展,單片機(jī)行業(yè)更加迅速的發(fā)展起來。不論在工業(yè)還是民也上都有很好的發(fā)展和應(yīng)用,得到大家很好的認(rèn)可和高度的評價(jià)。單片機(jī)的通信接口是各臺儀表之間或儀表與計(jì)算機(jī)之間進(jìn)行信息交換和傳輸?shù)穆?lián)絡(luò)裝置。串行通信按同步方式可分為異步通信和同步通信兩種基本通信方式。它是在數(shù)字化的基礎(chǔ)上用微處理器裝備起來,是計(jì)算機(jī)技術(shù)與電子儀器相結(jié)合的產(chǎn)物。它具有數(shù)據(jù)存儲、運(yùn)算、邏輯判斷能力,能根據(jù)被測參數(shù)的變化自選量程,可自動校正,自動補(bǔ)償,自尋故障等,可以做一些需要人類的智慧才能完成的工作,既具備了一定的智能,故稱為智能儀器。本課程設(shè)計(jì)通過單片機(jī)的串口并經(jīng)過max202電平轉(zhuǎn)換,可實(shí)現(xiàn)兩個單片機(jī)之間實(shí)時(shí)會話,半雙工工作模式,數(shù)碼管顯示發(fā)送和接收過程。第2章 總體設(shè)計(jì)方案方案一:編寫發(fā)送和接收程序,顯示發(fā)送和接收數(shù)據(jù)。方案二:編寫發(fā)送和接收程序,添加發(fā)送和接收允許程序和自行校驗(yàn)程序,顯示發(fā)送和接收數(shù)據(jù)。方案三:編寫待機(jī)界面,編寫發(fā)送和接收程序,添加發(fā)送和接收允許程序和自行校驗(yàn)程序,顯示發(fā)送和接收數(shù)據(jù)程序,儲存接收數(shù)據(jù)程序,顯示儲存數(shù)據(jù)程序,軟件復(fù)位程序。方案四:在方案三基礎(chǔ)上添加看門狗程序。四個方案是這段時(shí)間內(nèi)不斷探索、循序漸進(jìn)的結(jié)果,由于能力有限,添加看門狗程序后,程序一直復(fù)位,不知如何關(guān)閉看門狗,程序不能正常進(jìn)行工作,最終選擇方案三。第3章 硬件設(shè)計(jì)3.1 單片機(jī)本文使用stc12c5a60s2單片機(jī),重要參數(shù)介紹:62kb容量rom,1280字節(jié)ram,4個16位定時(shí)器,7路外部中斷,8路10位精度adc,有兩個串口。3.2 ut62256cpcl芯片單片機(jī)接收數(shù)據(jù)存放在外部ramut62256cpcl芯片中,有32kb容量。3.3 單片機(jī)間串行通訊本文使用max202電平轉(zhuǎn)換芯片,用rs-232接口進(jìn)行串口通信,通信過程如圖1所示。圖13.4 按鍵與顯示按鍵與顯示使用芯片ch452。ch451是一個整合了數(shù)碼管顯示驅(qū)動和鍵盤掃描控制以及p監(jiān)控的多功能外圍芯片。ch451內(nèi)置rc振蕩電路,可以動態(tài)驅(qū)動8位數(shù)碼管或者64位led,具有bcd譯碼、閃爍、移位等功能;同時(shí)還可以進(jìn)行64鍵的鍵盤掃描;ch451通過可以級聯(lián)的串行接口與單片機(jī)等交換數(shù)據(jù);并且提供上電復(fù)位和看門狗等監(jiān)控功能。3.5 軟件復(fù)位使用stc12c5a60s2中的特殊功能寄存器iap_contr可以實(shí)現(xiàn),硬件上使用外部中斷int0,在中斷程序改變iap_contr的值實(shí)現(xiàn)軟件復(fù)位,外部中斷int0的接口電路如圖2所示。3.6 讀取儲存數(shù)據(jù)讀取儲存數(shù)據(jù),硬件上使用外部中斷int1,在中斷程序中讀取儲存數(shù)據(jù),外部中斷int1的接口電路如圖2所示。圖2第4章 軟件設(shè)計(jì)與調(diào)試4.1 待機(jī)界面當(dāng)單片機(jī)開機(jī)或軟件復(fù)位后,系統(tǒng)板上4個數(shù)碼管會顯示“hello”,開始顯示“hell”,一秒之后顯示“ello”。4.2 通信協(xié)議本文單片機(jī)通信采用2400的波特率,串行口工作方式為方式1,設(shè)有發(fā)送接收允許和自行校驗(yàn)。4.2.1 發(fā)送接收允許設(shè)兩個進(jìn)行實(shí)時(shí)回話的單片機(jī)分別為單片機(jī)a和單片機(jī)b,單片機(jī)a處于接收等待狀態(tài),單片機(jī)b處于發(fā)送狀態(tài),單片機(jī)b發(fā)送“8ah”,單片機(jī)a接收到“8ah”時(shí)發(fā)送“a8h”,當(dāng)單片機(jī)b接收到“a8h”時(shí)表示建立通信關(guān)系可以發(fā)送數(shù)據(jù)。4.2.2 自行校驗(yàn)當(dāng)兩單片機(jī)建立通信關(guān)系時(shí),單片機(jī)b發(fā)送數(shù)據(jù)的原碼和反碼,單片機(jī)a判斷數(shù)據(jù)的原碼和反碼是否匹配,若匹配,單片機(jī)a發(fā)送“aah”,當(dāng)單片機(jī)b接收到“aah”,表示發(fā)送數(shù)據(jù)正確;若數(shù)據(jù)的原碼和反碼不匹配,單片機(jī)a發(fā)送“55h”,當(dāng)單片機(jī)b接收到“55h”,表示發(fā)送數(shù)據(jù)不正確,單片機(jī)a系統(tǒng)板數(shù)碼管顯示“j-er”,單片機(jī)b系統(tǒng)板數(shù)碼管顯示“f-er”,單片機(jī)b重新發(fā)送數(shù)據(jù)的原碼和反碼。4.3軟件復(fù)位軟件復(fù)位使用stc125a60s2單片機(jī)的特殊功能寄存器iap_contr,寄存器地址與位名稱如圖4所示,復(fù)位類型如圖5所示。本文采用通過對 iap_contr寄存器送入20h,swbs=0,swret=1,產(chǎn)生的軟件復(fù)位。圖4圖54.4 儲存接收數(shù)據(jù)接收數(shù)據(jù)存放在外部ut62256cpcl芯片中,存放時(shí)將接收數(shù)據(jù)個數(shù)與接收的數(shù)據(jù)一起存放在外部ram中,用寄存器間接尋址,由于系統(tǒng)板數(shù)碼管有限,本課設(shè)可儲存99個數(shù)據(jù)。4.5 讀取接收數(shù)據(jù)讀取數(shù)據(jù)時(shí)先讀取數(shù)據(jù)個數(shù),根據(jù)數(shù)據(jù)個數(shù)和寄存器間接尋址首地址來讀取數(shù)據(jù),防止讀取到外部ram中的亂碼。4.6 總程序框圖總程序框圖如圖3所示,程序使用了串行口和兩個中斷。dccab按鍵標(biāo)號中斷int0程序入口軟件復(fù)位中斷int1程序入口讀取儲存的數(shù)據(jù)打開中斷int0、int1開始初始化ch451初始化串口顯示“hello”發(fā)送#55h否判斷d是否按下是否接收到#8ah發(fā)送#0a8h是否x與x的反碼是否符合發(fā)送#0aah并儲存x判斷c是否按下是發(fā)送#8ah是否接收到#0a8h否是發(fā)送x與x的反碼是否接收到#0aah否 是否掃描按鍵判斷a是否按下判斷b是否按下x加1x加10否是是否是否判斷x是否小于99否x=x-100假設(shè)發(fā)送和接收的數(shù)為x是圖3第5章 結(jié)論本課程設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)單片機(jī)串行通訊系統(tǒng)協(xié)議。從一開始編寫發(fā)送、接收程序到添加發(fā)送接收允許程序和校驗(yàn)程序,后來發(fā)現(xiàn)程序容易走死添加軟件復(fù)位程序,單片機(jī)系統(tǒng)板有外部ram又編寫接收數(shù)據(jù)儲存和讀取程序,優(yōu)化程序,使程序變得更完善。最終的程序下載到單片機(jī)中,通信時(shí)沒有任何數(shù)據(jù)丟失或錯誤。我享受編程的樂趣和成功的喜悅,對單片機(jī)有了更深的了解,對我的編程能力和編程規(guī)范得到提高。第6章 參考文獻(xiàn)1姚永平. stc12c5a60s2系列單片機(jī)器件手冊. 宏晶stc官方網(wǎng)站2常麗. 測控儀器與網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo)書. 沈陽工業(yè)大學(xué)3李群芳,肖看,張士軍. 單片微型計(jì)算機(jī)與接口技術(shù). 電子工業(yè)出版社程序ch451_dclk bit p1.7 ;串行數(shù)據(jù)時(shí)鐘,上升沿激活 ch451_din bit p1.6 ;串行數(shù)據(jù)輸出,接 ch451 的數(shù)據(jù)輸入 ch451_load bit p1.5 ;串行命令加載,上升沿激活 ch451_dout bit p1.4 ;int0,鍵盤中斷和鍵值數(shù)據(jù)輸入,接 ch451 的數(shù)據(jù)輸出 ch451_key data 7fh ;存放鍵盤中斷中讀取的鍵值 iap_contr data0c7hwdt_contr equ0c1h;* org 0000hajmp mainorg 0003hljmp restartorg 0013hljmp shu1org 0030hmain:setb it0setb ex0setb it1setb ex1setb eamov 55h,#00hmov 57h,#00h;記錄接收的個數(shù) ;調(diào)用外部ramacall ch451_init ;調(diào)用初始化程序lcall chuankoulcall liushuikeyshow: acall scan1mov 54h,r4mov a,54hcjne a,#00h,cc1inc 55hmov r5,#12 mov r4,#02h acall changemov r5,#12 mov r4,#03h acall changelcall huansuancc1:mov a,54hcjne a,#01h,cc2mov a,55hadd a,#10mov 55h,amov r5,#12 mov r4,#02h acall changemov r5,#12 mov r4,#03h acall changelcall huansuancc2:mov a,54hcjne a,#02h,cc3lcall jiesoucc3:mov a,54hcjne a,#03h,keyshowmov r5,#12 mov r4,#02h acall changemov r5,#10 mov r4,#03h acall changelcall fasonglcall huansuanljmp keyshowsjmp $;* ; 初始化子程序 ;*ch451_init: clr ch451_din ;先低后高,輸出上升沿通知 ch451 選擇 4 線串行接口 setb ch451_dclk ;置為默認(rèn)的高電平 setb ch451_din setb ch451_load setb ch451_dout ;置為輸入 clr it0 ;置外部信號為低電平觸發(fā) setb px0 ;置高優(yōu)先級或者低優(yōu)先級 clr ie0 ;清中斷標(biāo)志 setb ex0 ;允許鍵盤中斷 mov b,#04h ;設(shè)置為鍵盤與顯示開 mov a,#03h acall ch451_write ret change: mov a,r5 acall tta ;對應(yīng)m2t1板的數(shù)碼管轉(zhuǎn)換 mov r2,a mov a,r4 acall ttb ;對應(yīng)m2t1板的數(shù)碼管位置轉(zhuǎn)換 mov b,a mov a,r2 acall ch451_write retchange1: mov a,r5 acall tta ;對應(yīng)m2t1板的數(shù)碼管轉(zhuǎn)換 inc a mov r2,a mov a,r4 acall ttb ;對應(yīng)m2t1板的數(shù)碼管位置轉(zhuǎn)換 mov b,a mov a,r2 acall ch451_write ret;m2t1板數(shù)碼管對應(yīng)表tta: mov dptr,#tab_a movc a,a+dptr ret;對應(yīng)m2t1板的數(shù)碼管位置轉(zhuǎn)換ttb: mov dptr,#tab_b movc a,a+dptr ret tab_a: db 07eh;0 db 006h;1 db 0bch;2 db 09eh;3 db 0c6h;4 db 0dah;5 db 0fah;6 db 00eh;7 db 0feh;8 db 0deh;9 db 0e8h;f db 036h;j db 080h;- db 0f8h;e db 0a0h;r db 070h;l db 0e6h;htab_b: db 08h;0 顯示數(shù)碼管號 db 09h;1 db 0ah;2 db 0bh;3scan1:mov c,ch451_dout jc scan1 acall ch451_read mov r1,ac0: cjne a,#40h,c1 mov r4,#00h ajmp tesc1: cjne a,#41h,c2 mov r4,#01h ajmp tes c2: cjne a,#42h,c3 mov r4,#02h ajmp tes c3: cjne a,#43h,scan1 mov r4,#03h ajmp testes: retch451_write: clr ex0 ;禁止鍵盤中斷 clr ch451_load ;命令開始,此命令可以放在后面 mov r7,#08h ;將 acc 中 8 位送出 ch451_write_8: rrc a ;低位在前,高位在后 clr ch451_dclk mov ch451_din,c ;送出一位數(shù)據(jù) setb ch451_dclk ;產(chǎn)生時(shí)鐘上升沿通知 ch451 輸入位數(shù)據(jù) djnz r7,ch451_write_8 ;位數(shù)據(jù)未完繼續(xù) mov a,b mov r7,#04h ;將 b 中 4 位送出 ch451_write_4: rrc a ;低位在前,高位在后 clr ch451_dclk mov ch451_din,c ;送出一位數(shù)據(jù) setb ch451_dclk ;產(chǎn)生時(shí)鐘上升沿通知 ch451 輸入位數(shù)據(jù) djnz r7,ch451_write_4 ;位數(shù)據(jù)未完繼續(xù) setb ch451_load ;產(chǎn)生加載上升沿通知 ch451 處理命令數(shù)據(jù) setb ex0 ;允許鍵盤中斷 ret ch451_read: clr ex0 ;禁止鍵盤中斷 clr ch451_load ;命令開始 mov a,#07h ;讀取鍵值命令的高 4 位 0111b mov r7,#04h ;忽略 12 位命令的低 8 位 ch451_read_4: rrc a ;低位在前,高位在后 clr ch451_dclk mov ch451_din,c ;送出一位數(shù)據(jù) setb ch451_dclk ;產(chǎn)生時(shí)鐘上升沿鎖通知 ch451 輸入位數(shù)據(jù) djnz r7,ch451_read_4 ;位數(shù)據(jù)未完繼續(xù) setb ch451_load ;產(chǎn)生加載上升沿通知 ch451 處理命令數(shù)據(jù) clr a ;先清除鍵值單元以便移位 mov r7,#07h ;讀入 7 位鍵值 ch451_read_7: mov c,ch451_dout ;讀入一位數(shù)據(jù) clr ch451_dclk ;產(chǎn)生時(shí)鐘下升沿通知 ch451 輸出下一位 rlc a ;數(shù)據(jù)移入 acc,高位在前,低位在后 setb ch451_dclk djnz r7,ch451_read_7 ;位數(shù)據(jù)未完繼續(xù) clr ie0 ;清中斷標(biāo)志,讀操作過程中有低電平脈沖 setb ex0 ;允許鍵盤中斷 ret ;* huansuan:mov a,55hcjne a,#64h,xiaxia:jc chaoclr csubb a,#64hmov 55h,achao:mov a,55hmov b,#0ahdiv abmov 51h,amov 50h,bmov r5,50h ;將要顯示的數(shù)放入r5中mov r4,#00h ;將要在第幾位上顯示放在r4中,最右邊是0位 2013lcall change mov r5,51h ;將要顯示的數(shù)放入r5中mov r4,#01h ;將要在第幾位上顯示放在r4中,最右邊是0位 2013lcall changeret;* chuankou:mov tmod,#20hmov th1,#0e7hmov tl1,#0e7hsetb tr1ret;* fasong:mov scon,#50hbuxu:mov sbuf,#08ah ;允許接收?jnb ti,$clr tijnb ri,$ clr rimov a,sbufcjne a,#0a8h,buxuljmp tiaono1:mov r5,#14 mov r4,#00h lcall changemov r5,#13 mov r4,#01h lcall changetiao:mov a,55hmov sbuf,a ;發(fā)原碼jnb ti,$clr ticlr cmov a,#0ffhsubb a,55h ;發(fā)反碼mov sbuf,ajnb ti,$clr tijnb ri,$ ;判斷是否正確clr rimov a,sbufcjne a,#0aah,no1mov scon,#40hret;* jiesou:mov scon,#50hmov r5,#12 mov r4,#00h lcall changemov r5,#12 mov r4,#01h lcall changemov r5,#12 mov r4,#02h lcall changemov r5,#11 mov r4,#03h lcall changebuxu1:jnb ri,$ ;允許接收clr rimov a,sbufcjne a,#08ah,buxu1mov sbuf,#0a8hjnb ti,$clr tichong:jnb ri,$ ;接收原碼clr rimov 56h,sbufjnb ri,$ ;接收反碼clr rimov a,sbufxrl a,56hcjne a,#0ffh,chuoljmp dui1chuo:mov sbuf,#055h jnb ti,$clr timov r5,#14 mov r4,#00h lcall changemov r5,#13 mov r4,#01h lcall changeljmp chongdui1:mov sbuf,#0aah jnb ti,$clr timov a,56hmov b,#0ahdiv abmov 51h,amov 50h,bmov r5,50h ;將要顯示的數(shù)放入r5中mov r4,#00h ;將要在第幾位上顯示放在r4中,最右邊是0位 2013lcall change mov r5,51h ;將要顯示的數(shù)放入r5中mov r4,#01h ;將要在第幾位上顯示放在r4中,最右邊是0位 2013lcall changemov a,56h ;放在外部rammov r0,57hmovx r0,amov a,57hinc amov r0,#20h ;個數(shù)放在外部rammovx r0,amov 57h,amov scon,#40
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商場燈箱廣告合同協(xié)議
- 品牌帶招商合同協(xié)議
- 商品方轉(zhuǎn)兌合同協(xié)議
- 商店續(xù)約合同協(xié)議
- 員工旅游合同協(xié)議
- 商品房裝修合同協(xié)議
- 售后維修包換合同協(xié)議
- 模具轉(zhuǎn)出協(xié)議書范本
- 武術(shù)培訓(xùn)班合同協(xié)議
- 商務(wù)公寓售賣合同協(xié)議
- 湖南省名校聯(lián)考聯(lián)合體2024-2025學(xué)年高一下學(xué)期期中考試數(shù)學(xué)試題 (A)含答案
- 海關(guān)AEO培訓(xùn)法律法規(guī)
- 2025年的共同借款擔(dān)保合同范本
- 沖壓模具制作合同范例
- 學(xué)校會計(jì)崗位試題及答案
- 上海市金山區(qū)2025屆高三高考二模地理試卷(含答案)
- 期中測試(范圍:第1-4章)(A卷·夯實(shí)基礎(chǔ))-北師大版七年級數(shù)學(xué)下冊(解析版)
- 木制品幼兒園課程
- MOOC 頸肩腰腿痛中醫(yī)防治-暨南大學(xué) 中國大學(xué)慕課答案
- 藝術(shù)課程標(biāo)準(zhǔn)(2022年版)
- 影像診斷學(xué)-—-總論P(yáng)PT課件
評論
0/150
提交評論