




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的多功能計(jì)時(shí)顯示系統(tǒng)設(shè)計(jì)2010年 5 月 v 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)第26頁(yè)共25頁(yè) 目 次1引言21.1選題背景及意義21.2國(guó)內(nèi)外現(xiàn)狀 22系統(tǒng)方案設(shè)計(jì)22.1系統(tǒng)構(gòu)成框圖22.2基本功能介紹33系統(tǒng)硬件電路的組成43.1計(jì)時(shí)電路43.2計(jì)分電路83.3球賽計(jì)時(shí)計(jì)分器的工作過(guò)程144單片機(jī)軟件設(shè)計(jì)144.1籃球賽計(jì)時(shí)計(jì)分程序流圖144.2籃球賽計(jì)時(shí)計(jì)分器的源碼15結(jié)論 21致謝22參考文獻(xiàn)23附錄 1 24附錄 2251 引言1.1選題背景及意義單片機(jī)又稱(chēng)單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它
2、的體積小質(zhì)量輕價(jià)格便宜為學(xué)習(xí)應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。單片機(jī)自20世紀(jì)70年代問(wèn)世以來(lái),以極其高的性?xún)r(jià)比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。單片機(jī)的優(yōu)點(diǎn)是體積小重量輕抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開(kāi)發(fā)較為容易。因此本設(shè)計(jì)選用單片機(jī)為基礎(chǔ)。1.2國(guó)內(nèi)外現(xiàn)狀單片機(jī)以自身的優(yōu)點(diǎn),近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用于工業(yè)控制系統(tǒng),數(shù)據(jù)采集系統(tǒng),智能化儀器儀表,及通訊設(shè)備,日常消費(fèi)類(lèi)產(chǎn)品,玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個(gè)環(huán)節(jié)以及人民生活的個(gè)層次中,如車(chē)間流水線(xiàn)控制自動(dòng)化控制智能型家用電器等。而美國(guó)at
3、mel公司開(kāi)發(fā)生產(chǎn)了新型的8位單片機(jī)-at89系列單片機(jī)。它不但具有一般mcs-51單片機(jī)的所有特征,而且還具有一些獨(dú)特的優(yōu)點(diǎn)。國(guó)內(nèi)外為了提高單片機(jī)的可靠性均采用了一些新技術(shù):eft技術(shù)低噪聲布線(xiàn)技術(shù)及驅(qū)動(dòng)技術(shù)和采用低頻時(shí)鐘等。2系統(tǒng)方案設(shè)計(jì)2.1系統(tǒng)構(gòu)成框圖基于單片機(jī)系統(tǒng)的籃球賽計(jì)時(shí)計(jì)分器的系統(tǒng)構(gòu)成框圖如圖1.1所示。圖1.1 球賽計(jì)時(shí)計(jì)分器系統(tǒng)圖本系統(tǒng)采用單片機(jī)at89c51作為本設(shè)計(jì)的核心元件。利用7段共陰led作為顯示器件。在此設(shè)計(jì)中共接入10個(gè)7段共陰led顯示器,其中6個(gè)用于記錄甲、乙兩隊(duì)的分?jǐn)?shù),每隊(duì)3個(gè)led顯示器顯示分?jǐn)?shù)范圍可達(dá)到0-999分,足夠滿(mǎn)足賽程需要。另外4個(gè)led顯
4、示器則用來(lái)記錄賽程的時(shí)間,其中2個(gè)用于顯示分鐘,2個(gè)用于顯示秒鐘,賽程計(jì)時(shí)采用倒計(jì)時(shí)方式,即比賽前將時(shí)間設(shè)置好,比賽開(kāi)始時(shí)啟動(dòng)計(jì)時(shí),直至計(jì)時(shí)到零為止。計(jì)時(shí)范圍可達(dá)到0-99分鐘,也完全滿(mǎn)足實(shí)際比賽的需要。其次,為了配合計(jì)時(shí)起和計(jì)分器的校正、調(diào)整時(shí)間和比分,特定在本設(shè)計(jì)中設(shè)立了7個(gè)按鍵。其中4個(gè)用于輸入甲、乙兩隊(duì)的分?jǐn)?shù);另外3個(gè)則用于完成設(shè)置、調(diào)整、啟動(dòng)和暫停賽程時(shí)間等功能。再次,還設(shè)計(jì)了定時(shí)報(bào)警系統(tǒng),即比賽時(shí)間到,便立即通過(guò)揚(yáng)聲器發(fā)出報(bào)警聲,提醒整個(gè)比賽結(jié)束。2.1.1器件選擇本系統(tǒng)在設(shè)計(jì)過(guò)程中主要選取了以下一些器件:1.單片機(jī):at89c512.四七段bcd譯碼芯片:cd45113.并行/串
5、行轉(zhuǎn)換芯片:cd40944.四輸入與門(mén):74ls215.顯示器件:7段共陰led顯示器6.按鍵:歐姆龍按鍵2.2基本功能介紹2.2.1賽程時(shí)間設(shè)置在附錄1所示的計(jì)時(shí)電路中,按鍵開(kāi)關(guān)k5、k6用來(lái)設(shè)置賽程時(shí)間。比如:比賽時(shí)間上半場(chǎng)為20分鐘,則通過(guò)按k5鍵,使數(shù)碼管1顯示“2”即可;再按k6鍵,設(shè)置比賽時(shí)間的個(gè)位數(shù),使數(shù)碼管2顯示“0”即可。一般比賽時(shí)間為40分鐘,所以只需要按k5鍵使數(shù)碼管1顯示“4”,按k6時(shí)數(shù)碼管2顯示“0”即可。時(shí)間設(shè)置好后,等待賽程開(kāi)始。當(dāng)比賽結(jié)束時(shí)名如果由于一些特殊原因需增加比賽時(shí)間,這是增加比賽時(shí)間同樣由按鍵開(kāi)關(guān)k5、k6用來(lái)設(shè)置,且方法跟上面一樣,但一般情況下只需
6、按k6設(shè)置即可。因?yàn)榧淤悤r(shí)間只有幾分鐘。2.2.2賽程時(shí)間啟/停設(shè)置當(dāng)時(shí)間設(shè)置完后,比如設(shè)置賽程時(shí)間為45分鐘,則在附錄1所示的led顯示器上顯示為4500,45表示分鐘,00表示秒鐘。這時(shí),如果裁判吹響開(kāi)始哨聲時(shí),則應(yīng)立即按下按鍵k7,表示賽程開(kāi)始,計(jì)時(shí)顯示則由4500變成4459,4458一直計(jì)為0000時(shí)表示賽程結(jié)束。如附錄1所示,按鍵k7為賽程啟動(dòng)和暫??刂?。2.2.3比分交換控制比分交換控制由附錄1所示的k7鍵完成。我們知道,因?yàn)楸确纸粨Q是在上半場(chǎng)賽程結(jié)束后進(jìn)行的,也就是說(shuō)比分交換受賽程時(shí)間控制,只有當(dāng)上半場(chǎng)計(jì)時(shí)器指示為0000時(shí),按k7鍵,則會(huì)自動(dòng)交換甲、乙兩隊(duì)的分?jǐn)?shù)。如果上半場(chǎng)時(shí)
7、間沒(méi)到0000時(shí),則此時(shí)按以下k7鍵只會(huì)暫停比賽,不能交換分?jǐn)?shù)。如果要繼續(xù)賽程,再按一次k7即可。因此,k7完成三重功能,即:?jiǎn)?dòng)、暫停、比分交換。2.2.4比分刷新控制由于在比賽中,甲、乙兩隊(duì)的比分是不斷變化的,所以需設(shè)置比分刷新控制裝置,此部分功能圖由附錄2所示的計(jì)分電路中的按鍵開(kāi)關(guān)k1k4完成:1.k1鍵:完成甲隊(duì)加1分操作2.k2鍵:完成甲隊(duì)減1分操作3.k3鍵:完成乙隊(duì)加1分操作4.k4鍵:完成乙隊(duì)減1分操作2.2.5計(jì)分計(jì)時(shí)顯示計(jì)分計(jì)時(shí)顯示器采用7段共陰led顯示器顯示。其中計(jì)分是用6個(gè)led顯示器,計(jì)時(shí)用4個(gè)led顯示器;顯示格式為000 000和00 00。2.2.6賽程結(jié)束報(bào)
8、警擋比賽結(jié)束時(shí),系統(tǒng)會(huì)發(fā)出10秒鐘報(bào)警聲,提示賽程結(jié)束。3系統(tǒng)硬件電路的組成系統(tǒng)硬件電路由以下幾部分組成:1.單片機(jī)at89c51;2.計(jì)時(shí)電路;3.計(jì)分電路;4.報(bào)警電路;5.按鍵開(kāi)關(guān);說(shuō)明:整個(gè)系統(tǒng)只有一片at89c51;在圖中將計(jì)時(shí)電路與計(jì)分電路分開(kāi)畫(huà),只是為了說(shuō)明問(wèn)題,并且在畫(huà)圖過(guò)程中將at89c51引腳打亂是為了使圖示清晰。3.1計(jì)時(shí)電路1.顯示器及其接口顯示器是最常用的輸出設(shè)備,其種類(lèi)繁多,但在單片機(jī)系統(tǒng)設(shè)計(jì)中常用的是發(fā)光二極管顯示(led)和液晶顯示器(lcd)兩種,由于這兩種顯示器結(jié)構(gòu)簡(jiǎn)單、價(jià)格便宜、接口容易實(shí)現(xiàn),因而得到廣泛應(yīng)用。下面介紹發(fā)光二極管顯示器(led)的結(jié)構(gòu)、工作
9、原理及其接口電路。(1) led結(jié)構(gòu)與原理led顯示器又稱(chēng)數(shù)碼管,它主要由8段發(fā)光二極管組成,如圖1.2(a)所示。圖1.2(a)中,ag為數(shù)字或字符顯示段,h段為小數(shù)點(diǎn)顯示,通過(guò)ag為7個(gè)ag為數(shù)字或字符顯示段,h段為小數(shù)點(diǎn)顯示,通過(guò)ag為7個(gè)。例如:當(dāng)a,b,g,e,d段亮?xí)r,顯示數(shù)字“2”,當(dāng)a,f,e,g段亮?xí)r,則顯示字母“f”。led可分為共陰極和共陽(yáng)極兩種結(jié)構(gòu),如圖1.2(b)和(c)所示。其中(b)為共陰極結(jié)構(gòu)。即把8個(gè)發(fā)光二極管陰極連在一起。這時(shí)如果需要點(diǎn)亮ag中的任何一盞燈,則只需要在相應(yīng)端輸入高電平即可;輸入低電平則截止。比如我們現(xiàn)在要顯示數(shù)字“3”,只要在對(duì)應(yīng)的a、b、c
10、、d、g段送入高電平,在其它端送入低電平即可,點(diǎn)亮為“3”。圖(c)為共陽(yáng)極結(jié)構(gòu)。其顯示端輸入低電平有效,高電平截止。圖1.2 八段led顯示塊表1-1列出了共陽(yáng)極與共陰極led顯示器顯示數(shù)字、字母與顯示代碼之間的對(duì)應(yīng)關(guān)系。表1-1 顯示器顯示數(shù)字、字母與顯示代碼之間的對(duì)應(yīng)關(guān)系顯示字符共陰極段碼共陽(yáng)極段碼顯示字符共陰極段碼共陽(yáng)極段碼03fhc087fh80h106hf996fh90h25bha4a77h88h34fhb0b7ch83h466h99hc39hc656dh92hd5eha1h67dh82he79h86h707hf8f71h8eh(2)led顯示器顯示方式點(diǎn)亮led顯示器有兩種方式:
11、一是靜態(tài)顯示;二是動(dòng)態(tài)顯示。(本設(shè)計(jì)采用靜態(tài)顯示)所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。如圖1.3所示的4位靜態(tài)led顯示器電路。該電路每一位可單獨(dú)顯示,只要在要顯示的那位的段選線(xiàn)上保持段選碼電平,該位就能保持顯示相應(yīng)的顯示字符。這種電路的優(yōu)點(diǎn)是:在同一瞬間可以顯示不同的字符:但缺點(diǎn)就是占用端口資源較多。從圖1.3可以看出,每位led顯示器需單獨(dú)占用8根端口線(xiàn)。因而,在數(shù)據(jù)較多時(shí)往往不采用此種設(shè)計(jì),而是采用動(dòng)態(tài)顯示方式。所謂動(dòng)態(tài)顯示,就是要將顯示的多位led顯示器采用一個(gè)8位的段選端口,然后采用動(dòng)態(tài)掃描方式一位一位的輪流點(diǎn)亮各位顯示器。如圖1.4所示為4
12、位led動(dòng)態(tài)顯示電路。圖1.3 4位靜態(tài)led顯示器電路圖1.4 4位動(dòng)態(tài)led顯示器電路在此電路中,單片機(jī)的p1口用于控制4位led的段選碼;p2口的p2.0p2.3用于控制4位led位選碼。由于所有的段選碼連在一起,所以同一瞬間只能顯示同一種字符。但如果要顯示不同的字符,則要借助位選口來(lái)控制。(如果led偉共陰則p2.0p2.3輸出高電平,為共陽(yáng)則p2.0p2.3輸出為低電平。)例如,現(xiàn)在要輸出5678四個(gè)數(shù)字,則首先應(yīng)該將“5”的顯示代碼由p1.0送出。然后p2.0p2.3輸出相應(yīng)位碼(共陰led時(shí)p2.0p2.3輸出1000,共陽(yáng)led時(shí)p2.0p2.3輸出0111),可以看到在數(shù)碼管
13、1上的顯示數(shù)字“5”。再將顯示的數(shù)字“5”延時(shí)510ms,以造成視覺(jué)暫留效果,同時(shí)代碼由p1.0送出。用同樣的方法將其余3個(gè)數(shù)字“678”送數(shù)碼管2、3、4顯示,最后則可以在4位led上看到“5678”四個(gè)數(shù)字。為了使顯示效果穩(wěn)定,可以使每個(gè)數(shù)碼管顯示的數(shù)字不斷重復(fù),當(dāng)重復(fù)頻率達(dá)到一定程度時(shí),加之人眼視覺(jué)暫留作用,便可以看到相當(dāng)穩(wěn)定的“5678”四個(gè)數(shù)字。(3)led顯示器接口實(shí)例由led的結(jié)構(gòu)及工作原理可知,要想在led上顯示數(shù)據(jù)或字母,則首先必須要把待顯示的數(shù)據(jù)或字母轉(zhuǎn)換成led的7位顯示代碼,方可顯示相應(yīng)的數(shù)字和字母。通過(guò)實(shí)現(xiàn)這種轉(zhuǎn)換有兩種方法:一種是專(zhuān)用硬件譯碼器;另一種是軟件譯碼器2
14、.報(bào)警器采用電磁式蜂鳴器作為報(bào)警的音響器件。3.計(jì)時(shí)電路的原理圖見(jiàn)附錄14.計(jì)時(shí)電路的工作原理計(jì)時(shí)電路如附錄1所示,主要有按鍵開(kāi)關(guān)k5k7,單片機(jī)at89c51,譯碼器以及l(fā)ed顯示器構(gòu)成。其工作過(guò)程如下:當(dāng)調(diào)時(shí)(十位)開(kāi)關(guān)k5按下時(shí),產(chǎn)生一個(gè)低電平;立即取00h取出,同時(shí)對(duì)應(yīng)調(diào)分(十位)控制端p2.0的le輸出高電平,表示此時(shí)可以向調(diào)分(十位)的cd4511發(fā)送數(shù)據(jù),但cd4511的輸出端ag不會(huì)有輸出,因?yàn)閘e=1時(shí),cd4511鎖存。這是只要將要顯示數(shù)據(jù)的代碼經(jīng)cd4511譯碼后,從輸出端ag輸出,送led顯示器顯示。調(diào)時(shí)按鍵開(kāi)關(guān)每按一次,數(shù)字自動(dòng)加1,直到調(diào)到需要設(shè)置的時(shí)間即可。調(diào)時(shí)(
15、個(gè)位)的操作方法與上一樣。時(shí)間設(shè)置完后,啟動(dòng)定時(shí)器t0開(kāi)始定時(shí)計(jì)數(shù)。計(jì)時(shí)采用倒計(jì)時(shí),比如:設(shè)置的時(shí)間為45分鐘,則在led上顯示4500四位數(shù)。定時(shí)t0計(jì)數(shù)60秒后中斷返回,繼續(xù)定時(shí)計(jì)數(shù)下一個(gè)60秒;同時(shí)則在4位led顯示器上顯示4459四位數(shù),表示時(shí)間已過(guò)去1秒鐘,即44分59秒,這樣一直持續(xù)下去,直到變?yōu)椤?000”時(shí)表示賽程結(jié)束。如果比賽中裁判叫暫停,只要按一下k7鍵即可暫停計(jì)時(shí)。3.2 計(jì)分電路1.串行接口8051系列單片機(jī)除了有4個(gè)8位并行口外,還有一個(gè)能同時(shí)進(jìn)行串行發(fā)送和接收的全雙工串行通信口。它能同時(shí)發(fā)送和接收數(shù)據(jù),還能作為同步移位寄存器用。球賽計(jì)分電路正是利用了8051單片機(jī)串
16、行口可以外界串行輸入并行輸出移位寄存作為輸出口來(lái)實(shí)現(xiàn)球賽比分刷新顯示的。現(xiàn)在就有關(guān)8051系列單片機(jī)的串行接口的結(jié)構(gòu)、特點(diǎn)、工作方式以及串行口擴(kuò)展顯示接口的實(shí)例進(jìn)行逐步介紹。(1) 串行口專(zhuān)用寄存器控制串行口的寄存器有兩個(gè),即特殊功能寄存器scon和pcon串行口控制寄存器scon特殊功能寄存器scon用于定義串行口通信方式的選擇和控制它的某些功能。其字節(jié)地址為98h。電源控制寄存器pcon電源控制寄存器pcon,沒(méi)有位尋址功能,直接地址為87h。但pcon中的最高位smod與串行口的波特率設(shè)置有關(guān)。當(dāng)smod=1時(shí),方式1、方式2、方式3的波特率加倍。(2)串行口的工作方式8051有4種工作
17、方式:方式0、方式1、方式2、方式3。串行口由scon中的sm0、sm1選擇4種工作方式。如表1-2所示。表1-2 串行口方式選擇sm0sm1方式功能說(shuō)明波特率000移位寄存器方式fosc/120118位uart可變1029位uartfosc/64或fosc/321139位uart可變 方式0(在計(jì)分電路中,需現(xiàn)實(shí)的積分?jǐn)?shù)據(jù)采用此種方式傳給cd4094的)串行口工作方式0的特點(diǎn)如下:1.為移位寄存輸入輸出方式,可外接移位寄存器,以擴(kuò)展i/o接口,也可外接同步輸入輸出設(shè)備。2.波特率固定:為fosc/12。3.同步發(fā)送/接收8位數(shù)據(jù),數(shù)據(jù)通過(guò)rxd引腳輸入/輸出,txd提供輸出移位時(shí)鐘4.同步發(fā)
18、送/接收8位數(shù)據(jù),低位在先。串行口工作在方式0時(shí)的數(shù)據(jù)發(fā)送:5.當(dāng)執(zhí)行一條movsbuf,a指令時(shí),啟動(dòng)發(fā)送操作,由txd提供輸出移位時(shí)鐘,由rxd串行發(fā)送sbuf中的數(shù)據(jù)。發(fā)送完8位數(shù)據(jù)后自動(dòng)置位t1=1,請(qǐng)求中斷。要繼續(xù)發(fā)送時(shí)t1必須由指令清零(t1=0)。串行口工作在方式0時(shí)的數(shù)據(jù)接收:6.在r1=0條件下,置ren=1時(shí),啟動(dòng)一楨數(shù)據(jù)的接收,由txd提供輸出移位時(shí)鐘,由rxd接收串行數(shù)據(jù)到a中,接收完一楨數(shù)據(jù)后自動(dòng)置位r1,請(qǐng)求中斷,想要繼續(xù)接收時(shí)要用指令清除r1。 方式1串行口工作方式1的特點(diǎn)如下:1.波特率是可變的,取決于定時(shí)器1或2的溢出速率。2.8位異步通信接口。3.傳送1楨信
19、息為10位,即1位起始位(0),8位數(shù)據(jù)位(低位在先)和1位停止位(1)。串行口工作在方式1時(shí)的數(shù)據(jù)發(fā)送:4.當(dāng)執(zhí)行一條movsbuf,a指令時(shí),a中數(shù)據(jù)從txd端異步發(fā)送。發(fā)送完一楨數(shù)據(jù)t1=1。請(qǐng)求送中斷。要繼續(xù)發(fā)送時(shí),需t1指令清零(t1=0)。串行口工作在方式1時(shí)的數(shù)據(jù)接收:5.當(dāng)執(zhí)行一條movsbuf,a指令時(shí),a中數(shù)據(jù)從txd端異步發(fā)送。發(fā)送完一幀數(shù)據(jù)ti=1,請(qǐng)求中斷,要繼續(xù)發(fā)送時(shí),需ti指令清零(ti=0)。串行口工作在方式1時(shí)的數(shù)據(jù)接收:6.當(dāng)置位ren時(shí),串行口采樣rxd,當(dāng)采樣到1至0的跳變時(shí),確認(rèn)串行數(shù)據(jù)幀的起始位,開(kāi)始接收一幀數(shù)據(jù),直到停止位到來(lái)時(shí),把停止位送入rb8
20、中,置位ri請(qǐng)求中斷并通知cpu從sbuf中取走接收的數(shù)據(jù)。ri由指令清零。 方式2和方式3串行口工作方式2和方式3時(shí)的特點(diǎn)如下:1.兩種方式的波特率不同,方式2的波特率是固定的:fosc/64或fosc/32;方式3的波特率是可變的。2.9位異步通信接口3.傳送1幀信息都為11位:1位起始位(0),8位數(shù)據(jù)位(低位再先),1位可編程位(即第9位數(shù)據(jù))和1位停止位(1)方式2和方式3的數(shù)據(jù)發(fā)送:4.是由執(zhí)行任何一條以sbuf,作為目的寄存器的指令來(lái)啟動(dòng)的。由“寫(xiě)入sbuf”信號(hào)把8位數(shù)據(jù)裝入sbuf,同時(shí)還把tb8裝到發(fā)送移位寄存器的第9位位置上,并通知發(fā)送控制器要求進(jìn)行一次發(fā)送。發(fā)送開(kāi)始,把
21、一個(gè)起始位(0)放到txd端。經(jīng)過(guò)一位時(shí)間后,數(shù)據(jù)由移位寄存器送到txd端,通過(guò)第一位數(shù)據(jù),出現(xiàn)第一個(gè)一位脈沖。在第一次移位時(shí),把一個(gè)停止位“1”由控制器的停止位送入移位寄存器的第9位。此后,每次移位時(shí),把0送入第9位。因此,當(dāng)tb8的內(nèi)容移到移位寄存器的輸入位置時(shí),其左面一位是停止位“1”,再往左的所有位是0,這種狀態(tài)由噢監(jiān)測(cè)器檢測(cè)到后,就通知發(fā)送控制器做最后一次移位。然后置ti=1,請(qǐng)求中斷。第9位數(shù)據(jù)(即scon中的tb8的值)由軟件置位或清0,可以作為數(shù)據(jù)的奇偶校驗(yàn)位,也可以作為多機(jī)通信中的地址、數(shù)據(jù)標(biāo)志位。如果把tb8作為奇偶校驗(yàn)位,可以在發(fā)送中斷服務(wù)程序中,在數(shù)據(jù)寫(xiě)入subf之前,
22、先將數(shù)據(jù)的奇偶位寫(xiě)入tb8。方式2和方式3的數(shù)據(jù)接收:5.數(shù)據(jù)從rxd端輸入,接受過(guò)程由rxd端檢測(cè)到負(fù)跳變,16分頻計(jì)數(shù)器就立即復(fù)位,同時(shí)把1ffh寫(xiě)入輸入移位寄存器。技術(shù)器的16個(gè)狀態(tài)把一位時(shí)間等分為16份,在每一位的第7、8、9個(gè)狀態(tài)時(shí),位監(jiān)測(cè)器對(duì)rxd端的值采樣。如果所接受到的起始位不是0,則復(fù)位接受電路,等待另一個(gè)負(fù)跳變的到來(lái)。若起始位0移到最左面時(shí),通知接受控制器進(jìn)行最后一次移位。把8位數(shù)據(jù)裝入接受緩沖器。第9位數(shù)據(jù)裝入scon中的rb8,并置中斷裝置ri=1。數(shù)據(jù)裝入接受緩沖器和rb8,并置位ieri。只在產(chǎn)生最后一個(gè)移位脈沖時(shí),并且要滿(mǎn)足下列條件:(1)ri=0,sm2=0;(
23、2)接受到的第9位數(shù)據(jù)為1時(shí),才會(huì)進(jìn)行。如果不滿(mǎn)足上述條件,接收到的數(shù)據(jù)信息就會(huì)丟失,而且中斷標(biāo)志ri不置1。請(qǐng)注意與方式1的區(qū)別。在方式2和3中裝入rb8的是第9位數(shù)據(jù),而不是停止位(方式1中裝入的德式停止位)。所接受的停止位的值可用于多機(jī)處理(多機(jī)通信中的地址/數(shù)據(jù)標(biāo)志位),也可作奇偶校驗(yàn)位。(3)串行口擴(kuò)展顯示接口的實(shí)例接口電路mcs-51單片機(jī)應(yīng)用系統(tǒng)中,當(dāng)不用做串行通信時(shí),可用來(lái)擴(kuò)展并行i/o口(設(shè)定串行口工作在移位寄存器,方式0狀態(tài)下)。用于顯示器接口時(shí),使用串行輸入、并行輸出移位寄存器74ls164,每接一片74ls164可擴(kuò)展一個(gè)8位并行輸出口,用以連接一個(gè)led段選口做靜態(tài)顯
24、示使用。圖1.5所示的為8051串行口擴(kuò)展顯示器接口電路。圖中畫(huà)出兩位led靜態(tài)顯示??筛鶕?jù)需要任意擴(kuò)展。每擴(kuò)展一片74ls164,可增加一位led顯示器。圖1.5 串行口擴(kuò)展顯示接口74ls164是串行輸入,并行輸出移位寄存器,并帶有清除端,其外部引腳如圖1.6所示。各引腳說(shuō)明如下:圖1.6 74ls164引腳分布圖1.q0q7:并行輸出端。2.b:串行輸入端。3.cr:清除端,零電平時(shí),使74ls164輸出清零。4.cp:時(shí)鐘脈沖出入端,在cp74ls脈沖中的上升作用下實(shí)現(xiàn)移位。在cp=0,cr=1時(shí),74ls164保持原來(lái)數(shù)據(jù)狀態(tài)。串行/并行轉(zhuǎn)換芯片在附錄2所示的計(jì)分電路中,使用集成電路
25、cd4094。cd4094是8位移位寄存器,它主要完成串行輸入,并行輸出8位數(shù)據(jù)的功能,所以又叫8位串/并轉(zhuǎn)換器,其引腳分布如圖1.7所示。其中2腳data為串行數(shù)據(jù)輸入腳;3腳clock為時(shí)鐘脈沖輸入;4、5、6、7、14、13、12、11腳為并行8位數(shù)據(jù)輸出;8腳接地;16腳接電源5v。圖1.7 cd4094引腳分布圖2.比分校正控制電路比分校正控制電路有4輸入與門(mén)74ls21和4個(gè)按鍵組成,其中k1、k2接74ls21的9、10腳,完成甲隊(duì)加減分控制;k3、k4鍵接74ls31的12、13腳,完成乙隊(duì)加減分控制。有關(guān)74ls21集成電路的引腳分布及內(nèi)部構(gòu)成如圖1.8所示。圖1.8 74l
26、s21引腳分布圖1.14腳為電源腳2.7腳接地3.1、2、4、5、9、10、12、13為與門(mén)輸入腳4.6、8腳為與門(mén)輸出腳3.計(jì)分電路原理圖見(jiàn)附錄24.計(jì)分電路的工作原理計(jì)分電路主要有單片機(jī)at89c51、串/并轉(zhuǎn)換器、led顯示器、74ls21以及按鍵開(kāi)關(guān)組成。其工作過(guò)程如下,按鍵開(kāi)關(guān)k1k4組成甲乙兩隊(duì)加減分控制。按鍵開(kāi)關(guān)k1k4一端接地,另一端輸入與門(mén)74ls21的9、10、12、13腳以及單片機(jī)at89c51的p3.5、p3.4、p0.2、p0.1。當(dāng)k1k4四個(gè)按鍵的任何一個(gè)一位按下時(shí),與門(mén)的8腳輸出都會(huì)產(chǎn)生低電平使單片機(jī)發(fā)生中斷,從而使相應(yīng)led顯示。因?yàn)榘存I開(kāi)關(guān)按下時(shí)為低電平。例
27、如:現(xiàn)在以乙隊(duì)加分為例,來(lái)說(shuō)明整個(gè)過(guò)程,假設(shè)比賽剛開(kāi)始,雙方比分為000 000,某一時(shí)刻后,當(dāng)乙隊(duì)加分時(shí),則按下k3,這時(shí)k3=0(低電平),其余k1k2k4=111(為高電平),k1k2k3k4相與的結(jié)果為低電平,這時(shí)與門(mén)8腳輸出低電平到at49c51的p3.2腳,使其外部中斷int0發(fā)生中斷,從而調(diào)用中斷服務(wù)程序,將要顯示的數(shù)據(jù)從程序中定義的led顯示常數(shù)表tab中取出數(shù)據(jù)06h(因?yàn)閘ed顯示常數(shù)表tab的偏移地址為33h,33h首先指向led顯示常數(shù)表tab中的第一個(gè)數(shù)據(jù)3fh,當(dāng)k3按下時(shí),相當(dāng)于將33h地址加1,這時(shí)便指向第二數(shù)據(jù)06h)經(jīng)串行發(fā)送端p3.0送至串/并轉(zhuǎn)換器cd4
28、094的輸入端第2腳(數(shù)據(jù)輸入data)。由于串行口的工作方式設(shè)置為方式0。所以在串行數(shù)據(jù)通過(guò)rxd引腳輸出時(shí),則txd引腳會(huì)輸出多位時(shí)鐘作為移位脈沖,將8位數(shù)據(jù)順利送到cd4094中。另外在rxd引腳輸出數(shù)據(jù)的同時(shí),單片機(jī)p3.7腳輸出高電平給cd4094的第一腳str(使能控制端),使前一片cd4094中的8位數(shù)據(jù)從qs移位至下一片cd4094輸入端的第2腳。在rxd引腳輸出數(shù)據(jù)過(guò)程中連續(xù)使單片機(jī)p3.7腳輸出6次高電平,這樣便使6篇cd4094中顯示代碼送led顯示器顯示,便得到顯示為000 001。因?yàn)樵诔绦蛑卸x33h、35h、36h、37h、38h,6地址單元,分別對(duì)應(yīng)乙隊(duì)、甲隊(duì)6
29、個(gè)led顯示器在程序中定義的led顯示常數(shù)表tab中的偏移首地址。單片機(jī)的rxd每次發(fā)送6個(gè)數(shù)據(jù),分別對(duì)應(yīng)以33h、34h、35h、36h、37h、38h為偏移首地址單元里的數(shù)據(jù)。例如:乙隊(duì)加分表示以33h為偏移首地址的單元加1,指向第二個(gè)數(shù)據(jù)06h,其他以34h、35h、36h、37h、38h為偏移首地址單元里的數(shù)據(jù)仍指向第一個(gè)數(shù)據(jù)3fh,這樣將這6個(gè)數(shù)據(jù):06h、3fh、3fh、3fh、3fh、3fh經(jīng)單片機(jī)的rxd發(fā)送出去,再在單片機(jī)p3.7腳輸出的6次高電平作用下產(chǎn)生6次移位,便在6片cd4094中得到顯示代碼:3fh、3fh、3fh、3fh、3fh、06h。然后在p3.7=0時(shí)顯示為
30、:000 001。3.3球賽計(jì)時(shí)計(jì)分器的工作過(guò)程首先在比賽之前,接通電源,系統(tǒng)自動(dòng)復(fù)位,此時(shí)計(jì)時(shí)電路與計(jì)分電路中的共陰極數(shù)碼管全部顯示為000 000和000 000;然后我們按計(jì)時(shí)電路中的k5按鍵來(lái)設(shè)置比賽時(shí)間的十位數(shù),例如比賽上半場(chǎng)時(shí)間為20分鐘,則通過(guò)k5鍵,使數(shù)碼管1顯示“2”即可;再按k6鍵,設(shè)置比賽時(shí)間的個(gè)數(shù)位,使數(shù)碼管2顯示“0”即可。一般比賽時(shí)間為40分鐘,隨時(shí)只需按k5顯示4,按k6顯示0即可。時(shí)間設(shè)置好時(shí),等待賽程開(kāi)始,當(dāng)裁判吹響開(kāi)始哨聲時(shí),立即按k7鍵啟動(dòng)計(jì)時(shí),這時(shí)計(jì)時(shí)電路便工作,計(jì)時(shí)采用倒計(jì)時(shí)方式,即從20分鐘減為0分鐘表示上半場(chǎng)結(jié)束。上半場(chǎng)結(jié)束時(shí),蜂鳴器會(huì)發(fā)出10秒鐘
31、響聲,通知上半場(chǎng)結(jié)束,這時(shí)按一下k7鍵,便完成甲乙兩隊(duì)的分?jǐn)?shù)交換。在整個(gè)賽程中,我們還要對(duì)兩隊(duì)的比分進(jìn)行及時(shí)刷新,這時(shí)我們通過(guò)計(jì)分電路中的k1k4鍵完成此功能,可、k2鍵完成甲隊(duì)加減分,k3、k4鍵完成乙隊(duì)加減分。按鍵每按一次表示加或減一分。由于加、減分我們采用中斷完成,且加、減分的中斷優(yōu)先權(quán)小于計(jì)時(shí)電路的中斷優(yōu)先權(quán),所以不會(huì)對(duì)計(jì)時(shí)電路造成影響。如果在比賽過(guò)程中,一方教練喊暫停,經(jīng)裁判批準(zhǔn),我們立即按k7鍵,即可以暫停計(jì)時(shí),暫停時(shí)間到時(shí),再按k7鍵繼續(xù)計(jì)時(shí),直至上半場(chǎng)賽程結(jié)束,蜂鳴器會(huì)發(fā)出10秒鐘的響聲。下半場(chǎng)和上半場(chǎng)一樣。4 單片機(jī)軟件設(shè)計(jì)4.1 籃球賽計(jì)時(shí)計(jì)分器程序流程圖開(kāi)始定時(shí)清0甲乙兩
32、隊(duì)分?jǐn)?shù)清零設(shè)置定時(shí)時(shí)間如:20分鐘yn啟動(dòng)鍵是否按下倒計(jì)時(shí)開(kāi)始定時(shí)y定時(shí)時(shí)間到否喇叭響10秒暫停鍵是否按下nn交換建是否按下yn k1k2k3k4是否按下yy甲乙兩隊(duì)交換分?jǐn)?shù)并顯示對(duì)應(yīng)甲乙兩隊(duì)加減分?jǐn)?shù)n4.2 籃球賽計(jì)時(shí)計(jì)分器源代碼org 0000hajmp lk1 ;主程序地址org 000bh ;定時(shí)中斷入口地址ajmp ctcoorg 0013h ;外部中斷入口地址ajmp cxtlk1: mov 33h,#00h ;甲隊(duì)計(jì)分清零mov 33h,#00hmov 34h,#00hmov 35h,#00hmov 36h,#00h ;乙隊(duì)計(jì)分清零mov 37h,#00hmov 38h,#00h
33、mov 40h,#00h ;計(jì)時(shí)分鐘清零mov 41h,#00hclr p0.0mp: clr p2.0 ;計(jì)時(shí)牌子清零clr p2.1 ;分分秒秒清零clr p2.2clr p2.3mov p1,#00hnopnopsetb p2.0setb p2.1setb p2.2setb p2.3mov 42h,#05h ;送秒鐘初值59秒mov 43h,#09hmov scon,#00h ;計(jì)分牌子清零程序clr p3.7mov r1,#33hmov r2,#06hlp: mov a,r1mov dptr,#tab ;取顯示數(shù)movc a,a+dptrmov sbuf,a ;通過(guò)串行口發(fā)顯示數(shù)據(jù)jn
34、b ti,$ ;是否發(fā)送完畢clr ti ;清除標(biāo)志位inc r1djnz r2,lp ;6次是否發(fā)送完畢setb p3.7 ;顯示數(shù)據(jù)lk3: jb p2.4,lk6acall d10msjb p2.4,lk3acall d2slk4: jb p2.4,lk3 ;調(diào)整分鐘(十位)clr p2.0 ;顯示分鐘十位數(shù)據(jù)mov p1,40hsetb p2.0acall d2s ;調(diào)用延時(shí)程序inc 40h;將十位加1mov a,40hcjne a,0ah,lk4 ;十到了沒(méi)有mov 40h,#00hajmp lk4lk6: jb p2.5,lk5acall d10msjb p2.5,lk6acal
35、l d2slk7: jb p2.5,lk6 ;調(diào)整分鐘(個(gè)位)acall d2s ;顯示分鐘個(gè)位數(shù)據(jù)jb p2.5,lk6clr p2.1mov p1,41hsetb p2.1acall d2s ;調(diào)用延時(shí)程序inc 41h ;將個(gè)位加1mov a,41hcjne a,#0ah,lk7 ;十到了沒(méi)有mov 41h,#00hajmp lk7lk5: jb p2.6,lk3 ;等待啟動(dòng)計(jì)時(shí)acall d10msjb p2.6,lk5clr p2.2 ;顯示秒鐘十位mov p1,42hnopnopsetb p2.2clr p2.3 ;顯示秒鐘個(gè)位mov p1,43hnopnopsetb p2.3se
36、tb p0.0 ;點(diǎn)亮計(jì)時(shí)指示燈mov tmod,#01h ;定時(shí)中斷初始化mov tl0,#0b0h ;送定時(shí)初值mov th0,#3chsetb easetb et0 ;開(kāi)放定時(shí)中斷setb ex1 ;開(kāi)放外部中斷clr it0 ;外部中斷低電平有效setb tr0 ;啟動(dòng)定時(shí)mov r0,#14hsjmp $ctco: jnb p3.2,lk8 ;定時(shí)中斷程序djnz r0,next ;一秒鐘到了嗎?mov r0,#14hdec 43hclr p2.3 ;顯示時(shí)間mov p1,43h ;顯示秒鐘個(gè)位nopnopsetb p2.3clr p2.2 ;顯示秒鐘十位mov p1,42hnopn
37、opsetb p2.2clr p2.1 ;顯示分鐘個(gè)位mov p1,41hnopnopsetb p2.1clr p2.0 ;顯示分鐘十位mov p1,40hnopnopsetb p2.0mov a,43hcjne a,#00h,next ;秒鐘個(gè)位回到0沒(méi)有mov 43h,#0ah ;秒鐘個(gè)位送初值10mov a,42hcjne a00h,lp3 ;秒鐘十位回到0沒(méi)有mov 42h,#05h ;秒鐘初值送初值5mov a,41hcjne a,#00h,lp2 ;分鐘個(gè)位回到0沒(méi)有mov 41h,#09h ;分鐘個(gè)位送初值9mov a,40hcjne a,#00h,lp1 ;分鐘十位回到0沒(méi)有c
38、lr p0.0clr p3.6 ;時(shí)間到發(fā)出警備10sacall d10ssetb p3.6kp11: jb p2.6,kp11 ;等待交換ajmp kp12 ;去兩隊(duì)分?jǐn)?shù)交換程序lk8: acall d10msjb p2.6,ctco ;計(jì)時(shí)暫停處理clr p0.0lk9: jnb p2.6,lk9 ;等待鍵按下lk10: jb p2.6,lk10 ;等待鍵放開(kāi)setb p0.0 ;繼續(xù)計(jì)時(shí)ajmp ctcolp3: dec 42h ;將秒鐘十位減1ajmp nextlp1: dec 40h ;將分鐘十位減一ajmp nextlp2: dec 41h ;將分鐘個(gè)位減一next: mov tl
39、0,#0b0h ;定時(shí)中斷送初值返回mov th0,#3chretikp12: mov a,33h ;甲乙兩隊(duì)交換分?jǐn)?shù)xch a,36hmov 33h,amov a,34hxch a,37hmov 34h,amov a,35hxch a,38hmov 35h,aajmp mp ;返回顯示交換后的分?jǐn)?shù)cxt: jnb p3.5,kp1 ;甲隊(duì)+1jnb p3.4,kp2 ;甲隊(duì)-1jnb p0.2,kp3 ;乙隊(duì)+1jnb p0.1,kp4 ;乙隊(duì)-1ajmp kp6kp1: inc 36h ;甲隊(duì)+1程序mov a,36hcjne a,#0ah,kp5mov 36h,#00hinc 37hmo
40、v a,37hcjne a,#0ah,kp5mov 37h,#00hinc 38hajmp kp5kp2: mov a,36h ;甲隊(duì)-1程序cjne a,#00h,ap1mov 36h,#09hdec 37hajmp kp5ap1: dec 36hajmp kp5kp3: inc 33h ;乙隊(duì)+1程序mov a,33hcjne a.#0ah,kp5mov 33h,#00hinc 34hmov a,34hcjne a,#0ah,kp5mov a,34hcjne a,#0ah,kp5mov 34h,#00hinc 35hajmp kp5kp4: mov a,33h ;乙隊(duì)-1程序cjne a,
41、#00h,ap2mov 34h,#09hdec 35hajmp kp5ap2: dec 34hkp5: clr p3.7 ;顯示分?jǐn)?shù)mov r1,#33hmov r2,#06hmov a,r1mov dptr,#tab ;查找顯示數(shù)據(jù)movc a,a+dptrmov sbuf,a ;通過(guò)串行口發(fā)送顯示jnb ti,$ ;串行口是否發(fā)送完畢clr ti ;串行口標(biāo)志清0inc r1djnz r2,lp6 ;6次是否發(fā)送完畢setb p3.7jnb p3.3,kp6 retidb 3fh,06h,5bh.4fh,66h,6dh,7dh,07h,7fh,6fh,00h mov 50h,#05h ;延時(shí)程序10smov r3,#0ah ;延時(shí)程序2smov r7,#14hmov r6,#05hmov r5,#0f9hnopnopdjnz r5,loop2djnz r6,loop3djnz r7,d10msdjnz r3,d200
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)上市居間合同范本
- 2025年沈陽(yáng)貨運(yùn)資格證考試中心
- 農(nóng)資貨物銷(xiāo)售合同范本
- 出售桌球桌子合同范本
- 全手機(jī)購(gòu)銷(xiāo)合同范本
- 勞動(dòng)解約合同范本
- 劃線(xiàn)施工合同范例
- 《第一單元 參考活動(dòng)1 唱響團(tuán)歌》教學(xué)設(shè)計(jì) -2023-2024學(xué)年初中綜合實(shí)踐活動(dòng)蘇少版八年級(jí)上冊(cè)
- 內(nèi)墻翻新粉刷合同范本
- 3人合伙養(yǎng)殖合同范本
- GB/T 20308-2020產(chǎn)品幾何技術(shù)規(guī)范(GPS)矩陣模型
- GB/T 18098-2000工業(yè)炸藥爆炸后有毒氣體含量的測(cè)定
- 男孩女孩動(dòng)起來(lái)健康運(yùn)動(dòng)知識(shí)PPT模板
- 鐵路道岔知識(shí)課件
- 自考公共關(guān)系學(xué)課件
- 森林害蟲(chóng)防治方法課件
- 《國(guó)際金融》課件國(guó)際金融導(dǎo)論
- 各種el34名膽電子管評(píng)測(cè)
- 超分子化學(xué)-杯芳烴課件
- 車(chē)標(biāo)識(shí)別 課講義件課件
- 一年級(jí)下學(xué)期安全教育教案
評(píng)論
0/150
提交評(píng)論