大工14春《單片機(jī)原理及應(yīng)用》大作業(yè)
《大工14春《單片機(jī)原理及應(yīng)用》大作業(yè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《大工14春《單片機(jī)原理及應(yīng)用》大作業(yè)(17頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、大臣理工大寫網(wǎng)絡(luò)教育學(xué)院 《單片機(jī)原理及應(yīng)用》大作業(yè) 題 目:?jiǎn)纹瑱C(jī)電子時(shí)鐘設(shè)計(jì) 學(xué)習(xí)中心: 層 次:專升本 專 業(yè):電氣工程及其自動(dòng)化 年 級(jí):2014年 春季 學(xué) 號(hào): 學(xué)生姓名: 一、課題背景 1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ), 電子時(shí)鐘開始迅速發(fā)展起來。 現(xiàn)代的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具, 采 用延時(shí)程序產(chǎn)生一定的時(shí)間中斷, 用于一秒的定義, 通過計(jì)數(shù)方式進(jìn)行滿六十秒 分鐘進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能, 是人們?nèi)粘I畈豢扇鄙俚墓ぞ摺?現(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都
2、使用了石英晶 體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高, 穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼 代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差, 這種表具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活 性好。 二、時(shí)鐘的基本原理分析 利用單片機(jī)定時(shí)器完成計(jì)時(shí)功能, 定時(shí)器 0 計(jì)時(shí)中斷程序每隔 0.01s 中斷一 次并當(dāng)作一個(gè)計(jì)數(shù),設(shè)定定時(shí) 1 秒的中斷計(jì)數(shù)初值為 100,每中斷一次中斷計(jì)數(shù) 初值減1,當(dāng)減到0時(shí),則表示1s到了,秒變量加1,同理再判斷是否1min鐘 到了,再判
3、斷是否 1h 到了。 為了將時(shí)間在LED數(shù)碼管上顯示,可采用靜態(tài)顯示法和動(dòng)態(tài)顯示法,由于靜 態(tài)顯示法需要譯碼器,數(shù)據(jù)儲(chǔ)存器等較多硬件,可采用動(dòng)態(tài)顯示法實(shí)現(xiàn)LED顯示, 通過對(duì)每位數(shù)碼管的依次掃描, 使對(duì)應(yīng)數(shù)碼管亮, 同時(shí)向該數(shù)碼管送對(duì)應(yīng)的字碼, 使其顯示數(shù)字。 由于數(shù)碼管掃描周期很短, 由于人眼的視覺暫留效應(yīng), 使數(shù)碼管 看起來總是亮的,從而實(shí)現(xiàn)了各種顯示。 三、 51 單片機(jī)介紹及時(shí)鐘設(shè)計(jì)分析 針對(duì)要實(shí)現(xiàn)的功能,采用AT89S51^片機(jī)進(jìn)彳T設(shè)計(jì),AT89S51單片機(jī)是一款 低功耗,高性能CMOS8單片機(jī),片內(nèi)含4KBft線可編程(ISP)的可反復(fù)擦寫1000 次的 Flash 只讀
4、程序存儲(chǔ)器,器件采用高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo) 準(zhǔn)MCS石1指令系統(tǒng)及80C51引腳結(jié)構(gòu)。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的 功能。 在程序方面, 采用分塊設(shè)計(jì)的方法, 這樣既減小了編程難度、 使程序易于理 解,又能便于添加各項(xiàng)功能。程序可分為鬧鐘的聲音程序、時(shí)間顯示程序、日期 顯示程序,秒表顯示程序,時(shí)間調(diào)整程序、鬧鐘調(diào)整程序、定時(shí)調(diào)整程序,延時(shí) 程序等。運(yùn)用這種方法,關(guān)鍵在于各模塊的兼容和配合, 若各模塊不匹配會(huì)出現(xiàn) 意想不到的錯(cuò)誤。 首先,在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法, 以及內(nèi)部寄存器、 存儲(chǔ)單元的用法,否則,編程無從下手,電路也無法設(shè)計(jì)。這是前
5、期準(zhǔn)備工作。 第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路, 輸出需要顯示驅(qū)動(dòng)電路和數(shù)碼管電路等。 第三部分是軟件部分:先學(xué)習(xí)理解匯編 語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè) 計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的 繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真, 仿真無法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。 第六部分是 硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn) 想要的功能。最后進(jìn)行功能擴(kuò)展,在已經(jīng)正確的設(shè)計(jì)基礎(chǔ)上,添加額外的功能! 四、時(shí)
6、鐘的設(shè)計(jì) A.電路設(shè)計(jì) 1 .整體設(shè)計(jì) 此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來設(shè)計(jì)電子時(shí)鐘,硬件部分主要分以下電路模 塊:顯示電路用8個(gè)共陰數(shù)碼管分別顯示,星期(年份),小時(shí)、分鐘(月份)和 秒(日),通過動(dòng)態(tài)掃描進(jìn)行顯示,從而避免了譯碼器的使用,同時(shí)節(jié)約了 I/O 端口,使電路更加簡(jiǎn)單。單片機(jī)采用 AT89S5保列,這種單片機(jī)應(yīng)用簡(jiǎn)單,適合 電子鐘設(shè)計(jì)。 電路的總體設(shè)計(jì)框架如下: 單片機(jī) 輸出部分 2 .分塊設(shè)計(jì) 模塊電路主要分為:輸入部分、輸出部分、復(fù)位和晶振電路 2.1 輸入部分 輸入信號(hào)主要是各種模式選擇和調(diào)整信號(hào),由按鍵開關(guān)提供。 以下為輸入部分樣例: XDUJ
7、H3mH3
R3 H3JAIXZ xna iQjAGg
ra. 8、
■
F22M1D 、
P5CN
4lLF
■
a
F2SR13 1 ?2泌14
?酊內(nèi)IS ■
P11
卻M?汨■
31J
PJ.I/T3CDI -
011
P1IJ
Q 加 IMT1 !
P1J.
PWTO
即 15fLl -
口 1
P3jUIR!;
HTjffB
在本實(shí)驗(yàn)中主要用用P3口輸入按鍵信號(hào),還用到了特殊的
由于其存在高阻狀態(tài),為了實(shí)現(xiàn)開關(guān)功能,給其添加上拉電阻,具體如下圖所示:
2.2 輸出部分
本電路的輸出信號(hào)為7段數(shù)碼管的位選和段選信號(hào),鬧鈴脈沖信號(hào),提示燈 信號(hào)。
本實(shí)驗(yàn)的數(shù)碼管是共陰 9、的,為了防止段選信號(hào)不能驅(qū)動(dòng)數(shù)碼管,故在 P1 口連接 上拉電阻后,再送段選信號(hào),以提高驅(qū)動(dòng),位選信號(hào)直接從 P2 口接入,如下圖:
鬧鈴由P2.6端輸出,模塊如下:
2.3 晶振與復(fù)位電路
本實(shí)驗(yàn)單片機(jī)時(shí)鐘用內(nèi)部時(shí)鐘,模塊如下:
C2
——. I
l—Jl I Q592
C3
II~~-
22UF
復(fù)位電路為手動(dòng)復(fù)位構(gòu)成,模塊如下:
各模塊拼接組合,電路總體設(shè)計(jì)圖如下
“ KjuI tIw. 1
Dail-MUJmYgnr
1rUMI叩l-uluFniuFn
*?IULJU -111.
B.程序設(shè)計(jì)
8.1 程 10、序總體設(shè)計(jì)
本實(shí)驗(yàn)用匯編程序完成
程序總的流程圖如下:
8.2 程序主要模塊
8.2.1 延時(shí)模塊
數(shù)碼管顯示動(dòng)態(tài)掃描時(shí), 用到延時(shí)程序, 這里使用延遲 1ms 的程序, 此程序
需反復(fù)調(diào) , 除數(shù)碼管動(dòng)態(tài)掃描外,數(shù)碼管的閃爍提示,以及音樂模塊也用到了延
時(shí),只是延時(shí)的長(zhǎng)短不同罷了,在此不再贅述。
8.2.2 中斷服務(wù)程序
本實(shí)驗(yàn)中,計(jì)數(shù)器T0,T1中斷都有運(yùn)用,其中T0中斷為時(shí)鐘定時(shí)所用,T1中 斷用于音樂播放。T0的定時(shí)長(zhǎng)度為0.01s,工作于方式1,計(jì)數(shù)1次,時(shí)長(zhǎng)1us,故 計(jì)數(shù)器計(jì)數(shù)1000畋,進(jìn)入中斷,計(jì)數(shù)初值為 65536-10000=55536=#0D8F 11、0裝滿 定時(shí)器需要 0.01s 的時(shí)間,從而 100次中斷為一秒,一秒之后,判斷是否到 60秒,
若不到則秒加一,然后返回,若到,則秒賦值為 0,分加一,依次類推。包括日
期顯示的功能也是如此。 另外, 由于要實(shí)現(xiàn)倒計(jì)時(shí)功能, 因此在中斷程序中還要 加入減一的寄存器,需要時(shí)將其進(jìn)行顯示?;谝陨峡紤],以R刻倒計(jì)時(shí)中的秒, R4為倒計(jì)時(shí)的分,當(dāng)秒加1時(shí)RGS一,減到0之后,秒賦值為59,分減一,直到分 為 0。
計(jì)數(shù)器 T1 工作于方式 1, 當(dāng)調(diào)用響鈴程序時(shí),其計(jì)數(shù)功能開啟,為音樂音
調(diào)不同頻率的方波的形成, 提供延時(shí)。 其中斷服務(wù)程序就是根據(jù)音調(diào)改變音樂方 波輸出口電平的高低,用語句 12、 CPL實(shí)現(xiàn)。
中斷服務(wù)程序中日歷的實(shí)現(xiàn)較為復(fù)雜,要考慮平年,閏年,特殊的 2月,每
月的天數(shù)的不盡相同。具體的邏輯判斷方法為:首先,要考慮年份是不是閏年,
閏年的判斷方法是: 將年份除以 100, 若能整除, 則將年份除以 400, 若還能整除,
則為閏年, 若不能, 則為平年; 若不能被 100整除, 則判斷是否能被 4整除, 若能,
則為閏年,若不能則為平年。只有 2月與平、閏年相關(guān),因此在閏年和平年的子
程序中,要判斷是不是 2月,若是則在相應(yīng)的年中進(jìn)行日期的增加,若不是則轉(zhuǎn)
入平時(shí)的月份。其中 1、 3、 5、 7、 8、 10、 12月是每月 31天, 4、 6、 9 13、、 11月為每
月 30天。
日歷進(jìn)位判斷流程圖如下:
本實(shí)驗(yàn)用8個(gè)數(shù)碼管,剛好能顯示年,月,日,掃描顯示與時(shí)間的掃描顯示 類似。年比較特殊,由兩個(gè)寄存器存儲(chǔ),個(gè)位,十位為 0時(shí),表明年數(shù)能被100 整除,若此時(shí)千位,百位
組成兩位數(shù)能被4整除,則年數(shù)被400整除,為閏年。若十位,個(gè)位組成兩位數(shù) 能被4整除,則年數(shù)能被4整除,為閏年。
8.2.3 主程序
主程序主要對(duì)按鍵進(jìn)行掃描,以及判斷定時(shí)和鬧鈴時(shí)間是否已到, 若到則調(diào) 用相關(guān)程序。
8.2.4 顯小子程序
8個(gè)數(shù)碼管輪流進(jìn)行顯示,分別顯示1ms依賴人的視覺 暫留效應(yīng),給人以 數(shù)碼管持續(xù)高亮的錯(cuò)覺。
日期的顯示,秒 14、表的顯示,倒計(jì)時(shí)的顯示,調(diào)鬧鈴,調(diào)定時(shí)的顯示,閃爍的 顯示程序與以上的的掃描相似,有的以子程序的方式出現(xiàn),通過子程序調(diào)用語句 ACAL碉用;有點(diǎn)直接嵌套在相應(yīng)的程序里面,順序執(zhí)行,或者用調(diào)轉(zhuǎn)語句 AJMP
調(diào)用。
C程序調(diào)試及仿真
本程序通過Keil單片機(jī)開發(fā)平臺(tái)實(shí)現(xiàn)程序的編譯,鏈接,生成 HEXC件。通 過Keil和硬件仿真平臺(tái)Proteus的聯(lián)合,可以將設(shè)計(jì)效果仿真出來,根據(jù)效果, 有目的的改變?cè)O(shè)計(jì),優(yōu)化程序。
利用Proteus仿真實(shí)驗(yàn)過程截圖:
普通時(shí)間顯示模式仿真圖,表示:星期一 9點(diǎn)10分38秒
五、總結(jié)
通過本次設(shè)計(jì),我深深體會(huì)到了掌握知識(shí)的重要性, 本次設(shè) 15、計(jì)也使我熟悉了 單片機(jī)的硬件特點(diǎn)和編程方法,并成功將學(xué)到的知識(shí)變成了實(shí)際的成果,雖然在 設(shè)計(jì)過程中遇到了很多問題,例如知識(shí)的融會(huì)貫通、調(diào)試遇到的BUG^,但通過 努力都一一得到了克服,從而也提高了我學(xué)習(xí)的信心,堅(jiān)定了我繼續(xù)深入學(xué)習(xí)的 決心。
按下 0鍵, 顯示日期并可對(duì)日期進(jìn)行
按下 1鍵,顯示時(shí)間,并可調(diào)時(shí)
按下 2鍵,進(jìn)行鬧鈴設(shè)置
按下 3鍵,進(jìn)行定時(shí)設(shè)置
鬧鈴測(cè)試
按下 6鍵,進(jìn)入秒表方式
調(diào)用時(shí)鐘顯示子程序
判斷是否開啟鬧鈴重響功能
判斷是否開啟鬧鈴功能,沒開則去
判斷定時(shí)值R4,R3是否到零、鬧鈴時(shí)
判斷小時(shí)數(shù)是否到鬧鈴所定時(shí)間, 若到,則對(duì)分進(jìn)行判斷;若不到, 16、 則對(duì)定時(shí)進(jìn)行判斷
附錄: 延時(shí)程序:
D_1MS:
MOV R7,#2
D_5:
MOV R2,#250
DJNZ R2,$
DJNZ R7,D_5
RET
主程序:
MAIN:
JNBP3.0,DATETZ
調(diào)整
JNB P3.1,ZSTZ1
JNB P3.2,NLTZZ
JNB P3.3,DSTZ
JNB P3.4,CESHI
JNB P3.6,STOPWATCHTZ
ACALL DISP
JNB P0.6,RERING
RE: JNB P2.7,DSPDKQ
判斷定時(shí)
FMQPD:
刻是否已到
MOV A,HOUR;
SUBB A, 17、38H;
JZ FEN ;
AJMP DSPDKQ
FEN:
MOV A,MINUTE;
SUBB A,37H;
JZ MIAO ; 判斷分是否到鬧鈴所定時(shí)間,若到,
則對(duì)秒進(jìn)行判斷;若不到,則對(duì)定
時(shí)進(jìn)行判斷
AJMP DSPDKQ
MIAO:
MOV A,SECOND
SUBB A,#0
JZ SHENGYIN1 ; 判斷秒是否到鬧鈴所定時(shí)間,若到,
則時(shí),分,秒都到達(dá)鬧鈴時(shí)刻,進(jìn)
入響鈴子程序;若不到則判斷定時(shí)
AJMP DSPDKQ
RERING: ; 鬧鈴重響判斷程序
JNB F0, RE ; 標(biāo)志位F0為0,不進(jìn)行鬧鈴重響設(shè)
定
CPL F0 18、
MOV3CH,#1 ; 定時(shí)判斷標(biāo)志位賦 1, 定時(shí)判斷功
能開啟
JNB P0.7,M1 ; 鬧鈴重響間隔時(shí)間選取
MOV R4,#0 ; 鬧鈴重響間隔 30秒
MOV R3,#30
AJMP MAIN
M1: ; 鬧鈴重響間隔 60秒
MOV R4,#1
MOV R3,#0
AJMP MAIN
DSPDKQ:
判斷是否應(yīng)該進(jìn)行定時(shí)判斷
MOVA,3CH ;3CH
JNZ DSPD2 ;
序
AJMP MAIN
DSPD2:
MOV A,R4;
JZ S_PD ;R4
AJMP MAIN;
S_PD:
MOV A,R3;
JNZMAIN ;R4 19、,R3
到
JNB P0.6,SHENGYIN2
序
AJMP TISHI ;
AJMP MAIN
CESHI:
ACALL RING
AJMP MAIN
SHENGYIN1: ;
LCALL RING
AJMP MAIN
SHENGYIN2:
SETB F0 ;
是引入的判斷因子,當(dāng)其為 0時(shí),
不對(duì)定時(shí)時(shí)間是否到 0進(jìn)行判斷
當(dāng)3CHP是0時(shí),跳轉(zhuǎn)到定時(shí)判斷程
所存定時(shí)分?jǐn)?shù)為 0, 則轉(zhuǎn)而判斷 R3
所存定時(shí)秒數(shù)
所存參數(shù)減為 0, 定時(shí)長(zhǎng)度已
鬧鈴重響功能開啟時(shí),跳入響鈴程
不是鬧鈴重響定時(shí),則定時(shí)時(shí)間到
時(shí),跳入提示程序
調(diào)用響鈴子程序
20、鬧鈴重響標(biāo)志位設(shè)定
LCALL RING ; 響鈴
標(biāo)志位復(fù)位
跳入鬧鈴調(diào)整程序
跳入定時(shí)調(diào)整程序
跳入日期調(diào)整程序
跳入秒表程序
時(shí)間顯示子程序
判斷節(jié)能開關(guān) 7是否按下,按下則
數(shù)碼管不顯示,延長(zhǎng)其壽命
顯示當(dāng)前時(shí)間秒位
存十位,B存?zhèn)€位
顯示當(dāng)前時(shí)間秒十位
CLR F0
AJMP MAIN
NLTZZ:
AJMP NLT 21、Z1
DSTZ:
AJMP DSTZ1
DATETZ:
AJMP DATETZ1
STOPWATCHTZ:
AJMP STOPWATCHTZ1
顯示子程序:
DISP: ;
JNB P3.7,OUT1
MOV DPTR,#LEDTAB
MOV A,SECOND
MOV B,#10
DIV AB ;A
MOVC A,@A+DPTR
MOV P1,A
CLR SEC_S
ACALL D_1MS
SETB SEC_S
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
CLR SECG
ACALL D_1MS J 顯示當(dāng)前時(shí)間秒個(gè)位
顯 22、示當(dāng)前時(shí)間分位
SETB SEC_G
MOV A,MINUTE
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P1,A
CLR MIN_S
ACALL D_1MS
SETB MIN_S
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
CLR MIN_G
ACALL D_1MS
SETB MIN_G
顯示當(dāng)前時(shí)間時(shí)位
MOV A,HOUR
MOV B,#10
DIV AB
MOV DPTR,#LEDTAB
MOVC A,@A+DPTR
MOV P1,A
CLR HOU_S
ACALL D_1MS
SETB HOU_S
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
CLR HOU_G
SETB HOU_G
MOV A,WEEK
MOVC A,@A+DPTR
MOV P1,A
CLR Y_S
ACALL D_1MS
SETB Y_S
OUT1:
RET
ACALL D_1MS
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案