單片機(jī)電子時(shí)鐘設(shè)計(jì)大作業(yè)_第1頁
單片機(jī)電子時(shí)鐘設(shè)計(jì)大作業(yè)_第2頁
單片機(jī)電子時(shí)鐘設(shè)計(jì)大作業(yè)_第3頁
單片機(jī)電子時(shí)鐘設(shè)計(jì)大作業(yè)_第4頁
單片機(jī)電子時(shí)鐘設(shè)計(jì)大作業(yè)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

南昌大亨

《單片機(jī)原理與接口技術(shù)》大作業(yè)

題目:《單片機(jī)電子時(shí)鐘設(shè)計(jì)》

專業(yè):軟件工程

班級:軟工146

學(xué)號:8000114047

學(xué)生姓名:____________榮麒_____________

南昌大學(xué)軟件學(xué)院

一.題目:單片機(jī)電子時(shí)鐘時(shí)鐘

二.內(nèi)容:

設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘,顯示范圍為00:00:00-23:59:59。通過幾個(gè)開關(guān)進(jìn)行控制,其中開關(guān)K1用于切換時(shí)間設(shè)置(調(diào)

節(jié)時(shí)鐘)和時(shí)鐘運(yùn)行(正常運(yùn)行)狀態(tài);開關(guān)K2用于切換修改時(shí)、分、秒數(shù)值;開關(guān)K3用于使相應(yīng)數(shù)值加1調(diào)節(jié);開關(guān)

K4用于減1調(diào)節(jié);開關(guān)K5用于設(shè)定鬧鐘,鬧鐘同樣可以設(shè)定初值,并且設(shè)定好后到時(shí)間通過實(shí)驗(yàn)箱音頻放出一段樂曲作

為鬧鈴。

選做增加項(xiàng)目:還可增加秒表功能(精確到0.01s)或年月日設(shè)定功能。

三.要求:

開關(guān)K3進(jìn)行加1調(diào)節(jié)時(shí),當(dāng)加至最大值(時(shí)為24,分和秒均為60)時(shí)要能正常歸零。開關(guān)K4進(jìn)行減1調(diào)節(jié)時(shí),當(dāng)

減至最小值00時(shí),均能再回到從相應(yīng)最大值(時(shí)為23,分、秒均為59)。鬧鐘樂曲自定。

四.電路及功能說明:

電路圖如圖所示:

I5-3H-HH

…卅I

',

??

HteUT

"6ME

n

?tK

n

??M

M

M

0g

RZtfAtt

n,f

?10

F3in)?

FXVMTTT

,1jfflno

rnrwn

.1*HD

cm

F3AKOI

,3?,fF

圖A

XX¥

I

-I,

4??sf

W:

?4

?Ks

8g

BQ

e二

*T-o

2■□■333■3333338p.

?■wwMMk^F■^.Wo□

>WwJUWU55Ss75SsSD

fnTS?Mq??s,r

l3sr9>rdQasa?s8i8Bycu

no

0?二

3?二

?:

圖c

該數(shù)字鐘是用一片AT89C51A單片機(jī)通過編程去驅(qū)動8個(gè)數(shù)碼管實(shí)現(xiàn)的。通過6個(gè)開關(guān)控制,從上到下6個(gè)開關(guān)

KEY1?KEY6的功能分別為:KEY1.切換至秒表;KEY2,調(diào)節(jié)時(shí)間,每調(diào)?次時(shí)加1;KEY3,調(diào)節(jié)時(shí)間,每調(diào)?次分加1:

KEY4,從其它狀態(tài)切換至?xí)r鐘狀態(tài);KEY5,切換至鬧鐘設(shè)置狀態(tài),也可以對秒表清零;KEY6,秒表暫停.控制鍵分別與

P1.0-P1.5□連接.其中:

A.通過P2口利P3□去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的a——g端,是控制輸出編碼,P3口接數(shù)碼管的1

——8端,是控制動態(tài)掃描輸出.

B.從P0.0輸出一個(gè)信號使二極管發(fā)光,二極管在設(shè)置的鬧鐘時(shí)間到了時(shí)候發(fā)光,若有樂曲可以去驅(qū)動揚(yáng)聲器實(shí)現(xiàn)。

(圖A是時(shí)鐘運(yùn)行狀態(tài),圖B是鬧鐘運(yùn)行狀態(tài),圖C是秒表運(yùn)行狀態(tài))

功能說明:

1.各個(gè)控制鍵的功能:可對時(shí)間進(jìn)行校準(zhǔn)調(diào)節(jié)(只能加1);按下設(shè)置鍵數(shù)字時(shí)鐘進(jìn)入鬧鐘設(shè)置狀態(tài),設(shè)置鬧鐘的

時(shí)間;時(shí)加1、分加1鍵是在校準(zhǔn)時(shí)間時(shí)或設(shè)置鬧鐘時(shí)間對小時(shí)數(shù)或分鐘數(shù)調(diào)節(jié)而設(shè)置的;按下秒切換鍵就可以

進(jìn)入秒表模式,同時(shí)秒表也開始計(jì)時(shí),按下秒表暫停、復(fù)位鍵就暫停、歸零,如果要重新對秒計(jì)時(shí)則可以按秒表

