




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄1 設(shè)計任務(wù)和方案31.1 設(shè)計任務(wù)3 1.2功能要求說明3 1.3 設(shè)計總體方案及工作原理說明32 搶答器的硬件系統(tǒng)的設(shè)計5 2.1 硬件系統(tǒng)各模塊功能簡要介紹5 2.2 電路原理圖、pcb圖和元器件布局圖5 2.3 元器件清單63 搶答器軟件系統(tǒng)的設(shè)計73.1使用的單片機資源的情況8 3.2 各模塊功能簡要介紹8 3.3 程序的流程框圖8 3.4 程序清單124 搶答器的設(shè)計結(jié)論、仿真結(jié)果和教學(xué)建議13 4.1 設(shè)計結(jié)論和使用說明13 4.2 仿真結(jié)果13 4.3 設(shè)計體會14 4.4 教學(xué)建議15參考文獻(xiàn)16致謝17附錄181 設(shè)計任務(wù)和方案1.1設(shè)計任務(wù)(一)設(shè)計題目:搶答器(二
2、)設(shè)計目的與任務(wù):學(xué)生通過理論設(shè)計和實物制作解決相應(yīng)的實際問題,鞏固和運用在單片機技術(shù)中所學(xué)的理論知識和實驗技能,掌握單片機應(yīng)用系統(tǒng)的一般設(shè)計方法,提高設(shè)計能力和實踐動手能力,為以后從事電子電路設(shè)計、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。1.2功能要求說明該搶答器上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“p.” 。設(shè)定s2gn鍵、s3gn鍵、s4gn鍵、s5gn鍵、s6gn鍵、s7gn鍵、s8gn鍵分別為一號選手鍵、二號選手鍵、三號選手鍵、四號選手鍵、開始鍵、答完鍵、復(fù)位鍵。若在主持人按下開始鍵之前有人按下?lián)尨疰I,則搶答違規(guī),數(shù)碼管顯示器顯示違規(guī)臺號,違規(guī)指示燈(接在p3.2上的燈)亮,只有主持人按復(fù)位鍵后
3、才能重新開始搶答。主持人按下開始鍵后,搶答開始并限定時間30s;10s內(nèi)無人搶答,蜂鳴器發(fā)出音響;若30s后依然無人搶答,蜂鳴器發(fā)出音響,違規(guī)指示燈亮。正常搶答下,從搶答鍵按下開始30s內(nèi),答完鍵沒按下,則數(shù)碼管顯示器顯示違規(guī)臺號,違規(guī)指示燈亮,蜂鳴器發(fā)出音響。各臺數(shù)字顯示的消除、蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過主持人按復(fù)位鍵實現(xiàn)。1.3設(shè)計總體方案及工作原理說明設(shè)計中采用at89s52芯片、led顯示器、蜂鳴器、led燈和一些獨立式按鍵構(gòu)成一個簡易四路搶答器。設(shè)計中是采用單片機的內(nèi)部定時器進(jìn)行定時,原理框圖如圖1.1所示 整個搶答器的工作原理是:在正常的供電狀態(tài)下,開始搶答時利用單片機
4、倒計時,并由單片機將所需要顯示的數(shù)據(jù)送到led顯示器的輸入口,當(dāng)有鍵按下時則執(zhí)行相應(yīng)的鍵功能程序。 圖1.1 原理框圖2 搶答器的硬件系統(tǒng)的設(shè)計2.1 硬件系統(tǒng)各模塊功能設(shè)計 該搶答器主要由單片機最小系統(tǒng)、獨立式鍵盤模塊、led顯示電路模塊、蜂鳴電路模塊和led指示燈電路模塊組成。各模塊的功能如下:(1)單片機最小系統(tǒng)由at89s52單片機、時鐘電路和復(fù)位電路構(gòu)成。at89s52是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash存儲器。時鐘電路由一個12mhz的石英晶體振蕩器和兩個33pf的的電容組成振蕩電路和分頻電路。復(fù)位電路采用上電復(fù)位和按鍵復(fù)位結(jié)合的方式對電路進(jìn)行復(fù)
5、位,主要是通過rst引腳送入單片機。單片機最小系統(tǒng)為整個電路的核心。(2)獨立式鍵盤模塊 采用獨立式鍵盤接法,共有七個按鍵來對電路進(jìn)行控制。分別通過上拉電阻接在單片機的p1口線上。其中有四個按鍵為搶答鍵(接在p1.0-p1.3口線上),開始鍵接在p1.4口線上,答完鍵接在p1.5口線上,復(fù)位鍵接在p1.6口線上。(3)led顯示電路模塊采用兩個四位一體共陽型數(shù)碼管顯示器進(jìn)行顯示。由于位控線的驅(qū)動電流較大,因此在p2口線上接了8個pnp型三極管提高驅(qū)動能力;在單片機的p1口線和p2口線上接了16個470的電阻,這些電阻起限流的作用。將段控口a-dp接在p0.0-p0.7上,位控口接在p2口線上,
6、實現(xiàn)對顯示的控制。led顯示電路模塊主要用來指示第一搶答者,顯示倒計時和違規(guī)的臺號。(4)蜂鳴電路模塊單片機p3.1口線上接上一個1k電阻然后再通過一個pnp型三極管與蜂鳴器相連接組成蜂鳴器電路,接入pnp型三極管是為了增強蜂鳴器的驅(qū)動電流。蜂鳴電路主要完成提示和違規(guī)報警功能。(5)led指示燈電路模塊 單片機p3.2口線上經(jīng)過一個470的電阻與led燈的陰極相連接,led燈的陽極接正五伏電壓。470的電阻起限流的作用。led指示燈電路模塊主要用來指示用違規(guī)操作發(fā)生。2.2 電路原理圖、pcb圖和元器件布局proteus原理圖、pcb圖以及元器件布局圖分別見附錄1附錄2與附錄3。 2.3 元器
7、件清單 元器件清單見附錄4。3 搶答器軟件系統(tǒng)的設(shè)計3.1 使用的單片機資源的情況該搶答器用到了單片機的定時器的功能,定時器0采用工作方式1并以中斷方式工作;在數(shù)據(jù)的顯示時采用的是查表的方法,因此需要將表格、數(shù)據(jù)存到單片機的程序存儲器中去。本設(shè)計采用獨立式鍵盤,鍵盤直接接在p1口上且按鍵的結(jié)果存貯在單片機的內(nèi)部數(shù)據(jù)存儲器里面。用到的led顯示器接到了單片機的p0口線上和p2口線上。led指示燈和蜂鳴器接在p3口線上。 3.2 各模塊功能簡要介紹 該搶答器所用的軟件模塊有定時器模塊、按鍵模塊、led顯示模塊。(1)定時器模塊選擇定時器0,設(shè)置定時器定時方式為方式1以中斷方式工作,設(shè)置定時時間為5
8、0ms。(2)按鍵模塊采用獨立式鍵盤,共用七個按鍵對電路進(jìn)行控制和操作,分別為s2gn、s3gn、s4gn、s5gn、s6gn、s7gn、s8gn來控制搶答器。s2gn、s3gn、s4gn、s5gn代表選手;s6gn為開始鍵、s7gn為答完鍵、s8gn為復(fù)位鍵。(3)led顯示模塊 搶答器上電顯示p.,按開始鍵開始搶答,顯示器顯示倒計時,若為無效搶答則顯示器顯示違規(guī)臺號。3.3 程序的流程框圖(1)主程序流程框圖如圖3.1所示。圖3.1 主程序流程框圖(2)搶答鍵程序流程框圖 搶答鍵程序流程框圖如圖3.2所示。圖中的代表主程序流程框圖中的。圖3.2 搶答鍵程序流程框圖(3)開始鍵程序流程框圖開
9、始鍵程序流程框圖如圖3.3所示。圖中的代表主程序流程框圖中的。圖代表搶答鍵程序流程框圖中的圖3.3 開始鍵程序流程框圖(4)答完鍵程序流程框圖開始鍵程序流程框圖如圖3.4所示。圖中的代表主程序流程框圖中的。圖3.4 答完鍵程序流程框圖(5)復(fù)位鍵程序流程框圖復(fù)位鍵程序流程框圖如圖3.5所示,圖中的代表主程序流程框圖中的。圖3.5 復(fù)位鍵程序流程框圖3.4 程序清單見附錄5。4 搶答器的設(shè)計結(jié)論、仿真結(jié)果和教學(xué)建議4.1 設(shè)計結(jié)論和使用說明(1)設(shè)計結(jié)論 通過對單片機進(jìn)行外接鍵盤和led數(shù)碼管的操作以及加上硬件電路和軟件的結(jié)合,實現(xiàn)了搶答器p.顯示以及搶答倒計時的顯示,正常搶答時顯示臺號,搶答違
10、規(guī)時顯示違規(guī)臺號、違規(guī)指示燈亮、蜂鳴器報警。通過測試和仿真以及修改,該搶答器完成了設(shè)計任務(wù),符合設(shè)計要求。(2)使用說明該搶答器采用兩個四位一體八段數(shù)碼管顯示。當(dāng)搶答器一上電即可顯示“p.”,進(jìn)入準(zhǔn)備工作狀態(tài)。按下s6gn(開始鍵)鍵后,搶答開始并計時30s;若10s內(nèi)無人搶答,蜂鳴器發(fā)出警示音,若計時到仍無人搶答則違規(guī)指示燈亮,蜂鳴器報警。若在s6gn鍵按下之前有人搶答,則顯示器顯示違規(guī)臺號,違規(guī)指示燈亮,只有按s8gn(復(fù)位鍵)才能重新開始搶答。正常搶答下,顯示器顯示臺號,蜂鳴器發(fā)出音響,其它搶答鍵無效;正常搶答下,從搶答鍵按下開始30s內(nèi),s7gn鍵(答完鍵)沒按下,則數(shù)碼管顯示器顯示違
11、規(guī)臺號,違規(guī)指示燈亮,蜂鳴器發(fā)出音響。各臺數(shù)字顯示的消除、蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過主持人按s8gn鍵實現(xiàn)。4.2 仿真結(jié)果在仿真時用到了兩個軟件,第一個是keil,第二個是proteus,本次仿真是將兩個軟件結(jié)合起來進(jìn)行的。運用keil軟件用來編譯和調(diào)試程序,運用ptoteus軟件來仿真。ptoteus仿真電路原理圖參見附錄。搶答器上電時,仿真的數(shù)碼管顯示器顯示如圖4.1所示,當(dāng)按下開始鍵時,顯示器顯示倒計時,此時數(shù)碼管顯示器的顯示如圖4.2所示,若在開始鍵按下之前有人搶答,數(shù)碼管顯示違規(guī)臺號,違規(guī)指示燈亮,仿真圖如圖4.3所示。正常搶答時,數(shù)碼管顯示臺號仿真圖如圖4.4所示。搶
12、答超時時,數(shù)碼管顯示違規(guī)臺號,違規(guī)指示燈亮,蜂鳴器發(fā)出音響,仿真圖如圖4.5所示。圖4.1 搶答器上電顯示p.圖圖4.2 搶答器顯示倒計時圖圖4.3 搶答器正常搶答圖圖4.4 搶答器搶答違規(guī)圖圖4.5 搶答器超時違規(guī)圖4.3 設(shè)計體會本次我設(shè)計的搶答器已經(jīng)能夠完成任務(wù),達(dá)到了設(shè)計要求。這次設(shè)計的巧妙之處是在中斷服務(wù)程序中完成了一些標(biāo)志位的處理,使得編程更加容易。雖然最后我設(shè)計的搶答器能完成任務(wù),但仍存在很多的不足。例如,我所設(shè)計的搶答器統(tǒng)計選手的得分情況,因此還需多加改進(jìn)。我所用的實物板子的電路雖然不是自己設(shè)計的,但是通過老師的講解我知道了各個模塊電路設(shè)計的原理。由于以前已經(jīng)做過幾塊板子了,因
13、此在用ptrtel軟件繪制電路原理圖、畫pcb圖以及制版的過程中并沒有遇到太大的困難。在進(jìn)行程序編寫時,雖然遇到了一點小小的問題,但是我通過keil軟件調(diào)試,最終將編寫有誤的程序修正過來。在進(jìn)行編程時我用匯編語言和c語言各編寫了一套。通過編寫程序,我進(jìn)一步熟悉了指令的運用。這次課程設(shè)計讓我認(rèn)識到,調(diào)試程序時必須具有良好的耐性,不能急躁,否則會事倍功半。遇到問題是應(yīng)當(dāng)迎難而上,不能逃避,必須對自己有足夠的信心!4.4 教學(xué)建議王老師不僅傳授了知識給我們還教會了我們不少做人的道理,對于大學(xué)教師來說這是難能可貴的,這些做人的道理對于我們經(jīng)后進(jìn)入社會將會有很大的幫助。在教學(xué)方面,我尤其覺得王老師的課件
14、做的特別的好,課件重點、難點突出,講解非常詳細(xì),而且還補充了一些很實用的知識。王老師將理論教學(xué)與實際操作相結(jié)合,讓我們更深刻的掌握了知識,同時也讓我們認(rèn)識到書本上的東西不一定都全對,必須通過實踐來檢驗它。我認(rèn)為王老師的課講得已經(jīng)很好了,在此我只想提一個自己的拙見,希望在以后王老師能多啟發(fā)我們的創(chuàng)新精神。參考文獻(xiàn)1馬忠梅,籍順心,張凱,馬巖.單片機的c語言應(yīng)用程序設(shè)計m.北京:北京航空航天大學(xué)出版社,2006ma zhongmei,j, zhang kai, mayan. mcu c language program design m .beijing: beijing aerospace un
15、iversity press, 20062李廣弟,朱月秀,冷祖祁.單片機基礎(chǔ)m.北京:北京航空航天大學(xué)出版社,2007 li guangdi, zhuyuexiu, leng zuqi. microcontroller m .beijing: beijing university of aeronautics and press, 2007 3李光飛.單片機課程設(shè)計實例指導(dǎo)m.北京:北京航空航天大學(xué)出版社,2004.9 li guangfei. this course design example guide m .beijing: beijing university of aeronaut
16、ics and press, 2004.9 4邢增平.protel 99 se設(shè)計專家指導(dǎo)m.北京:中國鐵道出版社,2004 xing zengping. protel 99 se design expert guidance m .beijing: china railway publishing house, 2004 附 錄1附 錄4 元器件名稱規(guī)格數(shù)量at89s521底座40腳3晶振12mhz1發(fā)光二極管9單排插40腳1三極管90129蜂鳴器1小按鍵9下載口座子十芯118b20溫度傳感器1六腳開關(guān)1usb電源線加接口1電阻2001電阻4.7k1電阻1k3電阻47024電解電容220f1
17、瓷片電容33pf2排阻10k2短路帽3杜邦線8p1pcb板子1電源白色插座1附 錄5 (1)匯編語言;*;項目名稱:搶答器;設(shè)計者:潘艷;設(shè)計日期:2010年12月20日;項目功能要求:搶答器上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“p.”,; 進(jìn)入準(zhǔn)備工作狀態(tài)。主持人按下開始按鈕后,搶答開始并; 限定時間30s;10s內(nèi)無人搶答,蜂鳴器發(fā)出音響;主持人; 按下開始按鈕之前有人按下?lián)尨鹌?,搶答違規(guī),顯示器顯; 示違規(guī)臺號,違規(guī)指示燈亮,其它按鈕不起作用;正常搶; 答,顯示器顯示臺號,蜂鳴器發(fā)出音響,其它搶答按鈕無; 效;正常搶答下,從按下?lián)尨鸢粹o開始30s內(nèi),答完按鈕; 沒按下,則作超時處理,超時
18、處理時,違規(guī)指示燈亮,數(shù); 碼管顯示違規(guī)臺號,蜂鳴器發(fā)出音響;各臺數(shù)字顯示的消; 除,蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過支持人按; 復(fù)位按鈕。;違規(guī)指示燈使用接在p3.2上的led燈;*;堆棧棧底7fh;*;8個led燈接至p30-p37;*;led數(shù)碼管顯示器設(shè)定;p0.7-p0.0段控線,接led的顯示段dp,g,f,e,d,c,b,a;p2.7-p2.0位控線,從左至右(led7,led6,led5,led4,led3,led2,led1,led0);顯示緩沖區(qū)設(shè)定從右至左依次為78h,79h,7ah,7bh,7ch,7dh,7eh,7fh ;*;獨立式鍵盤設(shè)定;8個按鍵s2至s9分
19、別依次接在p1.0至p1.7口線; ;*;鍵功能程序;s2gn (s2鍵鍵功能程序) 1號選手;s3gn (s3鍵鍵功能程序)2號選手;s4gn (s4鍵鍵功能程序)3號選手;s5gn (s5鍵鍵功能程序) 4號選手;s6gn (s6鍵鍵功能程序) 開始鍵;s7gn (s7鍵鍵功能程序)答完鍵;s8gn (s8鍵鍵功能程序)復(fù)位鍵;*;常數(shù)表格;disbh(系統(tǒng)提示符p.字型代碼序號表);tab(共陽數(shù)碼管字型代碼表);*; ;子程序;key(鍵掃描子程序);keychuli(p1口數(shù)據(jù)處理子程序);disp(數(shù)碼管顯示子程序);dl(1毫秒延時子程序);*;中斷服務(wù)程序;tc0(50ms定時
20、器0以中斷方式1進(jìn)行中斷);*;數(shù)據(jù)存儲器變量及常量單元定義;;40h字節(jié)單元:十六進(jìn)制數(shù)存放定時50ms循環(huán)次數(shù);20h字節(jié)單元:十六進(jìn)制數(shù) 鍵值;21h.0:開始鍵按下標(biāo)志位;21h.1:搶答鍵按下標(biāo)志位;21h.2:超時標(biāo)志位;78h-7fh字節(jié)單元: 顯示緩存區(qū);30h字節(jié)單元:十進(jìn)制數(shù)秒個位數(shù)非壓縮bcd碼;31h字節(jié)單元:十進(jìn)制數(shù)秒十位數(shù)非壓縮bcd碼;32h字節(jié)單元:十進(jìn)制數(shù)秒值 壓縮bcd碼;*;偽指令定義區(qū) secgeequ30h secshiequ31h shuequ32h;*; ;系統(tǒng)起始程序區(qū) org 0000h start: ljmp main org 000bh l
21、jmp tc0;*;系統(tǒng)監(jiān)控程序區(qū) org 0030h main: movsp,#7fh ;確立堆棧區(qū) mov psw, #00h mov r0, #20h ;ram區(qū)首地址 mov r7, #96 ;ram區(qū)單元個數(shù) ml: mov r0, #00h inc r0 djnz r7, ml mov tmod, #01h;定時器初始化,定時器0以工作方式1工作 movth0,#3ch movtl0,#0b0h setb ea;開啟總中斷 setb et0;開啟定時器0分中斷;*;顯示系統(tǒng)提示符“p.”tsf: mov dptr, #disbh ;系統(tǒng)初始化后提示符“p.”字符代 mov r5,
22、#08h ;碼表首地址 mov r0, #78h disptsf: clr a movc a, a+dptr mov r0, a inc r0 inc dptr djnz r5, disptsf lcall disp;*;鍵盤控制指令 tt: lcall disp ;調(diào)用顯示程序 lcall key jb 20h.0, s2gn;1號選手 jb 20h.1, s3gn1;2號選手 jb 20h.2, s4gn1 ;3號選手 jb 20h.3, s5gn1;4號選手 jb20h.4,s6gn1;開始鍵 jb20h.5,s7gn1;答完鍵 jb20h.6,s8gn1;復(fù)位鍵 ljmp tt;無鍵按
23、下,則返回tt,繼續(xù)調(diào)顯示、掃描按鍵 s3gn1: ljmps3gn s4gn1: ljmps4gn s5gn1: ljmp s5gn s6gn1: ljmps6gn s7gn1: ljmps7gn s8gn1: ljmps8gn ;*;鍵功能區(qū);s2鍵功能區(qū) s2gn: jnb21h.0,w20;若搶答違規(guī)則跳轉(zhuǎn)到w20 setbtr0 clrp3.1 setb21h.1 lcalldll w23: movr2,#5 movr0,#78h movr0,#0 incr0 movr0,#3 incr0 w21: movr0,#16 incr0 djnzr2,w21 movr0,#01h;此段程序
24、為更新顯示緩沖區(qū) setbp3.1w24: lcalldisp lcallkey jb20h.5,s7gn22;答完鍵 jb20h.6,s8gn22;復(fù)位鍵 jb21h.2,w25 ljmpw24 w20: movr2,#7 movr0,#78h w22: movr0,#16 incr0 djnzr2,w22 movr0,#01h ljmpw26w25: lcalldisp clrp3.2 clrp3.1 lcallkey jb20h.6,s8gn22;復(fù)位鍵 ljmpw25w26: lcalldisp clrp3.2 lcallkey jb20h.6,s8gn22;復(fù)位鍵 ljmpw26 s
25、7gn22: ljmps7gn s8gn22: ljmps8gn;s3鍵功能區(qū) s3gn: jnb21h.0,w30;若搶答違規(guī)則跳轉(zhuǎn)到w30 setbtr0 clrp3.1 lcalldll setb21h.1 w33: movr2,#5 movr0,#78h movr0,#0 incr0 movr0,#3 incr0 w31: movr0,#16 incr0 djnzr2,w31 movr0,#02h;此段程序為更新顯示緩沖區(qū) setbp3.1w34: lcalldisp lcallkey jb20h.5,s7gn33;答完鍵 jb20h.6,s8gn33;復(fù)位鍵 jb21h.2,w35
26、ljmpw34 w30: movr2,#7 movr0,#78h w32: movr0,#16 incr0 djnzr2,w32 movr0,#02h ljmpw36w35: lcalldisp clrp3.2 clrp3.1 lcallkey jb20h.6,s8gn33;復(fù)位鍵 ljmpw35 w36: lcalldisp clrp3.2 lcallkey jb20h.6,s8gn33;復(fù)位鍵 ljmpw36s7gn33: ljmps7gns8gn33: ljmps8gn;s4鍵功能區(qū) s4gn: jnb21h.0,w40 ;若搶答違規(guī)則跳轉(zhuǎn)到w40 setbtr0 clrp3.1 lca
27、lldll setb21h.1 w43: movr2,#5 movr0,#78h movr0,#0 incr0 movr0,#3 incr0 w41: movr0,#16 incr0 djnzr2,w41 movr0,#03h;此段程序為更新顯示緩沖區(qū) setbp3.1w44: lcalldisp lcallkey jb20h.5,s7gn44;答完鍵 jb20h.6,s8gn44;復(fù)位鍵 jb21h.2,w45 ljmpw44 w40: movr2,#7 movr0,#78h w42: movr0,#16 incr0 djnzr2,w42 movr0,#03h ljmpw46w45: lca
28、lldisp clrp3.2 clrp3.1 lcallkey jb20h.6,s8gn44;復(fù)位鍵 ljmpw45w46: lcalldisp clrp3.2 lcallkey jb20h.6,s8gn33;復(fù)位鍵 ljmpw46 s7gn44: ljmps7gn s8gn44: ljmps8gn;s5鍵功能區(qū) s5gn: jnb21h.0,w50;若搶答違規(guī)則跳轉(zhuǎn)到w50 setbtr0 clrp3.1 lcalldll setb21h.1 w53: movr2,#5 movr0,#78h movr0,#0 incr0 movr0,#3 incr0 w51: movr0,#16 incr0
29、 djnzr2,w51 movr0,#04h;此段程序為更新顯示緩沖區(qū) setbp3.1w54: lcalldisp lcallkey jb20h.5,s7gn55;答完鍵 jb20h.6,s8gn55;復(fù)位鍵 jb21h.2,w55 ljmpw54 w50: movr2,#7 movr0,#78h w52: movr0,#16 incr0 djnzr2,w52 movr0,#04h ljmpw56w55: lcalldisp clrp3.2 clrp3.1 lcallkey jb20h.6,s8gn;復(fù)位鍵 ljmpw55w56: lcalldisp clrp3.2 lcallkey jb2
30、0h.6,s8gn;復(fù)位鍵 ljmpw56 s7gn55: ljmps7gn s8gn55: ljmps8gn;s6鍵功能區(qū) s6gn: setbtr0 setb21h.0w63: movr2,#6 movr0,#78h movr0,#0 incr0 movr0,#3 incr0 w61: movr0,#16 incr0 djnzr2,w61w64: lcalldisp lcallkey jb 20h.0, s2gn66;1號選手 jb 20h.1, s3gn66;2號選手 jb 20h.2, s4gn66 ;3號選手 jb 20h.3, s5gn66;4號選手 jb20h.6,s8gn;復(fù)位
31、鍵 jb21h.2,w65 ljmpw64w65: lcalldisp clrp3.2 clrp3.1 lcallkey jb20h.6,s8gn;復(fù)位鍵 ljmpw65 s2gn66: ljmps2gn s3gn66: ljmps3gn s4gn66: ljmps4gn s5gn66: ljmps5gn;s7鍵功能區(qū) s7gn: jnb21h.0,t7 clrtr0 lcalldisp lcallkey jb20h.6,s8gn;復(fù)位鍵 ljmps7gn t7: ljmptt ;s8鍵功能區(qū) s8gn: movp3,#0ffh clr21h.0 clr21h.1 clr21h.2 mov40
32、h,#00h clrtr0 ljmp main ;*;子程序區(qū);(1)鍵掃描子程序 key: lcall keychuli;調(diào)p1口數(shù)據(jù)處理子程序 jz exit;沒有鍵按下,轉(zhuǎn)返回 lcall disp;調(diào)顯示子程序去抖動 lcall disp lcall keychuli;調(diào)p1口數(shù)據(jù)處理子程序 jz exit;沒有鍵按下,轉(zhuǎn)返回 movb,20h;保存取反后的鍵值 keysf: lcall keychuli;調(diào)p1口數(shù)據(jù)處理子程序 jzkey1;鍵釋放,轉(zhuǎn)恢復(fù)鍵值 lcall disp;調(diào)顯示子程序延時 ljmp keysf;等待釋放 key1: mov 20h,b;鍵值送20h保存 e
33、xit: ret ;子程序返回;(2)p1口數(shù)據(jù)處理子程序 keychuli: push psw ;保護(hù)現(xiàn)場 clrrs1;改變當(dāng)前寄存器組為組1 setb rs0 movp1,#0ffh;先向p1口寫1 mova,p1;讀p1口數(shù)據(jù) cpla;p1口數(shù)據(jù)取反 mov20h,a;保存取反后的鍵值 clrrs1;恢復(fù)當(dāng)前寄存器組為組0 clr rs0 poppsw;恢復(fù)現(xiàn)場 ret ;子程序返回;*;常數(shù)表格區(qū);系統(tǒng)初始化后提示符“p.”字符代碼表 disbh: db 10h,10h,10h,10h,10h,10h,10h,11h ;提示符“p.”字 ;符序號;顯示字符段選碼表(共陽極代碼) t
34、ab: db 0c0h, 0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h ;0-8 db 90h, 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,0bfh ;9,a,b,c,d,e, ;f,滅,p.,-;*;(3)數(shù)碼管顯示子程序disp;入口:7fh,7eh,7dh,7ch,7bh,7ah,79h,78h(led7,led6,led5,led4,led3,led2,led1,led0) disp: pushdph pushdpl pushacc pushpsw clr rs1 ;改變當(dāng)前寄存器組為組1 setb rs0 mov r1, #78h ;顯示緩沖存儲單元首地址 mov r2, #0feh ;從右至左顯示mov r5,#08h;循環(huán)次數(shù),即驅(qū)動數(shù)碼管的位數(shù) disp1:mov a, r1 movdptr, #tab
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)期教育說課設(shè)計與實施綱要
- 企業(yè)數(shù)據(jù)治理之?dāng)?shù)據(jù)算力治理方案
- 2025年照相及電影洗印設(shè)備項目申請報告模板
- 【南通】2025上半年江蘇南通職業(yè)大學(xué)招聘高層次人才13人筆試歷年典型考題及考點剖析附帶答案詳解
- 河豚教學(xué)課件
- 哪有教學(xué)課件
- 船工號子教學(xué)課件
- 散居兒童保健課件
- 教育部小學(xué)生課件目錄
- 乙醇俗稱酒精跟我們?nèi)粘I蠲芮新?lián)系(-31)
- 鐵路行車組織(高職)全套教學(xué)課件
- 如何預(yù)防錯混料
- 全新版大學(xué)進(jìn)階英語綜合教程2綜合訓(xùn)練第二單元(含答案)
- 安全責(zé)任家校共育
- (外標(biāo)兩點法對數(shù)方程)桔梗含量為例
- 道路運輸防汛應(yīng)急演練方案范文
- 道路管線施工地鐵保護(hù)施工方案
- 體格檢查技術(shù)操作考核評分標(biāo)準(zhǔn)(胸部)
- 農(nóng)村戲臺設(shè)計方案
- 北京玉淵潭中學(xué)英語新初一分班試卷含答案
- 焊接質(zhì)量檢查表
評論
0/150
提交評論