簡(jiǎn)易秒表LED數(shù)碼管顯示接口技術(shù)應(yīng)用_第1頁(yè)
簡(jiǎn)易秒表LED數(shù)碼管顯示接口技術(shù)應(yīng)用_第2頁(yè)
簡(jiǎn)易秒表LED數(shù)碼管顯示接口技術(shù)應(yīng)用_第3頁(yè)
簡(jiǎn)易秒表LED數(shù)碼管顯示接口技術(shù)應(yīng)用_第4頁(yè)
簡(jiǎn)易秒表LED數(shù)碼管顯示接口技術(shù)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 設(shè)計(jì)題目: 簡(jiǎn)易秒表LED數(shù)碼管顯示接口技術(shù)應(yīng)用 姓 名: 廖承潤(rùn) 學(xué) 號(hào): 110105011118 專 業(yè) 班 級(jí): 11級(jí)光信1班 指導(dǎo)教師: 葉念渝 2014年 5月 目錄1 內(nèi)容及要求12 設(shè)計(jì)思路13 工作原理24 硬件設(shè)計(jì)25 軟件設(shè)計(jì)36 調(diào)試87 修改意見(jiàn)98 源程序99 收獲及體會(huì)12 簡(jiǎn)易秒表LED數(shù)碼管顯示接口技術(shù)應(yīng)用1, 內(nèi)容及要求(1) 內(nèi)容n 如何運(yùn)用單片機(jī)實(shí)現(xiàn)計(jì)時(shí);n 如何顯示時(shí)間;n 如何利用按鍵實(shí)施對(duì)秒表的控制。n 定時(shí)器T0 或Tl 的定時(shí)時(shí)間作為時(shí)鐘計(jì)時(shí)的基準(zhǔn)n 啟動(dòng)與停止定時(shí)器工作實(shí)現(xiàn)計(jì)時(shí)。n 先用兩個(gè)數(shù)碼管動(dòng)態(tài)顯示時(shí)間,時(shí)

2、間范圍為0-60sn 用三個(gè)獨(dú)立式按鍵實(shí)現(xiàn)秒表的啟動(dòng)、停止和復(fù)位功能。n A機(jī)發(fā)送,B機(jī)接收*(2) 要求n 通過(guò)簡(jiǎn)易秒表的制作,熟悉LED 數(shù)碼管與單片機(jī)的接口方式; n 定時(shí)計(jì)數(shù)器、中斷技術(shù)的綜合應(yīng)用; n 學(xué)會(huì)簡(jiǎn)易鍵盤的使用。 n 利用按鍵構(gòu)成鍵盤實(shí)現(xiàn)秒表的啟動(dòng)、停止與復(fù)位, n 利用LED 數(shù)碼管顯示時(shí)間。 n *進(jìn)行簡(jiǎn)單的串行通信。2, 設(shè)計(jì)思路(1)硬件n 采用P0 口輸出并聯(lián)控制兩個(gè)數(shù)碼管的8 個(gè)段選控制端。n 用P2.0、P2.1分別控制兩個(gè)LED 數(shù)碼管的位選控制端。n 這是典型的動(dòng)態(tài)顯示電路接法,LED 采用共陽(yáng)極數(shù)碼n 三個(gè)按鍵采用獨(dú)立式鍵盤接法,n 兩個(gè)按鍵連接到外部中