開始、復(fù)位;清零鍵可以對鬧鐘清零。

2.AT89c51單片機(jī),通過編寫程序?qū)?shù)碼顯示進(jìn)行控制。

3.八個(gè)7段數(shù)碼管顯示時(shí)鐘和秒表信號。

五.實(shí)驗(yàn)程序流程圖:

1.主程序流程圖:

N

執(zhí)行顯示程序匕

2.中斷程序流程圖

恢復(fù)初值保護(hù)

Y

Y

時(shí)數(shù)值time】.hour歸零

2.秒表中斷程序流程圖:

3.按鍵程序流程圖:

第一圖為時(shí)鐘和鬧鐘的調(diào)節(jié).

第二圖為進(jìn)入中斷和清零

斷分加鍵tminule

否按下,Pl.1=0?,

N

六.開發(fā)板的結(jié)構(gòu)

8位8段|「602液晶||蕓乳|

7.5VUSB1117

電源開關(guān)贏管||顯蔡接口||液器木]

直流供電供電接口電源芯片

|232串行|

系統(tǒng)

復(fù)位按鍵通信口

PSEN、EA

蜂鳴器

信號選擇

40PIN單片溫度傳感

機(jī)鎖緊座器18B20

3-8譯碼紅外一體

器接收頭

哪臺5'

P0QT2PSPIBT3

系統(tǒng)EEPROM

時(shí)鐘24co2

擴(kuò)展借口擴(kuò)展接口擴(kuò)展接口SRAM1*8LED4*41*4

PORT2PORT1PORT362256顯示燈矩陣鍵盤獨(dú)立鍵盤

七.通過SST51實(shí)現(xiàn)開發(fā)板只讀模式和程序燒寫的切換

打開SSTEasyIAPHF.exe程序,選擇串口

選擇芯片型號和內(nèi)部程序存儲器

選擇PC串口,MCU晶振和波特率

先選擇確定在復(fù)位MCU

通訊成功后窗口右上角顯示芯片信息和版本信息

點(diǎn)擊DownloadSoftICE選項(xiàng),將MCU中的BOOTLOADER監(jiān)控程序替換為SoftICE監(jiān)控程序

選擇確認(rèn)更換

打開KeilC51程序,新建一個(gè)工程

保存在自己新建的文件夾中

點(diǎn)擊保存出現(xiàn)CPU選擇對話框,選擇SST系列的89X516RD2

出現(xiàn)是否添加標(biāo)準(zhǔn)51初始代碼對話框,選''否"

工程建立之后新建源程序文件,點(diǎn)擊“File”菜單下“New”選項(xiàng)

保存在工程文件夾內(nèi),C程序文件后綴為“.C",匯編程序文件后綴為“.ASM”

在文本編輯區(qū)編寫源程序并保存;在SourceGroup上右擊選擇"AddFilesToGroup...”選項(xiàng)添加源文件至

工程

選擇編寫好的源程序文件,點(diǎn)擊Add添加所選文件

點(diǎn)擊編譯按鈕,編譯工程

進(jìn)入目標(biāo)板調(diào)試選項(xiàng)設(shè)置,點(diǎn)擊“Project"菜單下"OptionsforTarget...”選項(xiàng)

選擇為硬件仿真功能

點(diǎn)擊Setting進(jìn)入通訊參數(shù)設(shè)定菜單,去掉所有Cache選項(xiàng)。至此設(shè)置完畢,進(jìn)入仿真調(diào)試階段

點(diǎn)擊DEBUG下的“Start/StopDebugSession”選項(xiàng)進(jìn)入DEBUG界面

進(jìn)入后可以看到信息欄中由顯示連接成功信息。在此仿真界面可以進(jìn)行單步、全速、斷點(diǎn)等調(diào)試方式

由SoftICE監(jiān)控程序轉(zhuǎn)換回SSTBoot-StrapLoader監(jiān)控程序

打開編輯器SUPERPRO程序

進(jìn)入SUPERPRO程序界面,單擊“選擇器件選項(xiàng)”

進(jìn)入器件選擇對話框,在器件類型處選擇“MCU/MPU”在查找處輸入要器件名稱,找到之后選擇“確定”

單擊“裝入文件”選項(xiàng)

進(jìn)入下載文件選擇對話框,選擇要下載的SoftICE監(jiān)控程序,文件格式一般為“.hex”或“.bin”格式

因?yàn)镾ST單片機(jī)的監(jiān)控程序存儲在Blockl中,Blockl的地址為lOOOOh,故數(shù)據(jù)緩沖區(qū)起始地址改為“10000”,

下載一般執(zhí)行程序則直接默認(rèn)

具體步驟為:Erase=》Program=》Verify;

打開SSTBOOT-STRAPLOADER軟件工具,并按之前的步驟與單片機(jī)通訊連接成功。在界面的右下方IAP

Function菜單中有下載選項(xiàng),選擇"Download”選項(xiàng)下載程序

進(jìn)入了下載文件選擇界面

在文件查找對話框中找到要下載的用戶程序,一般為.Hex或.bin格式文件

