版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 2014—2015學(xué)年第 1 學(xué)期</p><p> 電氣與信息工程 學(xué)院(系、部) 電子信息 專業(yè) 1203 班級(jí)</p><p> 課程名稱: 單片機(jī)應(yīng)用系統(tǒng)
2、 </p><p> 設(shè)計(jì)題目: 對(duì)外部脈沖計(jì)數(shù)及出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì) </p><p> 完成期限:自 2014 年 12 月 27 日至 2015 年 1 月 4 日共 2 周</p><p> 指 導(dǎo) 教 師 (簽字):
3、 年 月 日</p><p> 系(教研室)主任(簽字): 年 月 日</p><p><b> 單片機(jī)應(yīng)用系統(tǒng)</b></p><p><b> 課程設(shè)計(jì)說(shuō)明書(shū)</b></p><p>
4、 起止日期:2014年12月27日至2015年1月4 日</p><p><b> 姓 名: </b></p><p><b> 組 員:</b></p><p> 班 級(jí):電子信息 1203班</p><p> 學(xué) 號(hào):1240172</p><
5、p> 成 績(jī): </p><p> 指導(dǎo)老師: </p><p><b> 電氣與信息工程學(xué)院</b></p><p> 2015年 1 月 5 日</p><p><b> 一、設(shè)計(jì)任務(wù):</b></p><p>
6、; 1.1 外部脈沖自動(dòng)計(jì)數(shù),自動(dòng)顯示</p><p> 1.1.1設(shè)計(jì)一個(gè)255計(jì)數(shù)器:0-255計(jì)數(shù),計(jì)滿后自動(dòng)清0,重新計(jì)數(shù)(在數(shù)碼管中顯示)。</p><p> 1.1.2設(shè)計(jì)一個(gè)50000計(jì)數(shù)器:0-50000計(jì)數(shù),計(jì)滿后自動(dòng)清0,重新計(jì)數(shù)(在數(shù)碼管中顯示)。</p><p> 1.2 設(shè)計(jì)一個(gè)出租車計(jì)費(fèi)系統(tǒng)
7、 </p><p> 起步價(jià)為5元(2km以內(nèi)),2km后,0.8元/0.5km;要求每500m刷新計(jì)費(fèi)一次,在8位數(shù)碼管中,前3位顯示數(shù)碼管顯示里程數(shù),后3位數(shù)碼管顯示價(jià)錢(角,元,十元,百元)</p><p> 注:要求首先采用PROTEUS完成單片機(jī)最小系統(tǒng)的硬件電路設(shè)計(jì)及仿真;程序仿真測(cè)試通過(guò)后,再下載到單片機(jī)實(shí)訓(xùn)板上執(zhí)行。</p>
8、<p> 1.3長(zhǎng)短按鍵的設(shè)計(jì)(附加題)</p><p> 系統(tǒng)從000開(kāi)始,一個(gè)按鍵若短按一下(0.5s以內(nèi)),則個(gè)位數(shù)加1;如果長(zhǎng)按2s不放,則個(gè)位數(shù)按步長(zhǎng)0.2s快速進(jìn)滿后,十位數(shù)按步長(zhǎng)0.5s加1;加到100則停止并長(zhǎng)時(shí)間顯示。</p><p> 二、單片機(jī)最小系統(tǒng)硬件資源介紹</p><p> STC89C52RC單片機(jī);</p&
9、gt;<p><b> 8位共陰極數(shù)碼管;</b></p><p> 段碼驅(qū)動(dòng)器74HC573;</p><p><b> 4路獨(dú)立式按鍵;</b></p><p> ISP下載接口(In system program,在系統(tǒng)編程);</p><p><b> IS
10、P下載線。</b></p><p> STC89C52RC</p><p> STC89C52RC單片機(jī)8K字節(jié)程序存儲(chǔ)空間;512字節(jié)數(shù)據(jù)存儲(chǔ)空間;內(nèi)帶2K字節(jié)EEPROM存儲(chǔ)空間;可直接使用串口下載;8K字節(jié)程序存儲(chǔ)空間;256字節(jié)數(shù)據(jù)存儲(chǔ)空間。</p><p> ?。?)增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意選擇,指
11、令代碼完全兼容傳統(tǒng)8051.</p><p> ?。?)工作電壓:5.5V~3.3V(5V 單片機(jī))/3.8V~2.0V(3V 單片機(jī))</p><p> ?。?)工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實(shí)際工作頻率可達(dá)48MHz;</p><p> ?。?)用戶應(yīng)用程序空間為8K字節(jié);</p><p> ?。?)片
12、上集成512字節(jié)RAM;</p><p> ?。?)通用I/O口(32個(gè)),復(fù)位后為:P0/P1/P2/P3是準(zhǔn)雙向口/弱上拉,P0口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻,設(shè)計(jì)電路時(shí)需要注意這點(diǎn)。共3個(gè)16位定時(shí)/計(jì)數(shù)器,分別為T0,T1,T2。</p><p> STC89C52引腳圖如圖1所示,其主要芯片功能如下所示。</p>
13、<p><b> VCC:電源電壓</b></p><p><b> GND:接地</b></p><p> P0口:P0口是一組8位雙向I/O口。P0口即可作地址/數(shù)據(jù)總線使用,又可以作為通用的I/O口使用。</p><p> P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8準(zhǔn)位雙向I/O口,P1作為通用的I/O
14、口使用。</p><p> P2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口 </p><p> P3口:P3口是一組帶有內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/0口</p><p><b> RST:復(fù)位輸入</b></p><p> PSEN程序儲(chǔ)存允許(P
15、SEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào)</p><p> EA/VPP:外部訪問(wèn)允許</p><p> XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端</p><p> XTAL2:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸:出端</p><p> 圖1 STC89C52引腳圖</p><p><b&g
16、t; 數(shù)碼管顯示電路</b></p><p> 顯示電路既可以選用液晶顯示器,也可以選用數(shù)碼管顯示。我采用的是數(shù)碼管顯示電路。用八個(gè)共陰極數(shù)碼管顯示,LED是七段式顯示器,內(nèi)部有7個(gè)條形發(fā)光二極管和1個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。共陰極數(shù)碼管的碼表為如表1所示。</p><p> 表1 共陰數(shù)碼管碼表</p><p> 在用數(shù)
17、碼管顯示時(shí),我們有靜態(tài)和動(dòng)態(tài)兩種選擇,靜態(tài)顯示程序簡(jiǎn)單,顯示穩(wěn)定,但是占用端口比較多;動(dòng)態(tài)顯示所使用的端口比較少,可以節(jié)省單片機(jī)的I/O口。</p><p> LED數(shù)碼管的顯示原理:數(shù)碼管有段選與位選兩個(gè)使能端,由于采用共陰極數(shù)碼管,要把數(shù)碼管點(diǎn)亮,就必須給位選選通,至于顯示什么數(shù)字,只需給段選輸入數(shù)據(jù)即可。</p><p> 通過(guò)給52單片機(jī)P0口送入初始值,并用P0口來(lái)控制段選位
18、,P2.6、P2.7口來(lái)控制位顯來(lái)實(shí)現(xiàn)動(dòng)態(tài)顯示,來(lái)顯示各燈所在狀態(tài)的顯示時(shí)間。</p><p> 在設(shè)計(jì)中,我們采用LED數(shù)碼管動(dòng)態(tài)顯示,用P0口驅(qū)動(dòng)顯示。由于P0口的輸出級(jí)時(shí),數(shù)碼管顯示的亮度不夠,根據(jù)以前學(xué)習(xí)的知識(shí)及學(xué)長(zhǎng)們的經(jīng)驗(yàn),只需給P0口強(qiáng)勢(shì)上拉10K排阻,經(jīng)實(shí)驗(yàn)驗(yàn)證,P0口上拉10K排阻后,數(shù)碼管顯示較亮。電路圖如圖2所示。</p><p> 其中單片機(jī)P0口與數(shù)碼管各引腳之
19、間的連接關(guān)系分別為:</p><p> P0.0------a</p><p> P0.1------b</p><p> P0.2------c</p><p> P0.3------d</p><p> P0.4------e</p><p> P0.5------f</p
20、><p> P0.6------g</p><p> P0.7------Dp</p><p> 圖2 數(shù)碼管顯示電路</p><p> 其中a,b,c,d,e,f,g,Dp在數(shù)碼管上的位置如圖3所示。</p><p><b> 圖3 數(shù)碼管</b></p><p>
21、 3. 74HC573</p><p> 74HC573的八個(gè)鎖存器都是透明的D 型鎖存器,當(dāng)使能(G)為高時(shí),Q 輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時(shí),新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動(dòng)大電容或低阻抗負(fù)載,可以直接與系統(tǒng)總線接口并驅(qū)動(dòng)總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅(qū)
22、動(dòng)器和工作寄存器。</p><p> 芯片引腳如圖4所示。</p><p> 圖4 74HC573引腳圖</p><p><b> 三、設(shè)計(jì)思路</b></p><p> 1、設(shè)計(jì)一個(gè)255計(jì)數(shù)器:0-255計(jì)數(shù),計(jì)滿后自動(dòng)清0,重新計(jì)數(shù)(在數(shù)碼管中顯示)。</p><p> 設(shè)計(jì)思路
23、:255可用8位二進(jìn)制數(shù)表示,故本設(shè)計(jì)可直接采用可以自動(dòng)裝載初值的計(jì)數(shù)器T1模式二進(jìn)行計(jì)數(shù)。然后對(duì)TL1的內(nèi)容進(jìn)行相應(yīng)的二進(jìn)制---十進(jìn)制轉(zhuǎn)換:首先TL1的內(nèi)容除以64H,所的商就是十進(jìn)制的百位,然后用余數(shù)除以0AH,所得的商就是十進(jìn)制數(shù)的十位,余數(shù)即相應(yīng)的十進(jìn)制的個(gè)位。接著將相應(yīng)的十進(jìn)制數(shù)進(jìn)行譯碼,并在LED數(shù)碼管上顯示出來(lái)。每來(lái)一個(gè)脈沖其顯示的結(jié)果加一,直加至255然后T1重新開(kāi)始計(jì)數(shù)。流程圖如圖5所示。</p>&l
24、t;p> 圖5 255計(jì)數(shù)程序流程圖</p><p> 2、設(shè)計(jì)一個(gè)50000計(jì)數(shù)器:0-50000計(jì)數(shù),計(jì)滿后自動(dòng)清0,重新計(jì)數(shù)(在數(shù)碼管中顯示)。</p><p> 設(shè)計(jì)思路:通過(guò)外部中斷循環(huán)次數(shù)判斷實(shí)現(xiàn)計(jì)數(shù)。20H-24H分別存放個(gè)、十、百、千、萬(wàn)位。通過(guò)向每個(gè)內(nèi)存單元自增一,判斷每個(gè)數(shù)是否已經(jīng)增至10,如果增至10立即轉(zhuǎn)向十位,以此類推,但是由于是50000計(jì)數(shù),所以
25、在最后在萬(wàn)位到5的時(shí)候,我要限制其不再增至10,達(dá)到5便清零,最后便得到了結(jié)果所需。其中程序用了查表來(lái)實(shí)現(xiàn)數(shù)碼管的顯示。流程圖如圖6所示。</p><p> 圖6 50000計(jì)數(shù)程序流程圖</p><p> 3、設(shè)計(jì)一個(gè)出租車計(jì)費(fèi)系統(tǒng): 起步價(jià)為5元(2km以內(nèi)),2km后,0.8元/0.5km;要求每500m刷新計(jì)費(fèi)一次,在8位數(shù)碼管中,前3位顯示數(shù)碼管顯示里程數(shù),后3位數(shù)碼管顯示
26、價(jià)錢(角,元,十元,百元)</p><p> 設(shè)計(jì)思路:首先由按鍵控制的外部中斷脈沖來(lái)模擬出租車車輪走過(guò)的里程,每按一次P3.3按鍵產(chǎn)生一個(gè)脈沖,1個(gè)脈沖當(dāng)作100m。自動(dòng)計(jì)費(fèi)模塊會(huì)按照不同的計(jì)費(fèi)標(biāo)準(zhǔn)自動(dòng)調(diào)節(jié)計(jì)費(fèi)。計(jì)費(fèi)標(biāo)準(zhǔn)設(shè)定模塊包掛起步費(fèi)、單位里程費(fèi)、低速行駛等待時(shí)間設(shè)定部分。設(shè)定好的數(shù)值分別送到自動(dòng)計(jì)費(fèi)模塊、計(jì)時(shí)模塊和計(jì)程模塊。按下電源開(kāi)關(guān)后開(kāi)始自動(dòng)計(jì)費(fèi)。統(tǒng)計(jì)模塊統(tǒng)計(jì)的各項(xiàng)數(shù)據(jù)將通過(guò)LED顯示模塊,在最終界
27、面上顯示行駛路程和總費(fèi)用。難點(diǎn)主要在于計(jì)費(fèi)金額的顯示,可將初值置為50,其中十位調(diào)用帶點(diǎn)的字型碼,即顯示05.0,超過(guò)1個(gè)脈沖,里程加1,金額加8,由于十位是帶有小數(shù)點(diǎn),即可實(shí)現(xiàn)金額加0.8元。流程圖如圖7所示。</p><p> 圖7 出租車計(jì)費(fèi)系統(tǒng)程序流程圖</p><p> 4、長(zhǎng)短按鍵的設(shè)計(jì)(附加題)</p><p> 設(shè)計(jì)思路:所有的主要程序都在等
28、待按鍵釋放的時(shí)候進(jìn)行。在沒(méi)有長(zhǎng)按功能時(shí),由于使用的是定時(shí)器中斷數(shù)碼管掃描,所以等待釋放所做的工作就是等待。我們利用等待的這個(gè)時(shí)間來(lái)做一些事情,判斷長(zhǎng)短按鍵并執(zhí)行對(duì)應(yīng)的動(dòng)作。同時(shí)定義一個(gè)臨時(shí)變量用于計(jì)數(shù)按鍵的時(shí)長(zhǎng),這里使用key_press_num,檢測(cè)到這個(gè)數(shù)值大于200,也就是2s時(shí),我們認(rèn)為按鍵進(jìn)入長(zhǎng)按動(dòng)作,此時(shí)進(jìn)入長(zhǎng)按鍵處理程序,首先清零計(jì)數(shù)變量,以待下次使用,再次檢測(cè)按鍵是否按下,如果按下,執(zhí)行長(zhǎng)按程序,否則退出。此程序中長(zhǎng)按鍵
29、的動(dòng)作是快速加減數(shù)值,沒(méi)有這個(gè)按鍵的時(shí)候,按一次按鍵值加減一次,如果數(shù)值比較大,調(diào)節(jié)占用的時(shí)間會(huì)比較長(zhǎng),進(jìn)入長(zhǎng)按鍵后,可以快速對(duì)數(shù)值進(jìn)行連加或者連減動(dòng)作,并實(shí)時(shí)調(diào)用顯示處理。流程圖如圖8所示。</p><p> 圖8 長(zhǎng)短按鍵的設(shè)計(jì)程序流程圖</p><p><b> 四、設(shè)計(jì)內(nèi)容</b></p><p> 1、0—255數(shù)碼管計(jì)數(shù)&l
30、t;/p><p><b> ?。?)程序清單</b></p><p><b> 顯示子程序:</b></p><p> DISPLAY: MOV A,TL1</p><p> MOV B,#100</p><p><b> DIV AB<
31、/b></p><p> MOV BAI,A</p><p> MOV A,B</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> MOV SHI,A</p><p> MO
32、V GEE,B </p><p> MOV DPTR,#TAB</p><p> MOV R0,#3</p><p> MOV A,BAI ;輸入百位</p><p> MOVC A,@A+DPTR</p><p> MOV P0,A</p&
33、gt;<p> SETB P2.6</p><p><b> NOP</b></p><p> CLR P2.6</p><p> MOV P0,#0DFH</p><p> SETB P2.7</p><p> NOP </p>
34、;<p> ACALL DELAY </p><p> MOV P0,#0FFH</p><p> CLR P2.7</p><p> MOV A,SHI ;輸入十位</p><p> MOVC A,@A+DPTR</p><p> MOV
35、 P0,A</p><p> SETB P2.6</p><p><b> NOP</b></p><p> CLR P2.6</p><p> MOV P0,#0BFH</p><p> SETB P2.7</p><p> NOP
36、 </p><p> ACALL DELAY </p><p> MOV P0,#0FFH</p><p> CLR P2.7</p><p> MOV A,GEE ;輸入個(gè)位</p><p> MOVC A,@A+DPTR</p><
37、;p> MOV P0,A</p><p> SETB P2.6</p><p><b> NOP</b></p><p> CLR P2.6</p><p> MOV P0,#7FH</p><p> SETB P2.7</p><p
38、> NOP </p><p> ACALL DELAY</p><p> MOV P0,#0FFH</p><p> CLR P2.7 </p><p><b> RET</b></p><p> (2)PROTEUS仿真圖</
39、p><p> 圖9 255計(jì)數(shù)器PROTEUS仿真圖</p><p><b> ?。?)調(diào)試結(jié)果</b></p><p> 圖10 255計(jì)數(shù)器調(diào)試結(jié)果</p><p> 2、0—50000數(shù)碼管計(jì)數(shù)</p><p><b> ?。?)程序清單</b></p>
40、;<p> 顯示子程序和255計(jì)數(shù)器相差無(wú)幾,這里只列出中斷服務(wù)程序。</p><p><b> 中斷服務(wù)程序:</b></p><p> INTO: LCALL DELAY1</p><p> PUSH ACC</p><p> MOV A,WAN</p><p
41、> CJNE A,#5,LOOP1</p><p> MOV WAN,#0</p><p> SJMP LOOP2 </p><p> LOOP1: INC GEE</p><p> LOOP2: MOV A,GEE</p><p> CJNE
42、 A,#10,GOO</p><p> MOV GEE,#0</p><p> INC SHI</p><p> MOV A,SHI</p><p> CJNE A,#10,GOO</p><p> MOV SHI,#0</p><p> INC
43、BAI</p><p> MOV A,BAI</p><p> CJNE A,#10,GOO</p><p> MOV BAI,#0</p><p> INC QIA</p><p> MOV A,QIA</p><p> CJNE A,#10,GOO
44、</p><p> MOV QIA,#0</p><p> INC WAN </p><p> GOO: POP ACC</p><p> RETI </p><p> DELAY: MOV R3,#80 <
45、/p><p> DJNZ R3,$</p><p><b> RET</b></p><p> DELAY1:MOV R1,#2</p><p> LOOP4:MOV R0,#255</p><p><b> LOOP3:NOP</b></p>
46、;<p><b> NOP</b></p><p> DJNZ R0,LOOP3</p><p> DJNZ R1,LOOP4</p><p><b> RET</b></p><p> ?。?)PROTEUS仿真圖</p><p> 圖11
47、 50000計(jì)數(shù)器仿真圖</p><p><b> ?。?)調(diào)試結(jié)果</b></p><p> 圖12 50000計(jì)數(shù)器調(diào)試結(jié)果</p><p><b> 3、出租車計(jì)費(fèi)系統(tǒng)</b></p><p><b> ?。?)程序清單</b></p><p&g
48、t;<b> 延時(shí)子程序:</b></p><p> void delay() </p><p><b> {</b></p><p> for(j=0;j<25;j++);</p><p><b> }</
49、b></p><p><b> 顯示子程序:</b></p><p> void display() </p><p><b> {</b></p><p> P2 = 0x01;
50、 //選定初始位</p><p> for(i = 0; i < 8; i++) </p><p><b> {</b></p><p> P1 = (i == 1||i==6)?Num[Count[i]]&0x7f:Num[Count[i]];</p>&
51、lt;p> delay(); //固定小數(shù)點(diǎn)位置</p><p> P2 <<= 1; //位左移</p><p><b> }</b></p><p><b> }</b>&
52、lt;/p><p><b> 價(jià)格的算法程序:</b></p><p> int Compute_Money(int Far) </p><p><b> {</b></p><p> Money = (Far < 2000)? 5:5+(((Far
53、- 2000)/500)+1)*0.8;</p><p> return Money*10; //返回價(jià)格數(shù)</p><p> } //思路:先返回10倍價(jià)格,再固定小數(shù)點(diǎn)</p><p> value_Count(int Far)</p><p>
54、;<b> {</b></p><p> Get_money = Compute_Money(Far); //調(diào)用算法程序</p><p> Count[0] = Get_money%10; //價(jià)錢的小數(shù)位</p><p> Count[1] = Get_money%100
55、/10; //價(jià)錢的個(gè)位</p><p> Count[2] = Get_money%1000/100; //價(jià)錢的十位</p><p> Count[3] = 0; //四五位不顯示</p><p> Count[4] = 0;
56、 </p><p> Count[5] = Far%1000/100; //公里制小數(shù)位</p><p> Count[6] = Far%10000/1000; //公里制個(gè)位</p><p> Count[7] = Far%100000/10
57、000; //公里制十位</p><p><b> }</b></p><p> ?。?)PROTEUS仿真圖</p><p> 圖13 出租車計(jì)費(fèi)系統(tǒng)仿真圖</p><p><b> (3)調(diào)試結(jié)果</b></p><p> 圖14
58、 出租車計(jì)費(fèi)系統(tǒng)調(diào)試結(jié)果</p><p> 4、長(zhǎng)短按鍵的設(shè)計(jì)(附加題)</p><p><b> ?。?)程序清單</b></p><p><b> 位碼:</b></p><p> unsigned char code HEYAO_WeiMa[]={0xf7,0xef,0xdf,0xbf
59、,0x7f};//之前調(diào)試一直出問(wèn)題,找到最后才發(fā)現(xiàn)是這里位碼出問(wèn)題了;分別對(duì)應(yīng)相應(yīng)的數(shù)碼管點(diǎn)亮。</p><p><b> 主函數(shù):</b></p><p> void main (void)</p><p><b> {</b></p><p> unsigned char num=0
60、,key_press_num; </p><p> P35=0; //這是為了關(guān)閉開(kāi)發(fā)板上的點(diǎn)陣實(shí)際應(yīng)用去掉</p><p> KEY_ADD=1; //按鍵輸入端口電平置高</p><p> KEY_DEC=1;</p><p> Init_Timer0();</p><p> while (1) //主循
61、環(huán)</p><p><b> {</b></p><p> if(!KEY_ADD) //如果檢測(cè)到低電平,說(shuō)明按鍵按下</p><p><b> {</b></p><p> DelayMs(10); //延時(shí)去抖,一般10-20ms</p><p> if(!K
62、EY_ADD) //再次確認(rèn)按鍵是否按下,沒(méi)有按下則退出</p><p><b> {</b></p><p> while(!KEY_ADD)</p><p><b> {</b></p><p> key_press_num++;</p><p> DelayM
63、s(10); //10x200=2000ms=2s </p><p> if(key_press_num==200) //大約2s</p><p><b> {</b></p><p> key_press_num=0; //如果達(dá)到長(zhǎng)按鍵標(biāo)準(zhǔn) </p><p> //則進(jìn)入長(zhǎng)按鍵動(dòng)作</p>&l
64、t;p> while(!KEY_ADD) //這里用于識(shí)別是否按</p><p> //鍵還在按下,如果按</p><p> //下執(zhí)行相關(guān)動(dòng)作,否則退出</p><p><b> {</b></p><p> if(num<100) //加操作</p><p><b&
65、gt; num++;</b></p><p> //即時(shí)把顯示數(shù)據(jù)處理,如果去掉下面2</p><p> //句處理信息,實(shí)際上看不到漸變效果,</p><p> //而是看到跳變效果</p><p> //用戶可以自行屏蔽測(cè)試</p><p> //分解顯示信息,如要顯示68,則68/10=6
66、 68%10=8</p><p> TempData[0]=HEYAO_DuanMa[num/100]; </p><p> TempData[1]=HEYAO_DuanMa[num%100/10];</p><p> TempData[2]=HEYAO_DuanMa[num%100%10];</p><p> DelayMs(50)
67、;//用于調(diào)節(jié)長(zhǎng)按循環(huán)操作</p><p> //的速度,可以自行調(diào)整此值以便達(dá)到最佳效果</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> key_press_
68、num=0;//防止累加造成錯(cuò)誤識(shí)別</p><p> if(num<100) //加操作</p><p><b> num++;</b></p><p><b> }</b></p><p><b> }</b></p><p> //
69、分解顯示信息,如要顯示68,則68/10=6 68%10=8 </p><p> TempData[0]=HEYAO_DuanMa[num/100]; </p><p> TempData[1]=HEYAO_DuanMa[num%100/10];</p><p> TempData[2]=HEYAO_DuanMa[num%100%10];</p>
70、<p> // Display(0,8); //顯示全部8位</p><p> //主循環(huán)中添加其他需要一直工作的程序</p><p><b> }</b></p><p><b> }</b></p><p> ?。?)PROTEUS仿真圖</p><p&g
71、t; 圖15 長(zhǎng)短按鍵PROTEUS仿真圖</p><p><b> ?。?)調(diào)試結(jié)果</b></p><p> 圖16 長(zhǎng)短按鍵調(diào)試結(jié)果</p><p><b> 五、設(shè)計(jì)心得</b></p><p> 作為一名電子信息專業(yè)的大三學(xué)生,我覺(jué)得做單片機(jī)課程設(shè)計(jì)是十分有意義的,而且是十分必
72、要的。在已度過(guò)的大學(xué)時(shí)間里,我們大多數(shù)接觸的是專業(yè)課。我們?cè)谡n堂上掌握的僅僅是專業(yè)課的理論知識(shí),我想做類似的課程設(shè)計(jì)就為我們提供了良好的實(shí)踐平臺(tái)。</p><p> 單片機(jī)作為我們的主要專業(yè)課之一,雖然我對(duì)這門課并沒(méi)有什么興趣,覺(jué)得那些程序枯燥乏味,但在這次課程設(shè)計(jì)后我發(fā)現(xiàn)自己在一點(diǎn)一滴的努力中對(duì)單片機(jī)的興趣也在逐漸增加。</p><p> 我們的課程設(shè)計(jì)有兩個(gè)主要內(nèi)容:一個(gè)是出租車計(jì)
73、費(fèi)器系統(tǒng)(還包括255計(jì)數(shù)和50000計(jì)數(shù));另一個(gè)就是溫度報(bào)警系統(tǒng)。</p><p> 單片機(jī)課程設(shè)計(jì)為兩個(gè)人一組,而我有幸跟一位參加過(guò)電子設(shè)計(jì)競(jìng)賽的單片機(jī)能手在一組。說(shuō)實(shí)話由于平時(shí)對(duì)單片機(jī)沒(méi)有多少興趣導(dǎo)致我對(duì)單片機(jī)這門課并不了解,幸虧搭檔很諒解我,于是單片機(jī)的兩個(gè)內(nèi)容一分為二,我負(fù)責(zé)255計(jì)數(shù)而他負(fù)責(zé)50000計(jì)數(shù)和出租車計(jì)費(fèi)器。通過(guò)搭檔的講解和自己的努力,我逐漸發(fā)現(xiàn)單片機(jī)設(shè)計(jì)很有趣,俗話說(shuō):對(duì)什么有興趣,
74、就一定能做好它。寫(xiě)好編程,然后調(diào)試。不行再重新發(fā)現(xiàn)問(wèn)題,這樣反反復(fù)復(fù)之后終于達(dá)成了!并且還和搭檔一起探究出租車計(jì)數(shù)器的問(wèn)題。最后在我倆竭盡全力, 老師的精心指導(dǎo)下, 程序基本編寫(xiě)成功,這是我們共同努力的結(jié)果。 在享受我們成果之時(shí),不得不感慨單片機(jī)的重要性與高難度性,所以為期兩周的單片機(jī)課程設(shè)計(jì)沒(méi)有浪費(fèi),我們從中學(xué)到了很多知識(shí).,也讓我們對(duì)單片機(jī)有了更深一步的了解.</p><p> 在完成單片機(jī)課程設(shè)計(jì)后,我們
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)---對(duì)外部脈沖計(jì)數(shù)及出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---對(duì)外部脈沖計(jì)數(shù)及出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--對(duì)外部脈沖計(jì)數(shù)及出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---對(duì)外部脈沖計(jì)數(shù)及出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)
- 對(duì)外部脈沖計(jì)數(shù)及出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)--對(duì)外部脈沖計(jì)數(shù)及出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---出租車計(jì)費(fèi)系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)費(fèi)系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)---出租車計(jì)費(fèi)系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)費(fèi)系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)-- 出租車計(jì)費(fèi)系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)---出租車計(jì)費(fèi)系統(tǒng) (2)
- 單片機(jī)課程設(shè)計(jì)報(bào)告-- 出租車計(jì)費(fèi)系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---- 出租車計(jì)費(fèi)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)外部脈沖計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)——出租車計(jì)費(fèi)器
- 基于單片機(jī)的出租車自動(dòng)計(jì)費(fèi)設(shè)計(jì)
- 基于單片機(jī)出租車計(jì)費(fèi)器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 微機(jī)原理單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)
評(píng)論
0/150
提交評(píng)論