3、斷INT0 、INT1 的輸人引腳P3.2和P3.3,n S4按鍵接到T1的外部脈沖輸入引腳P3.5,以中斷方式實(shí)現(xiàn)鍵盤輸入狀態(tài)的掃描。n 其中S2為啟動(dòng)按鈕,S3為停止按鈕,S4 清零按鈕。n K1為復(fù)位鍵 (2)軟件n 根據(jù)設(shè)計(jì)的總體要求劃分出各功能程序模塊,分別確定主程序、子程序及中斷服務(wù)程序結(jié)構(gòu)。 n 對(duì)各程序模塊占用的單片機(jī)資源進(jìn)行統(tǒng)一調(diào)配。 n 對(duì)各模塊間的邏輯關(guān)系進(jìn)行細(xì)化,優(yōu)化程序結(jié)構(gòu); n 設(shè)計(jì)出各模塊程序結(jié)構(gòu)流程圖。 n 最后依據(jù)流程圖編制具體程序。n 將整個(gè)程序劃分為主程序、鍵盤掃描程序、秒計(jì)時(shí)程序三大模塊。 n 其中主程序除完成初始化外,主要由動(dòng)態(tài)顯示程序構(gòu)成。 n 秒計(jì)

4、時(shí)程序由定時(shí)器0中斷服務(wù)子程序構(gòu)成, n 鍵盤掃描程序也由各中斷服務(wù)子程序來(lái)實(shí)現(xiàn)。 3工作原理(1) 原理圖 4硬件設(shè)計(jì)(1) 板子焊接根據(jù)電路圖焊接板子如下圖:5軟件設(shè)計(jì) (1)流程圖 主程序流程圖開 始S2,S2,S3置高電位 T0,T1中斷初始化秒,分,時(shí)單元初始化調(diào)用鍵盤掃描子程序調(diào)用顯示子程序六位顯示完? Y 主程序void main()s2=1;s3=1;s4=1;TMOD=0x41;TH1=0xff;TL1=0x1f;TH0=0x3C;TL0=0xB0;EA=1;ET0=1;ET1=1;TR1=1;IT0=1;IT1=1;s=0,m=0,h=0;while(1)keyscan()

5、;display(); 定時(shí)器1中斷程序流程圖開 始 重置計(jì)數(shù)初置 秒,分,時(shí)置零 返 回 timer1() interrupt 3 using 1 /定時(shí)1中斷S4清零TH1=0xff;TL1=0x1f;s=0;m=0;h=0; 定時(shí)器0中斷程序流程圖開 始重設(shè)定時(shí)器初值 1秒到? N 再定時(shí)1秒 秒加1 Y1分鐘到? N秒置0 分加1 Y 1小時(shí)到? N Y 分置0 小時(shí)加1返 回定時(shí)器0中斷程序timer0() interrupt 1 using /定時(shí)中斷 T0 TH0=0x3C; TL0=0xB0; time+; if(time=20) time=0; s+ ; if(s=60) s

6、=0; m+; if(m=60) m=0; h+; if(h=24)h=0;鍵盤掃描程序流程圖檢測(cè)按鍵是否按下開 始哪個(gè)鍵按下? S3TR0取反 S2啟動(dòng)定時(shí)器T0松手檢測(cè)返 回 void keyscan() /按鍵掃描 if(s3=0); /S3暫停 delay(10); if(s3=0) TR0=TR0; while(!s3); if(s2=0) /S2啟動(dòng) delay(10); if(s2=0) TR0=1; while(!s2); 顯示程序流程圖開 始顯示初始化 查表取字形碼段碼送P0口位碼送P2口延時(shí)顯示 六位顯示完? N Yvoid display() /顯示P0=tableh/1

7、0; P2=0x01;delay(2);P0=tableh%10;P2=0x02;delay(2);P0=tablem/10; P2=0x04;delay(2);P0=tablem%10;P2=0x08;delay(2);P0=tables/10; P2=0x10;delay(2);P0=tables%10;P2=0x20;delay(2);6調(diào)試n 輸人源程序。n 先調(diào)試主程序,實(shí)現(xiàn)基本的顯示功能n 當(dāng)無(wú)鍵按下時(shí),將一直顯示初值“00”。n 再分別調(diào)試4 個(gè)中斷服務(wù)子程序。 當(dāng)按鍵S2按下時(shí),程序?qū)?huì)進(jìn)入對(duì)應(yīng)INT1的中斷服務(wù)程序,啟動(dòng)各定時(shí)器開始計(jì)時(shí)nn 若在不同的中斷服務(wù)程序中設(shè)置斷點(diǎn),

