版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鉆石產(chǎn)品營銷計(jì)劃書
- 羊毛毛條商業(yè)機(jī)會挖掘與戰(zhàn)略布局策略研究報(bào)告
- 瑜伽用品產(chǎn)品原材料供應(yīng)與需求分析
- 竹制品市場發(fā)展預(yù)測和趨勢分析
- 香精香料產(chǎn)品原材料供應(yīng)與需求分析
- 轉(zhuǎn)子泵市場需求與消費(fèi)特點(diǎn)分析
- 高頻疲勞試驗(yàn)機(jī)市場發(fā)展預(yù)測和趨勢分析
- 2020年湖南省普通高中學(xué)業(yè)水平考試數(shù)學(xué)試題(含答案解析)
- 電視制式轉(zhuǎn)換器商業(yè)機(jī)會挖掘與戰(zhàn)略布局策略研究報(bào)告
- 風(fēng)力提水機(jī)組產(chǎn)品原材料供應(yīng)與需求分析
- 基于新課標(biāo)的小學(xué)生科學(xué)思維培養(yǎng)策略
- 中智公司招聘西飛筆試題
- 建筑施工圖-建筑剖面圖識讀(建筑識圖)
- 機(jī)場地面服務(wù)A卷答案
- 心安即是歸處閱讀分享
- 初中音樂八年級下冊(簡譜) ☆打支山歌過橫排
- 《結(jié)膜炎病人的護(hù)理》課件
- 北師大版小學(xué)數(shù)學(xué)四年級上冊《線的認(rèn)識》說課稿(附反思、板書)課件
- 第3.2課《簡單相信傻傻堅(jiān)持》(課件)-【中職專用】高二語文同步課件(高教版2023·職業(yè)模塊)
- 《定向運(yùn)動規(guī)則》課件
- 模具工廠績效考核方案
評論
0/150
提交評論