




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、寧德師范學(xué)院計(jì)算機(jī)系實(shí)驗(yàn)報(bào)告(20142015學(xué)年 第2學(xué)期)課程名稱單片機(jī)原理實(shí)驗(yàn)名稱數(shù)碼管動(dòng)態(tài)顯示實(shí)驗(yàn)專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)(非師范)年 級(jí) 2012 級(jí)學(xué)號(hào)B2012102147 姓名 王 秋指導(dǎo)教師楊烈君實(shí)驗(yàn)日期2015.4.17實(shí)驗(yàn)?zāi)康?1 .鞏固Proteus軟件和Keil軟件的使用方法2 .學(xué)習(xí)端口輸入輸出的高級(jí)應(yīng)用3 .掌握7段數(shù)碼管的連接方式和動(dòng)態(tài)顯示法4 .掌握查表程序和延時(shí)等子程序的設(shè)計(jì)實(shí)驗(yàn)要求:1 .在Proteus軟件中畫好51單片機(jī)最小核心電路,包括復(fù)位電路和晶振電路2 .在電路中增加八位 7段數(shù)碼管(共陽/共陰自選),將P2 口作數(shù)據(jù)輸出口與 7段數(shù)碼管數(shù)據(jù) 引腳相
2、連,P3引腳輸出位選控制信號(hào)3 .在Keil軟件中編寫程序,采用動(dòng)態(tài)顯示法,實(shí)現(xiàn)數(shù)碼管分別顯示數(shù)字1-84 .實(shí)現(xiàn)指定數(shù)值的顯示(可使用 緩存數(shù)值)5 . 實(shí)現(xiàn)類似時(shí)鐘的效果,如“ 13-23-25 ” 13時(shí)23分25秒6 .實(shí)現(xiàn)時(shí)鐘的自動(dòng)計(jì)時(shí)7 .擴(kuò)展要求:結(jié)合LED顯示,實(shí)現(xiàn)帶數(shù)碼顯示的交通燈實(shí)驗(yàn)設(shè)備(環(huán)境):1. .計(jì)算機(jī)2. Proteus ISIS 7 Professional應(yīng)用程序3. Keil應(yīng)用程序?qū)嶒?yàn)內(nèi)容:數(shù)碼管動(dòng)態(tài)顯示技術(shù)要求實(shí)現(xiàn):1 .動(dòng)態(tài)顯示法,實(shí)現(xiàn)數(shù)碼管分別顯示數(shù)字1-8;2 .實(shí)現(xiàn)指定數(shù)值的顯示(可使用 緩存數(shù)值)(33355223);3 .實(shí)現(xiàn)類似時(shí)鐘的效果,
3、如“ 13-23-25 ” 13時(shí)23分25秒;4 .實(shí)現(xiàn)時(shí)鐘的自動(dòng)計(jì)時(shí);擴(kuò)展要求:結(jié)合LED顯示,實(shí)現(xiàn)帶數(shù)碼顯示的交通燈;實(shí)驗(yàn)步驟、實(shí)驗(yàn)結(jié)果及分析:1實(shí)驗(yàn)步驟:1、使用Proteus ISIS 7 Professional應(yīng)用程序,建立一個(gè) .DSN文件2、在“庫”下拉菜單中,選中“拾取元件”(快捷鍵P),分別選擇以下元件:AT89C5I CAR CAP-ELEC CRYSTAL RESPACK-83、構(gòu)建仿真電路:連接圖顯示1-8顯示 33355223顯示時(shí)間13.23.25時(shí)鐘自動(dòng)計(jì)時(shí)連接圖紅綠燈效果圖1紅綠燈效果圖24、創(chuàng)建一個(gè) Keil應(yīng)用程序:新建一個(gè)工程項(xiàng)目文件;為工程選擇目標(biāo)器
4、件(AT89C52);為工程項(xiàng)目創(chuàng)建源程序文件并輸入程序代碼;保存創(chuàng)建的源程序項(xiàng)目文件;把源程序文件添加到項(xiàng)目中。5、把用戶程序經(jīng)過編譯后生成的HEX文件添加到仿真電路中的處理器中(編輯元件一文件路徑)2實(shí)驗(yàn)程序 < 流程圖>程序源代碼:1.動(dòng)態(tài)顯示法,實(shí)現(xiàn)數(shù)碼管分別顯示數(shù)字1-8;#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Ledcode=0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/定義一個(gè)數(shù)組里面放入1-
5、8void delay(uint x) while(x-);)void main() uchar i; while(1) for(i=0;i<8;i+) P3=1<<i;/P3口表示從第一個(gè)位開始顯示數(shù)值P2=Ledcodei; /P2口用來顯示所需要顯示的數(shù)值delay(500); ) ) )2 .實(shí)現(xiàn)指定數(shù)值的顯示(可使用緩存數(shù)值) (33355223);#include<reg51.h>unsigned char code LedCode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40);unsi
6、gned char DispBuf8=3,3,3,5,5,2,2,3; /指定要顯示的數(shù)的位置void delay(unsigned int x) while(x-);void main()unsigned int i;for(i=0;i<8;i+)P3=1<<i;P2=LedCodeDispBufi; / 顯示指定數(shù)的位置 delay(500); 3 .實(shí)現(xiàn)類似時(shí)鐘的效果,如“ 13-23-25 ” 13時(shí)23分25秒;#include<reg51.h>unsigned char code LedCode=0x3f,0x06,0x5b,0x4f,0x66,0x6
7、d,0x7d,0x07,0x7f,0x6f,0x40;unsigned char Hour=13,Min=23,Sec=25;unsigned char DispBuf8;void delay(unsigned int x)while(x-);void PutTime()DispBuf7=Sec%10; /取對(duì)應(yīng)秒數(shù)的個(gè)位放在最右邊顯示DispBuf6=Sec/10; /取對(duì)應(yīng)秒數(shù)的十位放在右起第二位顯示DispBuf5=10; /此處表示秒跟分之間用橫桿隔開DispBuf4=Min%10;DispBuf3=Min/10;DispBuf2=10;DispBuf1=Hour%10;DispBuf
8、0=Hour/10;void main()long n=0;while(1)unsigned char i;PutTime();for(i=0;i<8;i+)P3=1<<i;P2=LedCodeDispBufi;delay(500);4 .實(shí)現(xiàn)時(shí)鐘的自動(dòng)計(jì)時(shí);#include<reg51.h>unsigned char code LedCode口=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;unsigned char Hour=13,Min=23,Sec=25;unsigned char DispB
9、uf8;void delay(unsigned int x)while(x-);void PutTime()DispBuf7=Sec%10;DispBuf6=Sec/10;DispBuf5=10;DispBuf4=Min%10;DispBuf3=Min/10;DispBuf2=10;DispBuf1=Hour%10;DispBuf0=Hour/10;void main()long n=0;while(1)unsigned char i,ms; /定義一個(gè) ms用于控制秒數(shù)加一的延時(shí)PutTime();for(i=0;i<8;i+)P3=1<<i;P2=LedCodeDispB
10、ufi;delay(500);ms+; /控制加一的時(shí)延if(ms>=20)Sec+;ms=0;if(Sec>=60) /表示進(jìn)位,當(dāng)秒滿六十則向分鐘進(jìn)一,同時(shí)秒數(shù)清零Min+;Sec=0;if(Min>=60)Hour+;Min=0;if(Hour>=24) /當(dāng)小時(shí)數(shù)滿24小時(shí)時(shí),則小時(shí)數(shù)清零,完成計(jì)時(shí)Hour=0;5 .擴(kuò)展要求:結(jié)合LED顯示,實(shí)現(xiàn)帶數(shù)碼顯示的交通燈;#include "reg52.h"# define uint unsigned int# define uchar unsigned char# define Disp_Nul
11、l 10uchar code LedCode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;uchar DispBuf8;sbit U=P2A0;sbit y1=P2A1;sbit g1=P2A2;sbit r2=P2A3;sbit y2=P2A4;sbit g2=P2A5;uchar sec1;sec2;comsec;void delay(uint x)while(x-);void PntTime()DispBuf3=sec2 % 10;DispBuf2=sec2 /10;DispBuf1=sec1 % 10;DispBuf0=
12、sec1 /10;void display。uchar i;for (i = 0;i < 8;i +)P3=0;P1=LedCode DispBufi;P3=1<<i;delay(100);void main ()while(1)uchar ms;PntTime();display。;ms+;if( ms >=60)ms=0;comsec=(comsec+1) % 60; 定義一個(gè)計(jì)數(shù)變量,使其一直保持在 60內(nèi) if( comsec <20) /comsec在 20 以內(nèi)時(shí) g2、r1 亮sec1=20-comsec; sec2=30-comsec;r1=1;y
13、1=0;g1=0;r2=0;y2=0;g2=1;if(comsec>=20 && comsec<30) /comsec 在 20 與 30 之間時(shí) y2、r1 鳧sec1=30-comsec; sec2=30-comsec;r1=1;y1=0;g1=0;r2=0;y2=1;g2=0;if(comsec>=30 && comsec<50) /g1、r2 在 comsec增力口 20 內(nèi)亮sec1=60-comsec; sec2=50-comsec;r1=0;y1=0;g1=1;r2=1;y2=0;g2=0;)if(comsec>=50
14、)sec1=60-comsec; sec2=60-comsec;r1=0;y1=1;g1=0;r2=1;y2=0;g2=0;)過程總結(jié):本實(shí)驗(yàn)是將單片機(jī)的 P2 口做為輸出口,將四個(gè)數(shù)碼管的七段引腳分別接到P2.0至P2.7.由于電路中采用共陽極的數(shù)碼管,所以當(dāng)P2端口相應(yīng)的引腳為 0時(shí),對(duì)應(yīng)的數(shù)碼管段點(diǎn)亮。程序中預(yù)設(shè)了數(shù)字0-9的段碼。由于是讓八個(gè)數(shù)碼管顯示不同的數(shù)值,所以要用掃描的方式來實(shí)現(xiàn)。因此可 定義掃描函數(shù),接到單片機(jī)的P3 口。在實(shí)驗(yàn)中,預(yù)設(shè)的數(shù)字段碼表存放在數(shù)組LedCode中,由于段碼表是固定的,因此存儲(chǔ)類型可設(shè)為code.在Proteus軟件中按照要求畫出電路,再利用 Keil軟件按需要實(shí)現(xiàn)的功能編寫 c程序, 生成Hex文件,把Hex文件導(dǎo)到Proteus軟件中進(jìn)行仿真。心得體會(huì):實(shí)驗(yàn)數(shù)碼管顯示程序的編程方法1)先準(zhǔn)備好要顯示的數(shù)據(jù),放入相應(yīng)的顯示存儲(chǔ)單元中。2)根據(jù)要使用的數(shù)碼管的具體位置來確定掃描初值和掃描方向。3)根據(jù)使用數(shù)碼管的個(gè)數(shù)來確定掃描的位數(shù)。4)查表將要顯示的數(shù)據(jù)轉(zhuǎn)換為能使數(shù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公務(wù)員省考管理學(xué)知識(shí)試題及答案
- 食品檢測標(biāo)準(zhǔn)化的試題及答案
- 2024統(tǒng)計(jì)學(xué)核心知識(shí)點(diǎn)測驗(yàn)試題及答案
- 汽車維修工考試題集及答案分析
- 一年級(jí)語文考核的全面回顧與考題實(shí)例分析試題及答案
- 汽車節(jié)能減排的技術(shù)分析與應(yīng)用試題及答案
- 在線調(diào)查的方法與應(yīng)用試題及答案
- 寵物食品營養(yǎng)成分對(duì)比解析考題及答案
- 巡回美容師技能考核試題及答案
- 工務(wù)人員面試題目及答案
- 非機(jī)動(dòng)車交通管理及規(guī)劃研究
- 勞務(wù)派遣及醫(yī)院護(hù)工實(shí)施預(yù)案
- 南方報(bào)業(yè)傳媒集團(tuán)筆試題
- 城投集團(tuán)招聘真題
- 選礦廠尾礦庫初步設(shè)計(jì)方案
- 華電行測題庫及答案2024
- 蘇州市2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(原卷版)
- 不良資產(chǎn)盡職調(diào)查工作底稿表
- 社區(qū)獲得性肺炎教學(xué)演示課件
- 面部整骨培訓(xùn)課件
- 農(nóng)村藍(lán)莓樹補(bǔ)償標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論