版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 物理與機(jī)電工程學(xué)院課程設(shè)計(jì)報(bào)告</p><p> 課程名稱: 單片機(jī)課程設(shè)計(jì) </p><p> 系 部: 物理與機(jī)電工程學(xué)院 </p><p> 專業(yè)班級(jí): 電子信息工程 </p><p> 學(xué)生姓名: </p><p>
2、 指導(dǎo)教師: </p><p> 完成時(shí)間: 2012-3-16 </p><p> 報(bào)告成績(jī): </p><p><b> 一、設(shè)計(jì)任務(wù)與要求</b></p><p><b> 二、方案設(shè)計(jì)與論證</b>
3、;</p><p><b> 三、硬件電路設(shè)計(jì)</b></p><p><b> 四、軟件設(shè)計(jì)</b></p><p> 五、仿真過(guò)程與仿真結(jié)果</p><p><b> 六、安裝與調(diào)試</b></p><p><b> 七、結(jié)論與心
4、得</b></p><p><b> 八、參考文獻(xiàn)</b></p><p> 《單片機(jī)原理》課程設(shè)計(jì)報(bào)告</p><p><b> 一、設(shè)計(jì)任務(wù)與要求</b></p><p><b> 1、設(shè)計(jì)基本要求。</b></p><p>&l
5、t;b> 設(shè)計(jì)一個(gè)電子鐘:</b></p><p> (1)具有小時(shí)分秒時(shí)間顯示。</p><p> (2)能夠設(shè)置鬧鐘至少5次鬧鐘時(shí)間。</p><p> ?。?)可利用按鍵修改時(shí)間,具有上午下午的提示信息。</p><p> 2、。通過(guò)課程設(shè)計(jì)的教學(xué)實(shí)踐,進(jìn)一步學(xué)習(xí)、掌握單片機(jī)應(yīng)用系統(tǒng)的有關(guān)知識(shí),加深了解單片機(jī)的
6、工作原理。初步掌握簡(jiǎn)單單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)、制作、調(diào)試的方法。提高動(dòng)手實(shí)踐能力、提高科學(xué)的思維能力。</p><p><b> 二、方案設(shè)計(jì)與論證</b></p><p><b> 1 電子時(shí)鐘</b></p><p> 1.1 電子時(shí)鐘簡(jiǎn)介
7、 </p><p> 1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開(kāi)始迅速發(fā)展起來(lái)?,F(xiàn)代的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過(guò)計(jì)數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能,是人民日常生活補(bǔ)課缺少的工具。</p><p> 1.2 電子時(shí)鐘的基本
8、特點(diǎn) </p><p> 現(xiàn)在高精度的計(jì)時(shí)工具大多數(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ì),片選的靈活性好。</p>&l
9、t;p> 1.3 電子時(shí)鐘的原理 </p><p> 該電子時(shí)鐘由89C51,BUTTON,六段數(shù)碼管等構(gòu)成,采用晶振電路作為驅(qū)動(dòng)電路,由延時(shí)程序和循環(huán)程序產(chǎn)生的一秒定時(shí),達(dá)到時(shí)分秒的計(jì)時(shí),六十秒為一分鐘,六十分鐘為一小時(shí),滿二十四小時(shí)為一天。而電路中兩個(gè)控制鍵功能直接按下不松開(kāi),則可以通過(guò)按鍵實(shí)現(xiàn)分鐘的累加,每按一次分鐘加一;而另一按鍵按下又
10、放松,則可實(shí)現(xiàn)小時(shí)的調(diào)節(jié),同樣每按一次小時(shí)加一。</p><p> 2 單片機(jī)識(shí)的相關(guān)知識(shí)</p><p> 2.1 單片機(jī)簡(jiǎn)介 </p><p> 單片機(jī)全稱為單片機(jī)微型計(jì)算機(jī)(Single Chip Microsoftcomputer)。從應(yīng)用領(lǐng)域來(lái)看,單片機(jī)主要用來(lái)控制,所以又稱為微控制器(Microcontroller Unit)或嵌入式
11、控制器。單片機(jī)是將計(jì)算機(jī)的基本部件微型化并集成在一塊芯片上的微型計(jì)算機(jī)。</p><p> 2.2 89C51單片機(jī)介紹 </p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b>
12、</p><p> P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P
13、1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉
14、低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入
15、“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p><b> 口管腳 備選功能</b></p><p> P3.0 RXD(串行輸入口)</p><p&
16、gt; P3.1 TXD(串行輸出口)</p><p> P3.2 /INT0(外部中斷0)</p><p> P3.3 /INT1(外部中斷1)</p><p> P3.4 T0(記時(shí)器0外部輸入)</p><p> P3.5 T1(記時(shí)器1外部輸入)</p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫
17、選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。
18、在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。</p>&
19、lt;p> /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p> /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FL
20、ASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> XTAL2:來(lái)自反向振蕩器的輸出。</p><p> 3 控制系統(tǒng)的軟件設(shè)計(jì)</p><p> 3.1 單片機(jī)型號(hào)的選擇
21、 </p><p> 通過(guò)對(duì)多種單片機(jī)性能的分析,最終認(rèn)為89C51是最理想的電子時(shí)鐘開(kāi)發(fā)芯片。89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能器件,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編
22、程閃爍存儲(chǔ)器和1000寫/擦循。</p><p> 3.2 數(shù)碼管顯示工作原理</p><p> 數(shù)碼管是一種把多個(gè)LED顯示段集成在一起的顯示設(shè)備。有兩種類型,一種是共陽(yáng)型,一種是共陰型。共陽(yáng)型就是把多個(gè)LED顯示段的陽(yáng)極接在一起,又稱為公共端。共陰型就是把多個(gè)LED顯示段的陰極接在一起,即為公共商。通常的數(shù)碼管又分為8段,即8個(gè)LED顯示段,分別為A、B、C、D、E、F、G、DP
23、,其中DP 是小數(shù)點(diǎn)位段。而多位數(shù)碼管,除某一位的公共端會(huì)連接在一起,不同位的數(shù)碼管的相同端也會(huì)連接在一起。即,所有的A段都會(huì)連在一起,其它的段也是如此,這是實(shí)際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動(dòng)態(tài)顯示的原理是,各個(gè)數(shù)碼管的相同段連接在一起,共同占用8 位段引管線;每位數(shù)碼管的陽(yáng)極連在一起組成公共端。利用人眼的視覺(jué)暫留性,依次給出各個(gè)數(shù)碼管公共端加有效信號(hào),在
24、此同時(shí)給出該數(shù)碼管加有效的數(shù)據(jù)信號(hào),當(dāng)全段掃描速度大于視覺(jué)暫留速度時(shí),顯示就會(huì)清晰顯示出來(lái)。</p><p> 3.3 鍵盤電路設(shè)計(jì) </p><p> 該設(shè)計(jì)只用了兩個(gè)鍵盤,但實(shí)現(xiàn)的功能卻是比較完善,減少了硬件資源的損耗,該鍵可以實(shí)現(xiàn)小時(shí)和分鐘的調(diào)節(jié)。當(dāng)按鍵按下又松開(kāi),則可以通過(guò)按鍵實(shí)現(xiàn)分鐘
25、的累加,每按一次分鐘加一;另一個(gè)按鍵則可實(shí)現(xiàn)小時(shí)的調(diào)節(jié),同樣每按一次小時(shí)加一。達(dá)到時(shí)間調(diào)節(jié)的目的。</p><p><b> 三、硬件電路設(shè)計(jì)</b></p><p><b> 引腳功能說(shuō)明</b></p><p> 89C51外部引腳圖:(可以直接拷入ASM程序文件中,作注釋使用,十分方便);
26、60; ┏━┓┏━┓;
27、; P1.0 ┫1 ┗┛40┣ Vcc ; P1.1 &
28、#160; ┫2 39┣ P0.0 ; P1.
29、2 ┫3 38┣ P0.1 ; &
30、#160; P1.3 ┫4 37┣ P0.2 ;
31、; P1.4 ┫5 36┣ P0.3 ;
32、160; P1.5 ┫6 35┣ P0.4 ;
33、; P1.6 ┫7 34┣ P0.5
34、0;; P1.7 ┫8 33┣ P</p>
35、<p> 89c51引腳圖管腳圖</p><p> 引腳說(shuō)明: ①電源引腳 Vcc(40腳):典型值+5V。
36、0; Vss(20腳):接低電平。 ②外部晶振 X1、X2分別與晶體兩端相連接。當(dāng)采用外部時(shí)鐘信號(hào)時(shí),X2接振蕩信號(hào),X1接地。 ③輸入輸出口引
37、腳: P0口:I/O雙向口。作輸入口時(shí),應(yīng)先軟件置“ 1”。 P1口:I/O雙向口。作輸入口時(shí),應(yīng)先軟件置“ 1”。
38、60; P2口:I/O雙向口。作輸入口時(shí),應(yīng)先軟件置“ 1”。 P3口:I/O雙向口。作輸入口時(shí),應(yīng)先軟件置“ 1”。 ④控制引腳:
39、 RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp組成了MSC-51的控制總線。 RST/Vpd(9腳):復(fù)位信號(hào)輸入端(高電平有效)。 第二功能:加+5V
40、備用電源,可以實(shí)現(xiàn)掉電保護(hù)RAM信息不丟失。 ALE/-PROG(30腳):地址鎖存信號(hào)輸出</p><p><b> 原理圖:</b></p><p><b> 四、軟件設(shè)計(jì)</b></p><p> 程
41、序: #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar code table[]={"Clock by Sang S J"};</p><p>
42、; uchar code table1[]={" 00:00:00 "};</p><p> uchar code table2[]={" Alarm Clock_1 "};</p><p> uchar code table3[]={" Alarm On "};</p><p> u
43、char code table4[]={" Alarm Off "};</p><p> uchar code table0[]={" "};</p><p> sbit dula=P2^6; //定義鎖存器鎖存端</p><p> sbit wela=P2^7;</p><p> sbi
44、t lcden=P1^0;</p><p> sbit rs=P1^1;</p><p> uchar a,shi,fen,miao,ww,aa,bb,s3num,s4num,num,yy;</p><p> sbit s1=P2^0;</p><p> sbit s2=P2^1;</p><p> sbit
45、 s3=P2^2;</p><p> sbit s4=P2^3;</p><p> sbit s5=P2^4;</p><p> sbit beep=P2^5;</p><p> void delay(uint z) //延時(shí)函數(shù) 毫秒</p><p><b> {</b><
46、/p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> void write_com(uchar
47、 com) //寫指令函數(shù)</p><p><b> {</b></p><p><b> rs=0;</b></p><p><b> P0=com;</b></p><p><b> delay(5);</b></p><
48、;p><b> lcden=1;</b></p><p><b> delay(5);</b></p><p><b> lcden=0;</b></p><p><b> }</b></p><p> void write_date(uc
49、har date)//寫數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p><b> rs=1;</b></p><p><b> P0=date;</b></p><p><b> delay(5);</b></p>
50、<p><b> lcden=1;</b></p><p><b> delay(5);</b></p><p><b> lcden=0;</b></p><p><b> }</b></p><p> void write_sfm
51、(uchar add,uchar date) //時(shí)分秒的地址+數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p> uchar shi,ge;</p><p> shi=date/10;</p><p> ge=date%10;</p><p> write_com(0
52、x80+0x40+add);</p><p> delay(10);</p><p> write_date(0x30+shi);</p><p> delay(10);</p><p> write_date(0x30+ge);</p><p> delay(10);</p><p>
53、;<b> }</b></p><p> void write_sfm1(uchar add,uchar date) //時(shí)分秒的地址+數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p> uchar shi,ge;</p><p> shi=date/10;</p&
54、gt;<p> ge=date%10;</p><p> write_com(0x80+add);</p><p> delay(10);</p><p> write_date(0x30+shi);</p><p> delay(10);</p><p> write_date(0x30+g
55、e);</p><p> delay(10);</p><p><b> }</b></p><p> void init() //初始化函數(shù)</p><p><b> {</b></p><p> dula=0;//關(guān)閉兩鎖存器鎖存端,防止操作液晶時(shí)數(shù)碼管會(huì)
56、出亂碼</p><p><b> wela=0;</b></p><p><b> lcden=0;</b></p><p> write_com(0x38); //顯示模式設(shè)置</p><p> write_com(0x0c); //開(kāi)顯示 </p><p
57、> write_com(0x06); //光標(biāo)設(shè)置</p><p> write_com(0x01); //顯示清屏</p><p> write_com(0x80); //光標(biāo)初始地址</p><p> for(num=0;num<16;num++)</p><p><b> {</b
58、></p><p> write_date(table[num]);</p><p> delay(10);</p><p><b> }</b></p><p> write_com(0x80+0x40);</p><p> for(num=0;num<16;num++)&
59、lt;/p><p><b> {</b></p><p> write_date(table1[num]);</p><p> delay(10);</p><p><b> }</b></p><p> TMOD=0x01; //設(shè)置定
60、時(shí)器0為工作方式1</p><p> TH0=(65536-50000)/256; //裝初值,定時(shí)50ms</p><p> TL0=(65536-50000)%256;</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p>
61、<p><b> TR0=1;</b></p><p><b> }</b></p><p> void keyscan() //鍵盤函數(shù)</p><p><b> {</b></p><p> uchar s1num;</p>
62、<p><b> if(s1==0)</b></p><p><b> {</b></p><p><b> delay(5);</b></p><p><b> if(s1==0)</b></p><p><b> {&l
63、t;/b></p><p><b> s1num++;</b></p><p> while(!s1);</p><p> if(s1num==1) //光標(biāo)跳到秒位置閃爍</p><p><b> {</b></p><p><b> T
64、R0=0;</b></p><p> write_com(0x80+0x40+10);</p><p> write_com(0x0f);</p><p><b> }</b></p><p> if(s1num==2) //光標(biāo)跳到分位置閃爍</p><p>&l
65、t;b> {</b></p><p> write_com(0x80+0x40+7);</p><p> write_com(0x0f);</p><p><b> }</b></p><p> if(s1num==3) //光標(biāo)跳到時(shí)位置閃爍</p><p&
66、gt;<b> {</b></p><p> write_com(0x80+0x40+4);</p><p> write_com(0x0f);</p><p><b> }</b></p><p> if(s1num==4) //恢復(fù)時(shí)鐘</p><p>
67、;<b> {</b></p><p><b> TR0=1;</b></p><p> write_com(0x0c); //開(kāi)顯示 </p><p> write_com(0x06); //光標(biāo)設(shè)置</p><p><b> s1num=0;</b>
68、;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(s1num!=0)</p><p><b> {</b></p>
69、<p> if(s1num==1) //調(diào)整秒鐘</p><p><b> {</b></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p><b> delay(5);</b
70、></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p> while(!s2);</p><p><b> miao++;</b></p><p> if(miao==60)<
71、/p><p><b> miao=0;</b></p><p><b> }</b></p><p> write_sfm(10,miao);</p><p><b> }</b></p><p><b> }</b><
72、/p><p> if(s1num==2)//調(diào)整分鐘</p><p><b> {</b></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p><b> delay(5);&
73、lt;/b></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p> while(!s2);</p><p><b> fen++;</b></p><p> if(fen==60)&
74、lt;/p><p><b> fen=0;</b></p><p><b> }</b></p><p> write_sfm(7,fen);</p><p><b> }</b></p><p><b> }</b><
75、/p><p> if(s1num==3) //調(diào)整小時(shí)</p><p><b> {</b></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p><b> delay(5);
76、</b></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p> while(!s2);</p><p><b> shi++;</b></p><p> if(shi==24)
77、</p><p><b> shi=0;</b></p><p><b> }</b></p><p> write_sfm(4,shi);</p><p><b> }</b></p><p><b> }</b><
78、;/p><p><b> }</b></p><p><b> //鬧鐘</b></p><p><b> if(s3==0)</b></p><p><b> {</b></p><p> delay(10);</p&
79、gt;<p><b> if(s3==0)</b></p><p><b> {</b></p><p><b> s3num++;</b></p><p> while(!s3);</p><p> if(s3num==1)</p>&l
80、t;p><b> {</b></p><p><b> ww=1;</b></p><p> write_com(0x01);</p><p> write_com(0x80);</p><p> for(num=0;num<16;num++)</p><p
81、><b> {</b></p><p> write_date(table1[num]);</p><p> delay(10);</p><p><b> }</b></p><p> write_com(0x80+0x40); //光標(biāo)初始地址</p>&l
82、t;p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_date(table2[num]);</p><p> delay(10);</p><p><b> }</b></p><p&g
83、t;<b> }</b></p><p> if(s3num==2)</p><p><b> {</b></p><p><b> yy=1;</b></p><p><b> ww=0;</b></p><p>
84、write_com(0x01); </p><p> write_com(0x80);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_date(table[num]);</p><p> del
85、ay(10);</p><p><b> }</b></p><p> write_com(0x80+0x40);</p><p> for(num=0;num<16;num++)</p><p><b> { </b></p><p> writ
86、e_date(table1[num]);</p><p> delay(10);</p><p><b> } </b></p><p> write_sfm(4,shi);</p><p> write_sfm(7,fen);</p><p> write_sfm(10,mia
87、o);</p><p><b> s3num=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(s4
88、==0)</b></p><p><b> {</b></p><p><b> delay(5);</b></p><p><b> if(s4==0)</b></p><p><b> {</b></p><p&
89、gt;<b> s4num++;</b></p><p> while(!s1);</p><p> if(s4num==1) //光標(biāo)跳到分位置閃爍</p><p><b> {</b></p><p> write_com(0x80+7);</p><p
90、> write_com(0x0f);</p><p><b> }</b></p><p> if(s4num==2) //光標(biāo)跳到時(shí)位置閃爍</p><p><b> {</b></p><p> write_com(0x80+4);</p><p
91、> write_com(0x0f);</p><p><b> }</b></p><p> if(s4num==3) </p><p><b> {</b></p><p> write_com(0x0c); //開(kāi)顯示 </p><p&g
92、t; write_com(0x06); //光標(biāo)設(shè)置</p><p><b> s4num=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
93、<p> if(s4num!=0)</p><p><b> {</b></p><p> if(s4num==1)//調(diào)整分鐘</p><p><b> {</b></p><p><b> if(s2==0)</b></p><
94、;p><b> {</b></p><p><b> delay(5);</b></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p> while(!s2);</p>&
95、lt;p><b> bb++;</b></p><p> if(bb==60)</p><p><b> bb=0;</b></p><p><b> }</b></p><p> write_sfm1(7,bb);</p><p>&l
96、t;b> }</b></p><p><b> }</b></p><p> if(s1num==2) //調(diào)整小時(shí)</p><p><b> {</b></p><p><b> if(s2==0)</b></p><p
97、><b> {</b></p><p><b> delay(5);</b></p><p><b> if(s2==0)</b></p><p><b> {</b></p><p> while(!s2);</p><
98、;p><b> aa++;</b></p><p> if(aa==24)</p><p><b> aa=0;</b></p><p><b> }</b></p><p> write_sfm1(4,aa);</p><p><
99、b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(s5==0)</b></p><p><b> {</b></p><p>
100、 delay(10);</p><p><b> if(s5==0)</b></p><p><b> {</b></p><p> while(!s5);</p><p> write_com(0x01); //顯示清屏</p><p> write_co
101、m(0x80); //光標(biāo)初始地址</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_date(table[num]);</p><p> delay(10);</p><p><b&g
102、t; }</b></p><p> write_com(0x80+0x40);</p><p> for(num=0;num<16;num++)</p><p><b> {</b></p><p> write_date(table1[num]);</p><p>
103、 delay(10);</p><p><b> }</b></p><p> write_sfm(4,shi);</p><p> write_sfm(7,fen);</p><p> write_sfm(10,miao);</p><p><b> }</b>&
104、lt;/p><p><b> }</b></p><p><b> } </b></p><p> void main()</p><p><b> {</b></p><p><b> init();</b></p&g
105、t;<p><b> ww=0;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> keyscan();</p><p><b> if(yy==1)</b><
106、/p><p><b> {</b></p><p> if(shi==aa&&fen==bb)</p><p><b> {</b></p><p><b> beep=0;</b></p><p> delay(1000);<
107、;/p><p><b> beep=1;</b></p><p> delay(1000);</p><p><b> beep=0;</b></p><p> delay(1000);</p><p><b> beep=1;</b></p
108、><p><b> yy=0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
109、/p><p> void timer0() interrupt 1</p><p><b> {</b></p><p> TH0=(65536-50000)/256; //重裝初值</p><p> TL0=(65536-50000)%256;</p><p><b> a
110、++;</b></p><p> if(a==20)//定時(shí)到達(dá)1s</p><p><b> {</b></p><p><b> a=0;</b></p><p><b> miao++;</b></p><p> if(
111、s3num==2)</p><p><b> {</b></p><p> if(shi==aa&&fen==bb)</p><p><b> {</b></p><p><b> beep=0;</b></p><p> de
112、lay(1000);</p><p><b> beep=1;</b></p><p> delay(1000);</p><p><b> beep=0;</b></p><p> delay(1000);</p><p><b> beep=1;<
113、;/b></p><p><b> }</b></p><p><b> } </b></p><p> if(miao==60)</p><p><b> {</b></p><p><b> miao=0;</
114、b></p><p><b> fen++;</b></p><p> if(fen==60)</p><p><b> {</b></p><p><b> fen=0;</b></p><p><b> shi++;<
115、/b></p><p> if(shi==24)</p><p><b> {</b></p><p><b> shi=0;</b></p><p><b> }</b></p><p><b> if(ww==0)</
116、b></p><p><b> {</b></p><p> write_sfm(4,shi);</p><p><b> }</b></p><p><b> }</b></p><p><b> if(ww==0)</
117、b></p><p><b> {</b></p><p> write_sfm(7,fen);</p><p><b> }</b></p><p><b> }</b></p><p><b> if(ww==0)</
118、b></p><p><b> {</b></p><p> write_sfm(10,miao);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&
119、lt;/p><p> 五、仿真過(guò)程與仿真結(jié)果</p><p><b> PDB仿真:</b></p><p><b> 元器件清單:</b></p><p><b> 六、安裝與調(diào)試</b></p><p> 制板過(guò)程:打印預(yù)覽-----轉(zhuǎn)印---
120、--腐蝕-----轉(zhuǎn)孔-----焊接…</p><p><b> 焊接情況;</b></p><p><b> 七、結(jié)論與心得</b></p><p> 經(jīng)過(guò)一學(xué)期的學(xué)習(xí),我們完成了這次單片機(jī)電子時(shí)鐘設(shè)計(jì),通過(guò)這次的設(shè)計(jì)使我認(rèn)識(shí)到本人對(duì)單片機(jī)方面的知識(shí)知道的太少了,對(duì)于書本上的很多知識(shí)還不能靈活運(yùn)用,尤其是對(duì)程序設(shè)計(jì)
121、語(yǔ)句的理解和運(yùn)用,不能夠充分理解每個(gè)語(yǔ)句的具體含義,導(dǎo)致編程的程序過(guò)于復(fù)雜,使得需要的存儲(chǔ)空間增大。損耗了過(guò)多的內(nèi)存資源。</p><p> 本次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我所學(xué)到的知識(shí)運(yùn)用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識(shí),而我們應(yīng)把所學(xué)的用到我們現(xiàn)實(shí)的生活中去,此次的電子時(shí)鐘設(shè)計(jì)給我奠定了一個(gè)實(shí)踐基礎(chǔ),我會(huì)在以后的學(xué)習(xí)、生活中磨練自
122、己,使自己適應(yīng)于以后的競(jìng)爭(zhēng),同時(shí)在查找資料的過(guò)程中我也學(xué)到了許多新的知識(shí),在和同學(xué)協(xié)作過(guò)程中增進(jìn)同學(xué)間的友誼,使我對(duì)團(tuán)隊(duì)精神的積極性和重要性有了更加充分的理解。</p><p> 實(shí)踐中獲得的知識(shí)能讓我對(duì)單片機(jī)的知識(shí)有更好的認(rèn)識(shí)和理解。雖然這次的課程設(shè)計(jì)我參考了一些文獻(xiàn)資料,沒(méi)有做到創(chuàng)新,但在對(duì)程序的讀寫過(guò)程中我明白了許多。這次課程設(shè)計(jì)的最大收獲是只有把理論用到實(shí)踐中我們才能真正掌握好所學(xué)知識(shí)。相信這對(duì)我以后的
123、課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)將會(huì)有很大的幫助!</p><p><b> 八、參考文獻(xiàn)</b></p><p> [1] 謝自美.電子線路設(shè)計(jì)?實(shí)驗(yàn)?測(cè)試[M].武漢:華中理工大學(xué)出版社 1992.</p><p> [2] 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社 1993.</p><p> [
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)原理課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告-電子鐘設(shè)計(jì)
- 電子鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)的電子鐘設(shè)計(jì)
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 電子鐘課程設(shè)計(jì)--基于單片機(jī)的電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)---智能電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)-智能電子鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告---多功能電子鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告—led顯示電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)單電子鐘設(shè)計(jì)
- 《單片機(jī)原理與應(yīng)用》課程設(shè)計(jì)--電子鐘系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論