單片機數(shù)字時鐘實訓報告
天津職業(yè)大學電子信息工程學院
二○一一~二○一二學年第一學期
單片機實訓課程設計報告書
課程名稱:單片機數(shù)字時鐘實訓班級:09級通信3班學號:0904043050904043姓名:實訓教師:
201*年10月13日
一設計要求
用51單片機實現(xiàn)數(shù)字時鐘的功能。能夠顯示時間時分秒,可以進行時間的調(diào)整,
二電路圖
三程序設計
/*p0接六個數(shù)碼管的段選端口,p1接六個數(shù)碼管的位選端,p1^0接秒的個位*/#include#defineucharunsignedchar#defineuintunsignedint
ucharnum0,num,xiao,fen,miao,ge,shi,num1,i,j,k;sbitkey1=P2^1;//設定時間選擇鍵sbitkey2=P2^2;//時間調(diào)整
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0};//不帶小數(shù)點ucharcodetable0[]={0xbf,0xb0,0xdb,0xf9,0xf4,0xed,0xef,0xbf,0xff,0xfc,0};//小數(shù)點在左上方ucharcodetable1[]={0x3e,0x3d,0x3b,0x37,0x2f,0x1f};//位選端
ucharcodetable2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0};//小數(shù)點在右下方voiddelay(uintz);
voiddisplay(uchar,uchar,uchar);voidkeyscan();
voidclock();
voidinit(){
num1=0;xiao=23;fen=59;miao=59;num0=0;
TMOD=0x01;
TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;EA=1;
P1=0xc0;
P0=table[0];}
voidmain(){
init();
while(1){
display(xiao,fen,miao);keyscan();
}}voiddelay(uintz)//延時一毫秒{uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
voiddisplay(ucharxshu,ucharfshu,ucharmshu)//顯示函數(shù){shi=mshu/10;ge=mshu%10;P1=table1[0];P0=table[ge];delay(2);P1=table1[1];
P0=table0[shi];
delay(2);shi=fshu/10;ge=fshu%10;P1=table1[2];P0=table2[ge];delay(2);P1=table1[3];P0=table0[shi];delay(2);shi=xshu/10;ge=xshu%10;P1=table1[4];P0=table2[ge];delay(2);P1=table1[5];P0=table[shi];
delay(2);
}voidkeyscan()//時間調(diào)整{if(key1==0){
delay(5);if(key1==0){while(!key1);num0=num0+1;TR0=0;if(num0==4){num0=0;TR0=1;
display(xiao,fen,miao);
}}}if(num0!=0){if(key2==0)
{delay(5);if(key2==0){while(!key2);if(num0==1){miao++;if(miao==60)
miao=0;
display(xiao,fen,miao);}
if(num0==2){fen++;if(fen==60)
fen=0;
display(xiao,fen,miao);}
if(num0==3){xiao++;
if(xiao==24)xiao=0;
display(xiao,fen,miao);}}
}}}voidtimer0()interrupt1//定時器零{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num++;if(num==19){num=0;miao++;if(miao==60){miao=0;
fen++;
5if(fen==60){fen=0;xiao++;
if(xiao==24){xiao=0;
}display(xiao,fen,miao);}
display(xiao,fen,miao);
}display(xiao,fen,miao);
}}課程設計成績:指導教師簽字:
日期:年月日
6擴展閱讀:單片機2實訓報告數(shù)字鐘
桂林電子科技大學職業(yè)技術學院
單片機實訓Ⅱ報告
數(shù)字鐘
學院(系):電子信息工程系專業(yè):電子信息工程技術學號:091222106學生姓名:覃榮星指導教師:葉俊明桂林電子科技大學職業(yè)技術學院實訓報告
目錄
摘要...................................................................11緒論...................................................................32課題背景...............................................................32.1設計任務與要求.......................................................32.2設計目的...............................................................3
2.2.1設計題目的概述.......................................................3
3總體設計方案..........................................................33.1設計思想...............................................................43.2方案選擇與論證..........................................................44硬件設計...............................................................44.1總體硬件結(jié)構(gòu)及原理......................................................44.2硬件原理框圖......................................................44.3硬件的各個部分...........................................................5
4.3.1單片機...............................................................54.3.2按鍵電路...............................................................54.3.3顯示電路...............................................................64.3.4報警電路...............................................................6
5程序設計...............................................................76結(jié)論.................................................................11致謝.........................................................13附件
桂林電子科技大學職業(yè)技術學院實訓報告
摘要
單片微型機俗稱單片機,是一種運用十分廣泛的微處理器。在各種稱為計算機控制的儀器和設備中的計算機控制都是用單片機來實現(xiàn)的。本任務是采用單片機控制技術來實現(xiàn)對LCD時鐘的控制,基于單片機的定時和控制裝置的應用,是數(shù)字鐘最為基本的應用。在基本的單片機系統(tǒng)和外圍電路外,還要有外部的控制和顯示裝置。
數(shù)字鐘是實現(xiàn)對年、月、日、時、分、秒數(shù)字顯示的計時裝置,廣泛用于個人家庭、車站、碼頭、辦公室、銀行大廳等場所,成為人們?nèi)粘I畹谋匦杵。利用單片機實現(xiàn)數(shù)字鐘的方法具有編程靈活,便于數(shù)字鐘功能的擴充,而此次設計也是采用單片機實現(xiàn)數(shù)字鐘的方法,這其中還有不同的顯示方法,數(shù)碼管和LCD1602液晶顯示,在這里我們采用液晶顯示。
關鍵詞:數(shù)字鐘;單片機;LCD;
第1頁桂林電子科技大學職業(yè)技術學院實訓報告
Abstract
ThesinglechipMicyoco,commomsayingSCM.Itisasortmicroprocessorbeusedsowidely.Inthekindofmachineandapparatusbycomputercontrol,thiscomputerissinglechip.Thisarticleisabouthowtorealizethecontrolonrestingtimebythesinglechipcontroltechnology,thebasicapplicationofadigitalclockistheapplicationoftimingandcontroldeivce.Basedonthissinglechipsystem.Onitstillneedsoutercontrolanddisplaydevice.
Adigitalclockistorealizetodateandtime,minutesandsecondsdigitaldisplaytimerdevice,widelyusedinpersonalfamily,station,wharf,office,banklobby,becomepeopletoplacessuchasdailynecessitiesoflife.UsingSCMrealizingadigitalclockmethodsareprogrammingflexible,facilitatetheexpansionofthedigitalclockfunction,andthedesignisalsoadoptssinglechipmicrocomputermethodofdigitalclock,therearedifferentdisplaymethod,digitaltubeandLCD1602LCDdisplay,hereweadoptLCDdisplay.
Keywords:Digitalclock;singlechipMicyoco;LCDdisplay;
第2頁桂林電子科技大學職業(yè)技術學院實訓報告
1緒論
數(shù)字鐘是實現(xiàn)對年、月、日、時、分、秒數(shù)字顯示的計時裝置,廣泛用于個人家庭、車站、碼頭、辦公室、銀行大廳等場所,成為人們?nèi)粘I畹谋匦杵贰6鴶?shù)字鐘的的設計方法有很多,例如,可用中小規(guī)模集成電路組成數(shù)字鐘,也可以利用專用的數(shù)字鐘芯片配以顯示電路及其所需要的外圍電路組成數(shù)字鐘,還可以利用單片機來實現(xiàn)數(shù)字鐘等等,這些方法都有各自的特點,其中,利用單片機實現(xiàn)數(shù)字鐘的方法具有編程靈活,便于數(shù)字鐘功能的擴充,而此次設計也是采用單片機實現(xiàn)數(shù)字鐘的方法,這其中還有不同的顯示方法,數(shù)碼管和LCD1602液晶顯示,在這里我們采用液晶顯示。液晶顯示比數(shù)碼管更加的方便,顯示功能也比數(shù)碼管多,能夠顯示年、月、日、時、分、秒,讓人一目了然,非常方便。
2課題背景
單片機自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機集成度高、功能強、可靠性高、體積小、功耗低、使用方便、價格低廉等一系列優(yōu)點,目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無處不在,無處不為”。單片機的應用領域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費產(chǎn)品、辦公自動化、汽車電子、PC機外圍以及網(wǎng)絡通訊等廣大領域。。
本次設計的單片機多功能數(shù)字鐘的核心是目前應用極為廣泛的單片機,配置了外圍設備,構(gòu)成了一個可編程的定時系統(tǒng),具有體積小、可靠性高、功能強等特點。不僅能滿足所需要求而且還有很多功能可供開發(fā),有著廣泛的應用領域。
2.1設計任務與要求
本次設計的數(shù)字鐘主要能夠完成三項要求:(1)使用LCD1602液晶做顯示器;(2)使用單片機定時計數(shù)器設計時鐘;(3)可調(diào)時功能,有到點報時功能;
2.2設計目的
通過該畢業(yè)設計對單片機系統(tǒng)要有一個全面的了解、掌握常規(guī)芯片的使用方法、掌握簡單單片機應用系統(tǒng)軟硬件的設計方法,進一步鍛煉在單片機應用方面的實際動手能力。了解數(shù)字鐘的應用和發(fā)展,更好的設計更加方便多功能的數(shù)字鐘。
2.2.1設計題目的概述
數(shù)字鐘是基于單片機的時鐘電路,液晶顯示電路,報警電路和獨立按鍵電路組合而成。利用89S51單片機外接LCD1602液晶和報警電路,由用戶通過按鍵選擇改變液晶輸出的年、月、日、時、分、秒的哪一個,通過按鍵一光標移位鍵,選中自己想要改變的內(nèi)容,由按鍵二和按鍵三改變。而蜂鳴器到時間時就會報警。
3總體設計方案
第3頁桂林電子科技大學職業(yè)技術學院實訓報告
3.1設計思想
數(shù)字鐘硬件通過使用單片機I/O口連接外圍電路,結(jié)合軟件編程實現(xiàn)定時功能。通過獨立按鍵改變年、月、日、時、分、秒的顯示內(nèi)容,在編寫程序時定義好自己需要提醒的一個或幾個時間段,到點時,單片機會給蜂鳴器一個信號,然后蜂鳴器報警。
3.2方案選擇與論證
數(shù)字鐘鐘采用單片機技術,通過編程控制定時,但是通常有以下兩種顯示電路實現(xiàn):
方案一:使用LED8段數(shù)碼管。采用單片機動態(tài)掃描將時鐘數(shù)據(jù)通過數(shù)碼管進行實時顯示。但數(shù)碼管的顯示功能具有局限性,不能達到預期效果,此外,數(shù)碼管驅(qū)動電路繁瑣,不易控制。
方案二:使用LCD1602顯示器。1602顯示器顯示格式2*16,能夠顯示數(shù)字及常用英文字符。單片機通過8根數(shù)據(jù)線,3根數(shù)據(jù)控制線對1602顯示器進行控制,使其實時顯示時鐘。
方案選擇:經(jīng)理論分析與實際電路測試,考慮到題目要求和方便簡潔性,選擇方案二,采用LCD1602顯示器。
4硬件設計
4.1數(shù)字鐘總體硬件結(jié)構(gòu)及原理
數(shù)字鐘的硬件結(jié)構(gòu)主要由單片機芯片、復位電路、時鐘電路、顯示電路LCD1602液晶顯示、按鍵電路以及報警電路六部分構(gòu)成。通過編寫程序燒入單片機,驅(qū)動LCD1602液晶,由按鍵控制顯示部分的年、月、日、時、分、秒的變化,定時到自己需要的時間時,蜂鳴器報警。
4.2硬件原理框圖
圖4.2.1硬件原理框圖
第4頁桂林電子科技大學職業(yè)技術學院實訓報告
4.3硬件的各個部分
4.3.1單片機
(1)復位電路
單片機的復位電路是由外部的復位電路來實現(xiàn)的。復位引腳RST通過一個斯密特觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內(nèi)部復位操作所需要的信號。
復位電路通常采用上電自動復位和按鈕復位兩種,本設計采用按鈕復位。(2)時鐘電路
時鐘電路是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊的一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影響單片機系統(tǒng)的穩(wěn)定性。
圖4.3.1內(nèi)部時鐘電路
4.3.2按鍵電路
按鍵的開關狀態(tài)通過一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過程在相應的I/O端口形成一個負脈沖。閉合和釋放過程都要經(jīng)過一定的過程才能達到穩(wěn)定,這一過程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的長短與開關的機械特性有關,而本設計采用的是獨立按鍵,直接用I/O口線連接構(gòu)成單個按鍵電路,每個按鍵占用一個I/O口,每個按鍵的工作狀態(tài)不會產(chǎn)生互相影響。
圖4.3.2按鍵電路
P1.0口表示數(shù)字“+”,按一下則對應的數(shù)字加1,是對時鐘“秒”進行調(diào)整。
第5頁桂林電子科技大學職業(yè)技術學院實訓報告
P1.2口表示數(shù)字“+”,按一下則對應的數(shù)字加1,是對時鐘“分”進行調(diào)整。P1.4口表示數(shù)字“+”,按一下則對應的數(shù)字加1,是對時鐘“時”進行調(diào)整
4.3.3顯示電路
圖4.3.3.1顯示電路
LCD1602是內(nèi)帶字庫的液晶,可以寫32個字母或符號。驅(qū)動LCD1602有兩種方法,一種是并行,需要11個I/O口。一種是串行,需要7個I/O口。
其中:
RS:寄存器選擇,高電平選擇數(shù)據(jù)寄存器,低電平選擇指令寄存器。R/W:讀寫信號線,高電平讀操作,低電平寫操作。
E:全能端,當E為高電平跳變到低電平時,液晶模塊執(zhí)行命令。
圖4.3.3.2顯示效果
4.3.4報警電路
圖4.3.4報警電路利用單片機P1.6I/O口接報警
第6頁桂林電子科技大學職業(yè)技術學院實訓報告
電路,通過軟件到點時給P1.6口信號,LED亮。
5程序設計
#include"reg51.h"#include"LCD1602.H"#defineucharunsignedchar#defineuintunsignedintsbitk0=P1^0;sbitk1=P1^2;sbitk2=P1^4;sbitled=P1^6;
uintsecond=59,minute=59,hour=23;ucharcounter;voiddelay(uintms){}
voidinitTimer(void){
TMOD=0x1;TH0=0x3c;TL0=0xb0;}
voidtimer0(void)interrupt1{
TH0=0x3c;TL0=0xb0;
第7頁
uinti,j;for(i=0;i桂林電子科技大學職業(yè)技術學院實訓報告
counter++;if(counter>=20){
second++;counter=0;
}if(second>59){
minute++;second=0;}
if(minute>59){
hour++;minute=0;}
if(hour>23){
hour=0;}}
voidmain(void){
initTimer();TR0=1;ET0=1;EA=1;lcd_init();
第8頁桂林電子科技大學職業(yè)技術學院實訓報告
write_lcd_string(0,0,"myCLOCK");write_lcd_string(0,1,"::");while(1){{
delay(15);if(k0==0){
second+=1;
if(second>59)second=0;
write_lcd_char(7,1,coder[second%10]);write_lcd_char(6,1,coder[second/10]);write_lcd_char(4,1,coder[minute%10]);write_lcd_char(3,1,coder[minute/10]);write_lcd_char(1,1,coder[hour%10]);write_lcd_char(0,1,coder[hour/10]);if(k0==0)
}}while(k0==0);if(k1==0){
delay(15);if(k1==0){
minute+=1;
if(minute>59)minute=0;
}}while(k1==0);if(k2==0)
第9頁桂林電子科技大學職業(yè)技術學院實訓報告
{delay(15);if(k2==0){
hour+=1;
if(hour>23)hour=0;
}}while(k2==0);
if(hour==0&&minute==0&&second==10){}
elseled=0;}}
led=1;
第10頁桂林電子科技大學職業(yè)技術學院實訓報告
6結(jié)論
此電路基本可以完成任務要求的各個功能,具有按鍵調(diào)時功能,定時報警的功能。能顯示時、分、秒。該設計很好的滿足當前課題的要求,是一個理想的智能化的設計。它具有一個走時精確的實時鐘,可以任意設置時間,可以通過按鍵操作和數(shù)字顯示。該設計規(guī)模小,但是功能多,操作簡單,造價低,應用非常廣泛。
第11頁桂林電子科技大學職業(yè)技術學院實訓報告
參考文獻
[1]張專成,趙懷勛.單片機測控系統(tǒng)中的監(jiān)視定時器.武警技術學院.Mar1977.[2]何希慶,高偉.MCS-51單片機原理、實驗、實例〔M〕,山東;山東大學出版
社.1989.
[3]張友德.單片機微型機原理、應用與實踐.上海;復旦大學出版社.1992.[4]江思敏,姚鵬翼.PADS電路原理圖和PCB設計;北京;機械工程出版社.201*.[5]張秀國.單片機C語言程序設計教程與實訓.北京;北京大學出版社.201*.
第12頁桂林電子科技大學職業(yè)技術學院實訓報告
致謝
我在這一次數(shù)字鐘的設計過程中,很是受益匪淺。通過對自己所學的知識的回顧,充分發(fā)揮對所學知識的理解,完成了此次的設計,雖然在做實訓時還是遇到了很多問題,不過還是很好的完成了作品。在這里我要感謝葉老師的辛苦教導,細心的為我解答,還不斷指出我的錯誤,我非常感謝葉老師,想對老師說聲謝謝和辛苦了,還有感謝和我一起一組的搭檔,當遇到問題時一起細心尋找問題根源并解決,是我門的相互默契成就了我們的作品成功。同時我還要感謝我身邊的同學,謝謝他們能在我遇到問題時,和我一起討論,鼓勵我不要氣餒。非常謝謝他們。
201*年06月02日
第13頁桂林電子科技大學職業(yè)技術學院實訓報告
附件
PCB圖
原理圖
第14頁桂林電子科技大學職業(yè)技術學院實訓報告
仿真圖
第15頁
友情提示:本文中關于《單片機數(shù)字時鐘實訓報告》給出的范例僅供您參考拓展思維使用,單片機數(shù)字時鐘實訓報告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權問題,請聯(lián)系我們及時刪除。