8、全速運(yùn)行程序后將會(huì)停在斷點(diǎn)處,表明程序運(yùn)行狀態(tài)正確; n 當(dāng)按鍵S3按下時(shí),進(jìn)入INT0中斷服務(wù)程序,停止定時(shí)器工作,秒表顯示內(nèi)容保持不變; n 當(dāng)按鍵S4按下時(shí),進(jìn)入T1中斷服務(wù)程序,停止定時(shí)器工作,秒表顯示清零; n 最后將各模塊聯(lián)調(diào)實(shí)現(xiàn)全部功能。n 將調(diào)試好的程序固化至89C51 芯片中,脫機(jī)運(yùn)行。7改進(jìn)意見(jiàn) 在編寫程序時(shí),運(yùn)行遇到一些錯(cuò)誤,經(jīng)過(guò)仔細(xì)修改,最終找出錯(cuò)誤并改正。8,源程序#include<reg51.h> #define uint unsigned int #define uchar unsigned charuchar code table=0xc0,0xf9

9、,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; uint s,m,h,n=0;uint time=0;sbit s3=P33;sbit s2=P32;sbit s4=P35; void delay(uint z) /延時(shí)程序uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void keyscan() /按鍵掃描 if(s3=0); /S3暫停 delay(10); /延時(shí) if(s3=0) TR0=TR0; / TR0取反 while(!s3); /松手檢測(cè) if(s2=0) /S2啟動(dòng) delay(10);

10、if(s2=0) TR0=1; /啟動(dòng)定時(shí)器T0 while(!s2); /松手檢測(cè) void display() /顯示子程序P0=tableh/10; /取時(shí)針的十位 P2=0x01; /選右邊第一的數(shù)碼管delay(2); /延時(shí)P0=tableh%10; /取時(shí)針的個(gè)位P2=0x02; /選右邊第二的數(shù)碼管delay(2); /延時(shí) P0=tablem/10; /取分針針的十位 P2=0x04; /選右邊第三的數(shù)碼管delay(2);P0=tablem%10; P2=0x08;delay(2);P0=tables/10; P2=0x10;delay(2);P0=tables%10;P2

11、=0x20;delay(2); timer0() interrupt 1 using /定時(shí)中斷 T0 TH0=0x3C; /重置定時(shí)初值 TL0=0xB0; time+; if(time=20) /1秒鐘到 time=0; /重新計(jì)數(shù)20次 s+ ; /秒鐘加1 if(s=60) /1分鐘到 s=0; /秒鐘置零 m+; /分鐘加1 if(m=60) /1分鐘到 m=0; /分鐘置零 h+; /時(shí)鐘加1 if(h=24) /一天到 h=0; /時(shí)鐘清零void main() /主程序s2=1; /按鍵初始設(shè)置為高電平s3=1;s4=1;TMOD=0x41; /定時(shí)器T0,T1初始化TH1=0

12、xff;TL1=0x1f;TH0=0x3C;TL0=0xB0;EA=1; /打開中端總開關(guān)ET0=1; /定時(shí)中端T0允許ET1=1; /定時(shí)中端T1允許TR1=1;IT0=1; /外部中斷T0采用下降沿觸發(fā)IT1=1; /外部中斷T1采用下降沿觸發(fā)s=0,m=0,h=0; /顯示管設(shè)置初值while(1)keyscan(); /調(diào)用按鍵掃描子程序display(); /調(diào)用顯示程序timer1() interrupt 3 using 1 /定時(shí)1中斷S4清零TH1=0xff; /重置計(jì)數(shù)初置TL1=0x1f;s=0; /顯示器清零m=0;h=0;9,收獲及體會(huì) 這次課程設(shè)計(jì)讓我受益匪淺,。因?yàn)檫@個(gè)簡(jiǎn)易秒表的設(shè)計(jì)不僅檢驗(yàn)了我們

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論