版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、www.themegallery.com,《單片機技術》一體化課程項目課件,,課程項目,項目九 中文液晶顯示器,認識單片機,項目八 帶記憶功能的電機控制器,項目六 數(shù)字電壓表,項目三 鍵盤控制器,項目四 智能單片機控制器,項目五 液晶顯示器,項目七 走時精準的定時器,項目一 花樣彩燈,項目二 數(shù)碼管時鐘顯示器,項目十 溫度報警器,項目二 數(shù)碼管時鐘顯示器,,,一 我們能學到什么: 1.能學到數(shù)碼管顯示方法
2、 2.能學到設計數(shù)碼管顯示器的硬件電路 3.跟著老師一起能學會實現(xiàn)“時間、日期”顯示的數(shù)碼管數(shù)字時鐘,二 我們該怎么做: 1.先來學會數(shù)碼管是怎么顯示的,,使用LED顯示器時,要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對數(shù)字或字符進行編碼。七段數(shù)碼管加上一個小數(shù)點,共計8段。因此為LED顯示器提供的編碼正好是一個字節(jié)。TX實驗板用共陰LED顯示器,根據(jù)電路連接圖顯示16進制數(shù)的編碼已列在下表。,0x3f
3、 , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 1 23 4 5 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 6 7 8 9 A B 0x39 , 0x5e , 0x79 , 0x71 , 0x00 C D E
4、 F 無顯示。,LED數(shù)碼顯示方式及電路,靜態(tài)顯示方式LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復雜,成本較高。,動態(tài)顯示,動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮
5、數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應略小于靜態(tài)顯示電路中的。,2個顯示電路,3.跟著老師一起設計實現(xiàn)“時間、日期”顯示的數(shù)碼管數(shù)字時鐘 步驟: 1.硬件仿真電路設計使用Proteus 75SP3 Setup(單片機仿真軟件),步驟:
6、 2.實現(xiàn)“時間、日期”顯示的數(shù)碼管數(shù)字時鐘Keil uVision4(單片機編程軟件)1.main.c#include#include"delay.c"#include"time.c"#include"smgdis.c"#include"key.c"void main(){ init_time0(); wh
7、ile(1){ if(shu==0) { keyscan();,smgdis_sfm(shi,fen,miao); } keyscan();}}2.time.cuchar num,shi,fen,miao;void init_time0(){ TMOD=0X01;//T0(方式一)TH0=(65535-50000)/256;TL0=(65535-50000)%
8、256;//50000us=50msTR0=1;//啟動T1EA=1;//中斷總開關ET0=1;//T0分開關}void time0() interrupt 1{,TH0=(65535-50000)/256;TL0=(65535-50000)%256;//50000us=50msnum++;//50msif(num==20)//1s{ num=0;miao++;if(miao=
9、=60){ miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi==24) { shi=0; } }}}},3.smg.cuchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8
10、0,0x90,0xbf,0xff};uchar code table2[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};sbit duan=P1^0;sbit wei=P1^1; void smgdis1(uchar add,uchar date)//任意位置(add)顯示任意數(shù)據(jù)(date){ P0=table2[add];wei=1;wei=0;
11、P0=table1[date];duan=1;duan=0;delay(5);}void smgdis_miao(uchar miao){ uchar m1,m2;//其中m1表示秒的個位m2表示秒的十位 m1=miao/10;m2=miao%10; smgdis1(2,m1); smgdis1(1,m2);,void smgdis_sfm(uchar s,uchar f,uchar m){
12、 uchar s1,s2,f1,f2,m1,m2;s1=s/10;s2=s%10;f1=f/10;f2=f%10;m1=m/10;m2=m%10;smgdis1(8,s1);smgdis1(7,s2);smgdis1(6,10);smgdis1(5,f1);smgdis1(4,f2);smgdis1(3,10);smgdis1(2,m1);smgdis1(1,m2);}void smg
13、_san(uchar clock){ uchar s1,s2,f1,f2,m1,m2;s1=shi/10;s2=shi%10;f1=fen/10;f2=fen%10;m1=miao/10;m2=miao%10; if(clock==1)//閃秒,{smgdis1(8,s1);smgdis1(7,s2);smgdis1(6,10);smgdis1(5,f1);smgd
14、is1(4,f2);smgdis1(3,10);smgdis1(2,11);smgdis1(1,11);}if(clock==2)//閃分{ smgdis1(8,s1);smgdis1(7,s2);smgdis1(6,10);smgdis1(5,11);smgdis1(4,11);smgdis1(3,10);smgdis1(2,m1);smgdis1(1,
15、m2);}if(clock==3)//閃時{,smgdis1(8,11);smgdis1(7,11);smgdis1(6,10);smgdis1(5,f1);smgdis1(4,f2);smgdis1(3,10);smgdis1(2,m1);smgdis1(1,m2);}}4.key.csbit k1=P3^3;sbit k2=P3^2;sbit k3=P3^5;sb
16、it k4=P3^4;signed char mov,shu,up,down;void clock_mov(uchar mov){ uchar aa=20,bb=20; if(mov==1) { while(aa--) {,smgdis_sfm(shi,fen,miao); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } while
17、(bb--) { smg_san(1); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } } if(mov==2) { while(aa--) { smgdis_sfm(shi,fen,miao); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } wh
18、ile(bb--) { smg_san(2); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } } if(mov==3),{ while(aa--) { smgdis_sfm(shi,fen,miao); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } wh
19、ile(bb--) { smg_san(3); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } } if(mov==4)mov=0;}void clock_up(uchar up){ if(up==1) { if(k2==0) { delay(5); if(k2==0) {,{
20、 while(aa--) { smgdis_sfm(shi,fen,miao); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } while(bb--) { smg_san(3); if((k1==0)||(k2==0)||(k3==0)||(k4==0))break; } } if(mov==4)mov=0;
21、}void clock_up(uchar up){ if(up==1) { if(k2==0) { delay(5); if(k2==0) {,P2=0XFE;//11111110 time(100); P2=0XFD;//11111101 time(100); P2=0XFB;//11111011 time(100); P2=0XF7;/
22、/11110111 time(100); P2=0XEF;//11101111 time(100); P2=0XDF;//11011111 time(100); P2=0XBF;//10111111 time(100); P2=0X7F;//01111111 time(100); } } 4.把led.hex文件加載到仿真電路(或下載到開發(fā)板)進行仿真調試,三 我們要學到了那
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 任務一--數(shù)碼管顯示器數(shù)字顯示
- 數(shù)碼管時鐘顯示按鍵調時間
- 數(shù)碼管按鍵顯示
- led數(shù)碼管顯示
- ds1302時鐘數(shù)碼管課程設計--用數(shù)碼管顯示實時日歷時鐘的設計
- led數(shù)碼管顯示控制
- 實驗二、8段數(shù)碼管顯示實驗
- 智能風扇程序,數(shù)碼管顯示溫度
- 數(shù)碼管顯示課程設計報告
- plc數(shù)碼管顯示課程設計
- 頻率計數(shù)碼管顯示程序
- 基于單片機的電子時鐘6位led數(shù)碼管顯示
- proteus仿真論文-動態(tài)數(shù)碼管時鐘仿真
- 數(shù)碼顯示器畢業(yè)論文---lcd數(shù)碼顯示器的設計與制作
- 兩個數(shù)碼管動態(tài)顯示
- 用led數(shù)碼管顯示的秒表設計
- 單片機控制數(shù)碼管顯示程序
- 超聲波測距數(shù)碼管顯示.rar
- 超聲波測距數(shù)碼管顯示.rar
- 8位數(shù)碼管秒表計時顯示
評論
0/150
提交評論