版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理與應(yīng)用課程設(shè)計(jì)說(shuō)明書</p><p> 題 目: 基于單片機(jī)的數(shù)字秒表的設(shè)計(jì) </p><p> 系 部: 信息與控制工程學(xué)院 </p><p> 專 業(yè): 測(cè)控技術(shù)與儀器 </p><p> 班 級(jí):
2、 一 </p><p> 學(xué)生姓名: 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p> 2013年12月 10 日</p><p><b>
3、 目 錄</b></p><p> 1 設(shè)計(jì)任務(wù)與要求1</p><p><b> 2 設(shè)計(jì)方案1</b></p><p> 2.1 設(shè)計(jì)思路1</p><p> 2.2 芯片及其功能2</p><p> 2.2.1 主控制器STC89C522</
4、p><p> 2.2.2移位寄存器74LS1643</p><p> 2.2.3三位共陽(yáng)極數(shù)碼管4</p><p> 2.2.4串口下載芯片MAX2324</p><p> 2.2.5看門狗芯片MAX8135</p><p> 3 硬件電路設(shè)計(jì)6</p><p> 3
5、.1 總體電路設(shè)計(jì)6</p><p> 3.2 單片機(jī)最小系統(tǒng)6</p><p> 3.3 顯示電路7</p><p> 3.4 串口下載電路8</p><p> 4 主要參數(shù)計(jì)算與分析9</p><p> 5 軟件設(shè)計(jì)10</p><p> 5.1 計(jì)數(shù)模
6、塊流程圖10</p><p> 5.2 按鍵控制主控器流程圖10</p><p> 5.3 源程序12</p><p> 6 調(diào)試過(guò)程12</p><p> 6.1 硬件調(diào)試12</p><p> 6.2 軟件調(diào)試12</p><p><b> 7
7、結(jié)論13</b></p><p><b> 8 附錄14</b></p><p> 9 參考文獻(xiàn)18</p><p> 1 設(shè)計(jì)任務(wù)與要求</p><p> 利用51單片機(jī)的定時(shí)計(jì)數(shù)器設(shè)計(jì)一個(gè)秒表,其中設(shè)有一個(gè)按鍵,定時(shí)器工作在方式1。當(dāng)?shù)谝淮伟聪掳存I時(shí),定時(shí)器開始計(jì)時(shí)。第二次按下按鍵時(shí),
8、停止計(jì)時(shí)并計(jì)算兩次按鍵的時(shí)間間隔,送顯示器顯示。第三次按下按鍵時(shí)定時(shí)器清零,等待下一次按鍵。</p><p><b> 2 設(shè)計(jì)方案</b></p><p><b> 2.1 設(shè)計(jì)思路</b></p><p> 本設(shè)計(jì)是以51單片機(jī)為依托設(shè)計(jì)一個(gè)秒表,確定系統(tǒng)由3個(gè)模塊組成,包括主控器、數(shù)據(jù)傳輸電路、顯示電路三部
9、分,如設(shè)計(jì)流程圖2.1所示。</p><p><b> 圖2.1設(shè)計(jì)流程圖</b></p><p> 方案一:利用定時(shí)器T0模式,工作在方式1下,實(shí)現(xiàn)計(jì)時(shí)的功能。利用串行口的工作方式0。在方式0下,串行口作為同步移位寄存器用,以8位數(shù)據(jù)為一幀,先發(fā)送或接受最低位,每個(gè)機(jī)器周期發(fā)送或接受一位數(shù)據(jù),串行數(shù)據(jù)由RXD引腳輸出或輸入,同步移位脈沖由TXD引腳送出。在設(shè)計(jì)中
10、,單片機(jī)程序中的串行數(shù)據(jù)可由RXD引腳輸出,同步移位脈沖由TXD引腳送出。串行口擴(kuò)展并行輸出口時(shí),用“串入并出”的移位寄存器74LS164。并行輸出到三位數(shù)數(shù)碼管,顯示數(shù)據(jù)。</p><p> 方案二:利用設(shè)計(jì)程序的方式實(shí)現(xiàn)“串入并出”。將數(shù)據(jù)傳入到74LS164中,再并行輸出到數(shù)碼管,顯示數(shù)據(jù)。選擇定時(shí)器T0,方式1,設(shè)定T0的定時(shí)時(shí)間為10ms,每隔10ms中斷一次,中斷10次即為0.1s。</p&g
11、t;<p> 考慮到51單片機(jī)串行口與PC的RS-232接口不能直接對(duì)接,必須進(jìn)行電平轉(zhuǎn)換,將TTL電平轉(zhuǎn)換為RS-232電平。所以,串行通信接口需用到MAX232,此處也要用到RXD和TXD引腳。因此,設(shè)計(jì)秒表采取方案二,并用P2口實(shí)現(xiàn)串行輸出。</p><p> 2.2 芯片及其功能</p><p> 2.2.1 主控制器STC89C52</p>
12、<p> STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。 </p><p> 具有以下標(biāo)準(zhǔn)功能:
13、 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外 STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器
14、被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。</p><p> 本次設(shè)計(jì)中主要用到它的定時(shí)器功能。另外,P0口作為位選口,P2用于口擴(kuò)展串行口,通過(guò)74LS164實(shí)現(xiàn)串入并出,最終實(shí)現(xiàn)設(shè)計(jì)功能。STC89C52引腳如圖2.2所示。</p><p> 需要注意的是P0 口,P0 口是一個(gè)8 位漏極開路的雙向I/O 口。作為輸出口,每
15、位能驅(qū)動(dòng)8 個(gè)TTL邏輯電平。在Flash編程時(shí),P0 口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。在程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p> 圖2.2 STC89C52引腳</p><p> 移位寄存器74LS164</p><p> 74LS164是TTL八位串行輸入并行輸出移位寄存器,在設(shè)計(jì)中驅(qū)動(dòng)數(shù)碼管。引腳如圖2.3所示。</p&g
16、t;<p> 圖2.3移位寄存器74LS164引腳</p><p><b> 各引腳的功能如下:</b></p><p> QA-QH為并行輸出引腳。</p><p> A、B為串行輸入引腳。</p><p> 為清零引腳,低電平時(shí),使74HC164輸出清零。</p><p&g
17、t; CP為時(shí)鐘脈沖輸入引腳,在CP脈沖的上升沿作用下實(shí)現(xiàn)移位。在CP=0,=1時(shí)74HC164保持原來(lái)數(shù)據(jù)狀態(tài)不變。</p><p><b> 三位共陽(yáng)極數(shù)碼管</b></p><p> 三位共陽(yáng)極八段數(shù)碼管,顯示三位數(shù)字,第二位數(shù)字帶有小數(shù)點(diǎn)。原理如圖2.4所示。</p><p> 圖2.4三位共陽(yáng)極數(shù)碼管原理</p>
18、<p> 管腳順序:從數(shù)碼管的正面看,以第一引腳為起點(diǎn),管腳的順序是逆時(shí)針的方向排列。</p><p> 12-9-8引腳為公共端,A-11,B-7,C-4,D-2,E-1,F(xiàn)-10,G-5,DP-3</p><p> 串口下載芯片MAX232</p><p> MAX232是用來(lái)做電平轉(zhuǎn)換的,標(biāo)準(zhǔn)RS232電平很高,達(dá)到正負(fù)15V。常用的TTL
19、電平最高5V。相互連接的話必須進(jìn)行電平轉(zhuǎn)換。由于PC串口輸出電壓高達(dá)12V,直接與單片機(jī)連接會(huì)燒壞芯片。所以用MAX232進(jìn)行電平轉(zhuǎn)換。MAX232芯片采用單+5V電源供電,僅需幾個(gè)外接電容即可完成從TTL到RS232電平的轉(zhuǎn)換,共兩路。引腳如圖2.5所示。</p><p> 圖2.5 MAX232引腳</p><p> TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)
20、據(jù)從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。</p><p> 看門狗芯片MAX813</p><p> 若程序發(fā)生“死機(jī)”,則看門狗產(chǎn)生復(fù)位信號(hào),引導(dǎo)單片機(jī)程序重新進(jìn)入正常運(yùn)行。</p><p> MAX813芯片在加電、掉電以及供電電壓下降情況下
21、復(fù)位輸出,復(fù)位脈沖寬度典型值為200 ms。 獨(dú)立的看門狗輸出,如果看門狗輸入在1.6 s內(nèi)未被觸發(fā),其輸出將變?yōu)楦唠娖健?1.25 V門限值檢測(cè)器,用于電源故障報(bào)警、電池低電壓檢測(cè)或+5 V以外的電源監(jiān)控。 低電平有效的手動(dòng)復(fù)位輸入。引腳為DIP封裝。 引腳如圖2.6所示。</p><p> 圖2.6 MAX813引腳</p><p><b> 3 硬件電路設(shè)計(jì)</
22、b></p><p> 3.1 總體電路設(shè)計(jì)</p><p> 秒表電路設(shè)計(jì)原理圖控制器使用單片機(jī)STC89C52,用三合一八段數(shù)碼管以動(dòng)態(tài)掃描法實(shí)現(xiàn)秒表顯示。電路還包括單片機(jī)外設(shè)電路等。整個(gè)系統(tǒng)的原理圖如下圖3.1所示。</p><p> 圖3.1總體電路設(shè)計(jì)</p><p> 3.2 單片機(jī)最小系統(tǒng)</p>
23、<p> 單片機(jī)最小系統(tǒng)就是能使單片機(jī)工作的最少的器件構(gòu)成系統(tǒng),是大多數(shù)單片機(jī)控制系統(tǒng)中不可缺少的關(guān)鍵部分。其內(nèi)部已經(jīng)包含了一定數(shù)量的程序存儲(chǔ)器,在外部增加時(shí)鐘電路和復(fù)位電路構(gòu)成單片機(jī)最小應(yīng)用系統(tǒng),此處的復(fù)位電路接看門狗MAX813的REST引腳,如圖3.2所示。</p><p> 圖3.2單片機(jī)最小系統(tǒng)</p><p><b> 3.3 顯示電路</b
24、></p><p> 顯示電路采用三位共陽(yáng)極LED數(shù)碼管。從P0口的低三位輸出低電平信號(hào),通過(guò)9105三極管來(lái)控制數(shù)碼管的位選。數(shù)碼管段選顯示需要74LS164來(lái)驅(qū)動(dòng)。 </p><p> 內(nèi)部的三個(gè)數(shù)碼管共用A-DP這8根數(shù)據(jù)線,又因?yàn)槿粩?shù)碼管有三個(gè)公共端,所以共有12個(gè)引腳,引腳排列依然是從左下角的那個(gè)腳(1腳)開始,以逆時(shí)針方向依次為1-12腳。連接線路如圖所示。<
25、/p><p> 圖3.3 數(shù)碼管與74LS164驅(qū)動(dòng)電路</p><p> 3.4 串口下載電路</p><p> MAX232芯片是專門為PC的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用+5v單電源供電。內(nèi)部結(jié)構(gòu)基本可分三個(gè)部分:</p><p> 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-
26、12v兩個(gè)電源,提供給RS-232串口電平的需要。</p><p> 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。</p><p> TTL/CMOS數(shù)
27、據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到PC DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。</p><p> 第三部分是供電。15腳DNG、16腳VCC(+5v)。</p><p> 在此用于串口通信,因?yàn)镻C的數(shù)據(jù)邏輯仍用正負(fù)12V需用這個(gè)芯片將5V和正負(fù)10V進(jìn)行轉(zhuǎn)換。
28、PC電平進(jìn)入R1OUT口從T1IN出,由10V轉(zhuǎn)為5V;51的電平從T1IN口入由R1OUT口出轉(zhuǎn)為12V電平。4電容接法的目的是為了升壓,是電荷泵電路。</p><p> 原理圖如圖3.4所示。</p><p> 圖3.4串口下載電路原理圖</p><p> 4 主要參數(shù)計(jì)算與分析</p><p> 晶振頻率采用fosc=12MH
29、Z,Tcy=1÷(12×1000000)×12=1us。選定定時(shí)器T0。</p><p> 數(shù)碼管為三位,前兩位設(shè)為秒計(jì)時(shí),最低一位計(jì)時(shí)滿100ms變化一次數(shù),數(shù)字從0-6循環(huán)顯示。當(dāng)計(jì)時(shí)滿1s時(shí),第二位開始顯示,數(shù)字依然是從0-6循環(huán)顯示。第二位滿6時(shí),最高位開始從0-6顯示,滿6時(shí),最多顯示60s。此處選擇工作方式1。</p><p> 方式1的定時(shí)時(shí)
30、間為65.536ms,選擇定時(shí)器T0,方式1,設(shè)定T0的定時(shí)時(shí)間為10ms,每隔10ms中斷一次,中斷10次即為1s。</p><p><b> 確定計(jì)算初值:</b></p><p> (2n-x)×Tcy=(216-x)×1us=10ms</p><p> X=65536-10000</p><
31、p> TH0=(65536-10000)/256;</p><p> TL0=(65536-10000)%256;</p><p><b> 5 軟件設(shè)計(jì)</b></p><p> 5.1 計(jì)數(shù)模塊流程圖</p><p> 圖5.1定時(shí)器計(jì)時(shí)模塊流程圖</p><p> 5.
32、2 按鍵控制主控器流程圖</p><p> 圖5.2按鍵控制主控器流程圖</p><p><b> 5.3 源程序</b></p><p><b> 見附錄1。</b></p><p><b> 6 調(diào)試過(guò)程</b></p><p><
33、;b> 6.1 硬件調(diào)試</b></p><p> 電路板焊接好之后,接通5V穩(wěn)壓電源。按照設(shè)計(jì)要求下載程序到51單片機(jī)中。按下對(duì)應(yīng)的按鍵,如果數(shù)碼管顯示,并且計(jì)時(shí)時(shí)間正確,說(shuō)明電路焊接良好,程序正確。</p><p> 若數(shù)碼管不顯示,立即查看是否有虛焊或露焊現(xiàn)象,及時(shí)補(bǔ)焊。若數(shù)碼管還是不顯示,則用萬(wàn)用表測(cè)試芯片上供電端,是否有5V電壓供電,若萬(wàn)用表顯示不在5V
34、左右,判斷出供電端錯(cuò)接,則檢查供電電路,重新連接供電電路。之后,測(cè)試所有線路的接地端,看是否接地。若接線良好,則切斷電源,繼續(xù)檢測(cè)電感、三極管等器件的焊接是否正確。將萬(wàn)用表調(diào)到電阻“蜂鳴器”檔,按順序依次檢測(cè)所有的管腳連接是否正常。若電阻“蜂鳴器”響起,則表明管腳接線正常,否則檢查線路,直至每一個(gè)芯片和按鍵的管腳連接良好,數(shù)碼管顯示正確。</p><p> 若數(shù)碼管顯示依然有誤,則嘗試調(diào)整程序。</p&g
35、t;<p><b> 6.2 軟件調(diào)試</b></p><p> 軟件調(diào)試首先用Keil C51編譯器進(jìn)行調(diào)試。在使用Keil C51編譯器時(shí),對(duì)工程成功地進(jìn)行調(diào)試、編譯、連接以后,在主菜單中打開“調(diào)試”欄,點(diǎn)擊“開始/停止調(diào)試模式”,即可進(jìn)入軟件模擬仿真調(diào)試狀態(tài),Keil C51內(nèi)建了一個(gè)仿真CPU用來(lái)模擬執(zhí)行程序,該仿真CPU功能非常強(qiáng)大,可以在沒有硬件和仿真器的情況
36、下進(jìn)行程序的調(diào)試,但是在時(shí)序上,軟件模擬仿真是達(dá)不到硬件的時(shí)序的。</p><p> 進(jìn)入調(diào)試狀態(tài)后,“調(diào)試”欄菜單項(xiàng)中原來(lái)不能用的命令現(xiàn)在已經(jīng)可以使用了。調(diào)試程序看是否能仿真,如果運(yùn)行正常再將在Keil C51編譯器中調(diào)試好的程序燒寫至單片機(jī)??筛鶕?jù)電路的運(yùn)行情況推測(cè)出程序出錯(cuò)的部分,修改程序后再經(jīng)過(guò)Keil C51編譯器調(diào)試后燒到單片機(jī),反復(fù)檢測(cè)直到能工作完全正常。</p><p>
37、 本程序采用單片機(jī)C語(yǔ)言編寫,用Keil C51編譯器編程調(diào)試。在程序調(diào)試中解決了“按鍵的抖動(dòng)”問(wèn)題,為了使數(shù)碼管的顯示更清晰,通過(guò)程序?qū)?shù)碼管做了“消影”處理。對(duì)于程序掃描并識(shí)別按鍵的部分,通過(guò)“多分支選擇語(yǔ)句” 實(shí)現(xiàn)。定時(shí)器計(jì)時(shí),10ms產(chǎn)生執(zhí)行一次中斷服務(wù),經(jīng)過(guò)10次中斷,實(shí)現(xiàn)0.1s顯示。</p><p> 最終,軟件調(diào)試到能準(zhǔn)確顯示計(jì)時(shí)數(shù)據(jù),并且能通過(guò)按鍵控制計(jì)時(shí)模式,停止、讀取、清零。</p
38、><p><b> 7 結(jié)論</b></p><p> 本次的課程設(shè)計(jì)使我進(jìn)一步鞏固了書本上的知識(shí),做到了學(xué)以致用。通過(guò)STC下載軟件、PROTEUS仿真軟件和編譯軟件KEIL.C使我進(jìn)一步了解了基于單片機(jī)的設(shè)計(jì)制作過(guò)程。其中最為困難的是編程部分,我們上網(wǎng)找了好多資料,雖然經(jīng)過(guò)自己的修改,但還是有很多功能不能實(shí)現(xiàn)??偨Y(jié)經(jīng)驗(yàn)的時(shí)候我們得出這樣的結(jié)論,學(xué)習(xí)應(yīng)該學(xué)以致用,
39、有目的的去學(xué)習(xí),如果學(xué)了不用等于沒學(xué)。其次,要理論聯(lián)系實(shí)際,這樣才會(huì)取得事半功倍的效果。此次課程設(shè)計(jì)歷時(shí)兩個(gè)周,從最開始的資料的收集,核對(duì)元器件,程序的設(shè)計(jì),到最后的調(diào)試和再調(diào)試。我從中學(xué)到了許多知識(shí)。通過(guò)查找各種資料,我更加熟練的運(yùn)用所學(xué)過(guò)的信息檢索方法。也懂得了耐心的重要性,調(diào)試過(guò)程挑戰(zhàn)了我的堅(jiān)持能力,磨礪了我的性格。這次經(jīng)歷不僅僅擴(kuò)充了我的知識(shí)面,培養(yǎng)了動(dòng)手能力,合作的意識(shí),還教會(huì)了我怎樣做好一件事的方法。課程設(shè)計(jì)的過(guò)程帶給我的是
40、對(duì)所學(xué)知識(shí)的復(fù)習(xí)是對(duì)新知識(shí)的拓展,是對(duì)遇到各種困難的堅(jiān)持,也是對(duì)堅(jiān)持就是勝利這種信仰的肯定。雖然在這中間走過(guò)許多歪路,遇到很多失敗,但是最終帶給我是收獲。</p><p><b> 8 附錄</b></p><p><b> 附錄1 源程序代碼</b></p><p> #include<reg52.h>
41、; //包含52單片機(jī)頭文件</p><p> #define uchar unsigned char //宏定義</p><p> #define uint unsigned int</p><p> sbit simuseri_CLK=P2^5; //聲明P2口第六位,作為74LS164的時(shí)鐘信號(hào)</p><p>
42、sbit simuseri_DATA=P2^4; //聲明P2口第五位,作為74LS164的串行輸入</p><p> sbit a0=ACC^0;</p><p> uint temp,aa,count,dd,bai,shi,ge;</p><p> uchar code table1[]={0x18,0x5F,0x68,0x4A,0x0F,0x8A,0
43、x88,0x5E,0x08,0x0A};</p><p> uchar code table2[]={0x10,0x57,0x60,0x42,0x07,0x82,0x80,0x56,0x00,0x02};</p><p> //共陽(yáng)極數(shù)碼管碼表</p><p> void display(uint bai,uint shi,uint ge);//聲明子函數(shù)&
44、lt;/p><p> void delay(uint z); //聲明子函數(shù)</p><p> void init(); //聲明子函數(shù)</p><p> uint key1times;</p><p> sbit key1=P1^3; //位聲明</p><p
45、> void keyscan() //按鍵掃描執(zhí)行函數(shù)</p><p> {if(key1times==0)</p><p><b> temp=0;</b></p><p> if(key1==0)</p><p><b> {</b></p><
46、;p> delay(5); //按鍵消抖</p><p> if(key1==0)</p><p><b> {</b></p><p> while(!key1); //等待按鍵釋放</p><p> start:key1times++; //累計(jì)按鍵的次數(shù)</p>&l
47、t;p> switch(key1times) //多分支選擇語(yǔ)句</p><p><b> {</b></p><p><b> case 1:</b></p><p><b> temp=0;</b></p><p><b> break;<
48、/b></p><p><b> case 2:</b></p><p><b> TR0=~TR0;</b></p><p><b> break;</b></p><p><b> case 3:</b></p><p
49、><b> temp=0;</b></p><p><b> break;</b></p><p><b> case 4:</b></p><p><b> TR0=1;</b></p><p><b> break;</
50、b></p><p><b> case 5:</b></p><p> key1times=1;</p><p> goto start;</p><p><b> }</b></p><p><b> }</b></p>
51、<p><b> }</b></p><p><b> }</b></p><p> //------------------------------------------------------------------</p><p> // 函數(shù)名稱:out_simuseri </p
52、><p> // 輸入?yún)?shù):data_buf</p><p> // 輸出參數(shù):無(wú)參</p><p> // 功能說(shuō)明:8位同步移位寄存器,將data_buf的數(shù)據(jù)逐位輸出到simuseri_DATA</p><p> //-------------------------------------------------------
53、-----------</p><p> void out_simuseri(uchar data_buf) </p><p><b> { </b></p><p><b> uchar i;</b></p><p><b> i=8;</b></p>
54、<p> ACC=data_buf;</p><p><b> do</b></p><p><b> { </b></p><p> simuseri_CLK=0; </p><p> simuseri_DATA=a0;</p><p> simus
55、eri_CLK=1;</p><p> ACC=ACC>>1;</p><p><b> }</b></p><p> while(--i!=0);</p><p><b> }</b></p><p> /***********************
56、*************************/</p><p> void main()</p><p><b> { </b></p><p><b> init();</b></p><p> while(1)//大循環(huán)</p><p>&l
57、t;b> {</b></p><p> keyscan();</p><p> display(bai,shi,ge);//調(diào)用顯示函數(shù)</p><p><b> }</b></p><p><b> }</b></p><p> /*****
58、*******************************************/ </p><p> void delay(uint z)//延時(shí)函數(shù)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=
59、z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> /************************************************/</p><p> void display( uint bai,
60、uint shi,uint ge)//顯示函數(shù)</p><p><b> {</b></p><p> bai=temp/100%10;</p><p> shi=temp/10%10;</p><p> ge=temp%10;</p><p> P0=0xFF;
61、 //消影</p><p> out_simuseri(table1[bai]); //調(diào)用out_simuseri函數(shù)</p><p><b> P0=0xFE;</b></p><p><b> delay(1);</b></p><p><b> P0=
62、0xFF;</b></p><p> out_simuseri(table2[shi]);</p><p><b> P0=0xFD;</b></p><p><b> delay(1);</b></p><p><b> P0=0xFF;</b></
63、p><p> out_simuseri(table1[ge]);</p><p><b> P0=0xFB;</b></p><p><b> delay(1);</b></p><p><b> }</b></p><p> /*********
64、***************************************/</p><p> void init()//初始化函數(shù)</p><p><b> {</b></p><p> key1times=0;</p><p><b> temp=0;</b></
65、p><p><b> aa=0;</b></p><p> TMOD=0X01;</p><p> TH0=(65536-10000)/256;//設(shè)定定時(shí)器初值</p><p> TL0=(65536-10000)%256;</p><p> EA=1;//開總中斷&l
66、t;/p><p> ET0=1;//允許T0中斷</p><p> TR0=1;//啟動(dòng)T0中斷</p><p><b> }</b></p><p> /************************************************/</p><p&
67、gt; void timer0() interrupt 1//定時(shí)器T0中斷服務(wù)子程序</p><p><b> {</b></p><p> TH0=(65536-10000)/256;</p><p> TL0=(65536-10000)%256;</p><p> aa++; /
68、/中斷次數(shù)加1</p><p> if(aa==10)//計(jì)時(shí)100ms</p><p><b> {</b></p><p><b> aa=0;</b></p><p><b> temp++;</b></p><p> if(
69、temp==600)</p><p><b> temp=0;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> 9 參考文獻(xiàn)</b></p><p>
70、[1]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版)[M]. 北京:高等教育出版社,1989.</p><p> ?。?]康華光.電子技術(shù)基礎(chǔ):數(shù)字部分.4版. 北京:高等教育出版社,2000.</p><p> ?。?]路而紅.專用集成電路設(shè)計(jì)與電子設(shè)計(jì)自動(dòng)化.北京:清華大學(xué)出版社,2004.</p><p> ?。?]鄭家龍.集成電子技術(shù)基礎(chǔ)教程.北京:高等教育出版社,200
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的秒表設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
- 單片機(jī)數(shù)字秒表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字秒表
- 單片機(jī)課程設(shè)計(jì)-數(shù)字秒表
- 單片機(jī)的數(shù)字秒表課程設(shè)計(jì)
- 單片機(jī)秒表單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的秒表系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)控制的數(shù)字秒表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)秒表系統(tǒng)設(shè)計(jì)
- 單片機(jī)秒表系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)--基于8051的單片機(jī)秒表系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)數(shù)字秒表系統(tǒng)的課程設(shè)計(jì)
- 基于單片機(jī)的秒表課程設(shè)計(jì)
- 課程設(shè)計(jì)--基于51單片機(jī)的數(shù)字秒表設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)秒表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---秒表
- 單片機(jī)秒表課程設(shè)計(jì)
- 秒表(單片機(jī)課程設(shè)計(jì))
- 課程設(shè)計(jì)--基于單片機(jī)的(秒表)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論