選擇好用戶程序后,單擊步驟二中的0K選項(xiàng)開始下載,界面最下面的狀態(tài)欄顯示下載進(jìn)度,當(dāng)顯示為Done

時(shí)表示程序下載已經(jīng)完成,單片機(jī)上電執(zhí)行用戶程序了

八.實(shí)驗(yàn)結(jié)果分析:

此時(shí)鐘設(shè)計(jì)是利用仿真軟件進(jìn)行仿真?;旧蠈?shí)現(xiàn)了要求的功能,該多功能數(shù)字鐘實(shí)現(xiàn)的忖鐘顯示、鬧鐘設(shè)置和秒表

功能,校準(zhǔn)時(shí)鐘時(shí)只設(shè)計(jì)了時(shí)加鍵和分加鍵以及清零鍵,沒有設(shè)置減分減時(shí)鍵??砂l(fā)通過循環(huán)調(diào)節(jié)得到正確的調(diào)節(jié)數(shù)

值。另外,要求有一段樂曲來作為鬧鐘,可這里只是用了一個(gè)二級管的發(fā)光來實(shí)現(xiàn)這個(gè)功能。若用一個(gè)揚(yáng)聲器和一個(gè)

樂曲能夠?qū)崿F(xiàn)。

九.程序代碼:

#include<reg5l.h>

#defineucharunsignedchar

#defineuintunsignedint

#definedelay_time3

uchark,dat[]={0,0,0,0,0,0,0,0};

uinttcount,t,u;

uchardatl[]={0,0,0,0,0,0,0,0};

uchardat2[]={0,0,0,0,0,0,0,0);

ucharalarms[]={0,0,0,0,0,0,0,0);

uchardis_bit[J={0x80,0x40,0x20,Ox10,0x08,0x04,0x02,0x01};

unsignedcharcodeSEG7[11]={0xC0,/*0*/

0xF9,/*l*/

0xA4,/*2*/

0xB0,/*3*/

0x99,/*4*/

0x92,/*5*/

0x82,/*6*/

0xF8,/*7*/

0x807*8*/

0x90,/*9*/

OxBF,/*-*/

);

sbitmiaobiaol=PlA0;

sbittminute=PlA1;

sbitthour=PlA2;

sbitmiaobiao2=PlA3;

sbitalarm=PlA4;

sbitPO_O=POAO;

sbitPl_5=PlA5;

sbitPl_6=PlA6;

sbitPl_7=PlA7;

ucharms=0;

ucharflag=O;

ucharsec=O;

ucharminit=O;

structtime{ucharsecond;ucharminute;ucharhour;}time1;

ucharn,i;

voiddelay(n)

(

while(n—)

(

for(i=120;i>0;i-);

voidmodify(void)

EA=0;

if(thour==0)

(

if(flag==0)

(

datl[6]++;delay(l80);

if(datl[6]>9)

{

datl[6]=0;datl[7]++;

if(datl[7]>2)

(

datl[7]=0;

)

)

)

if(flag==l)

(

alarms[6]++;delay(200);

if(alarms[6]>9)

{

alarms[6]=0;alarms[7]++;

if(alarms[7]>2)

(

alarms[7]=0;

dat[6]=alarms[6];

dat[7]=alarms[7];

if(tminute==O)

(

if(flag==O)

(

datl[3]++;delay(180);

if(dat[3]>=10)

{

datl[4]++;datl[3]=0;

if(datl[4]>5)

(

datlL4J=0;

if(flag==l)

(

alarms[3J++;delay(200);

if(alarms[3]>9)

(

alarms[4]4-+;alarms[3]=0;

if(alarms[4]>5)

(

alarms[4J=0;

)

)

dat[3]=alarms[3];

dat[4]=alarms[4];

)

}

if(miaobiaol==0)

{

TRO=O;ETO=O;TR1=1;ET1=1;

)

if(miaobiao2==0)

(

TRO=1;ETO=1;TR1=O;ET1=0;

dat2[0]=0;

dat2[l]=0;

dat2[3]=0;

dat2[4]=0;

dat2[6]=0;

dat2[7]=0;

ms=O;

sec=O;

minit=O;

)

if(Pl_5==0)

{

TRO=O;ETO=O;TR1=O;ET1=O;

)

if(alarm==O)

{

TRO=O;ETO=O;TR1=O;ET1=O;flag=1;

dat[OJ=O;

dat[l]=O;

dat[2]=10;

dat[3]=0;

dat[4]=0;

dat[5]=10;

dat[6]=0;

dat[7]=0;

)

EA=1;

voidinit(void)

TMOD=Oxll;

TH0=0xDB;

TLO=0xFF;

THl=0xDB;

TLl=0xFF;

ET0=1;//10ms

ET1=1;

//TR1=1;

TR0=l;

tcount=0;

ms=0;

sec=0;

minit=0;

EA=I;

voidtest(void)

(

for(k=0;k<8;k++)

(

P3=dis^bit[k];P2=SEG7[dat[k]];delay(l);P3=0X00;

voidmain()

(

init();

delay(lO);

while(l)

(

modifyO;

test();

voiddiplayOinterrupt1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論