單片機原理 數(shù)碼管動態(tài)顯示實驗-單片機原理-實驗報告材料

上傳人:無*** 文檔編號:83915367 上傳時間:2022-05-02 格式:DOC 頁數(shù):15 大?。?.93MB
收藏 版權申訴 舉報 下載
單片機原理 數(shù)碼管動態(tài)顯示實驗-單片機原理-實驗報告材料_第1頁
第1頁 / 共15頁
單片機原理 數(shù)碼管動態(tài)顯示實驗-單片機原理-實驗報告材料_第2頁
第2頁 / 共15頁
單片機原理 數(shù)碼管動態(tài)顯示實驗-單片機原理-實驗報告材料_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《單片機原理 數(shù)碼管動態(tài)顯示實驗-單片機原理-實驗報告材料》由會員分享,可在線閱讀,更多相關《單片機原理 數(shù)碼管動態(tài)顯示實驗-單片機原理-實驗報告材料(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、word 某某師X學院計算機系 實驗報告 〔2014—2015學年 第 2學期〕 課程名稱 單片機原理 實驗名稱 數(shù)碼管動態(tài)顯示實驗 專 業(yè)計算機科學與技術〔非師X〕 年 級 2012級 學號 B2012102147 某某 王 秋 指導教師 楊烈君 實驗日期 2015.4.17 實驗目的: 1. 鞏固Proteus軟件和Keil軟件的使用方法 2. 學習端口輸入輸出的高級應用

2、3. 掌握7段數(shù)碼管的連接方式和動態(tài)顯示法 4. 掌握查表程序和延時等子程序的設計 實驗要求: 1. 在Proteus軟件中畫好51單片機最小核心電路,包括復位電路和晶振電路 2. 在電路中增加八位7段數(shù)碼管(共陽/共陰自選),將P2口作數(shù)據(jù)輸出口與7段數(shù)碼管數(shù)據(jù)引腳相連 ,P3引腳輸出位選控制信號 3. 在Keil軟件中編寫程序,采用動態(tài)顯示法,實現(xiàn)數(shù)碼管分別顯示數(shù)字1-8 4. 實現(xiàn)指定數(shù)值的顯示 〔可使用 緩存數(shù)值〕 5. 實現(xiàn)類似時鐘的效果,如“ 13-23-25〞 13時23分25秒 6. 實現(xiàn)時鐘的自動計時 7. 擴展要求: 結合LED顯示,實現(xiàn)帶數(shù)碼

3、顯示的交通燈 實驗設備〔環(huán)境〕: 1. 計算機 2. Proteus ISIS 7 Professional應用程序 3. Keil應用程序 實驗內容: 數(shù)碼管動態(tài)顯示技術 要某某現(xiàn): 1. 動態(tài)顯示法,實現(xiàn)數(shù)碼管分別顯示數(shù)字1-8; 2. 實現(xiàn)指定數(shù)值的顯示 〔可使用 緩存數(shù)值〕 〔33355223〕; 3. 實現(xiàn)類似時鐘的效果,如“ 13-23-25〞 13時23分25秒; 4. 實現(xiàn)時鐘的自動計時; 擴展要求: 結合LED顯示,實現(xiàn)帶數(shù)碼顯示的交通燈; 實驗步驟、實驗結果與分析: 1 實驗步驟: 2、在“庫〞下拉菜單中,選中“拾取元件〞〔快

4、捷鍵P〕,分別選擇以下元件:AT89C51、CAP、CAP-ELEC、CRYSTAL、RESPACK-8。 3、構建仿真電路: 連接圖 顯示1-8 顯示33355223 時鐘自動計時 連接圖 紅綠燈效果圖1 紅綠燈效果圖2 4、創(chuàng)建一個Keil應用程序:新建一個工程項目文件;為工程選擇目標器件〔AT89C52〕;為工程項目創(chuàng)建源程序文件并輸入程序代碼;保存創(chuàng)建的源程序項目文件;把源程序文件添加到項目中。 5、把用戶程序經(jīng)過編譯后生成的HEX文件添加到仿真電路中的處理器中〔編輯元件→文件路徑〕 2 實驗程序 <

5、流程圖> 程序源代碼: 1. 動態(tài)顯示法,實現(xiàn)數(shù)碼管分別顯示數(shù)字1-8; #include #define uchar unsigned char #define uint unsigned int uchar code Ledcode[]={ 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //定義一個數(shù)組里面放入1-8 void delay(uint x) { while(x--); } void main() { uchar i; while(1) {

6、 for(i=0;i<8;i++) { P3=1< unsigned char code LedCode[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 }; unsigned char D

7、ispBuf[8]={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< unsigned char code LedC

8、ode[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned char Hour=13,Min=23,Sec=25; unsigned char DispBuf[8]; void delay(unsigned int x) { while(x--); } void PutTime() { DispBuf[7]=Sec%10; //取對應秒數(shù)的個位放在最右邊顯示 DispBuf[6]=Sec/10; //取對應秒數(shù)的十位放在右起第二位顯示 DispBuf[5]=10; /

9、/此處表示秒跟分之間用橫桿隔開 DispBuf[4]=Min%10; DispBuf[3]=Min/10; DispBuf[2]=10; DispBuf[1]=Hour%10; DispBuf[0]=Hour/10; } void main() { long n=0; while(1) { unsigned char i; PutTime(); for(i=0;i<8;i++) { P3=1<

10、 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 DispBuf[8]; void delay(unsigned int x) { while(x--); } void PutTime() { DispBuf[7]=Sec%10; DispBuf[6]=Sec/10; DispBuf[5]=10; DispBuf[4]=Min%10; Di

11、spBuf[3]=Min/10; DispBuf[2]=10; DispBuf[1]=Hour%10; DispBuf[0]=Hour/10; } void main() { long n=0; while(1) { unsigned char i,ms; //定義一個ms用于控制秒數(shù)加一的延時 PutTime(); for(i=0;i<8;i++) { P3=1<=20) { Sec++;ms=0; } if

12、(Sec>=60) //表示進位,當秒滿六十如此向分鐘進一,同時秒數(shù)清零 { Min++;Sec=0; } if(Min>=60) { Hour++;Min=0; } if(Hour>=24) //當小時數(shù)滿24小時時,如此小時數(shù)清零,完成計時 { Hour=0; } } } 5. 擴展要求: 結合LED顯示,實現(xiàn)帶數(shù)碼顯示的交通燈; #include "reg52.h" #define uint unsigned int #define uchar unsigned char #define Disp_Null 10 uchar code Le

13、dCode[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x40}; uchar DispBuf[8]; sbit r1=P2^0;sbit y1=P2^1;sbit g1=P2^2; sbit r2=P2^3;sbit y2=P2^4;sbit g2=P2^5; uchar sec1;sec2;sec; void delay(uint x) { while(x--); } void PntTime( ) { DispBuf[3]=sec2 % 10; DispBuf[2]

14、=sec2 / 10; DispBuf[1]=sec1 % 10; DispBuf[0]=sec1 / 10; } void display() { uchar i; for (i = 0;i < 8;i ++) { P3=0; P1=~LedCode[ DispBuf[i] ]; P3=1<

15、play(); ms++; if( ms >=60){ ms=0; sec=(sec+1) % 60; //定義一個計數(shù)變量,使其一直保持在60內 } if( sec <20){ //sec在20以內時g2、r1亮 sec1=20-sec; sec2=30-sec; r1=1;y1=0;g1=0; r2=0;y2=0;g2=1; } if(sec>=20 && sec<30){ //sec在20與30之間時y2、r1亮 sec1=30-sec; sec2=30-sec; r1=1;y1=0;g1=0;

16、 r2=0;y2=1;g2=0; } if(sec>=30 && sec<50){ //g1、r2在sec增加20內亮 sec1=60-sec; sec2=50-sec; r1=0;y1=0;g1=1; r2=1;y2=0;g2=0; } if(sec>=50){ sec1=60-sec; sec2=60-sec; r1=0;y1=1;g1=0; r2=1;y2=0;g2=0; } } } 過程總結: 本實驗是將單片機的P2口做為輸出口,將四個數(shù)碼管的七段引腳分別接到P2.0

17、至P2.7.由于電路中采用共陽極的數(shù)碼管,所以當P2端口相應的引腳為0時,對應的數(shù)碼管段點亮。程序中預設了數(shù)字0-9的段碼。由于是讓八個數(shù)碼管顯示不同的數(shù)值,所以要用掃描的方式來實現(xiàn)。因此可定義掃描函數(shù),接到單片機的P3口。 在實驗中,預設的數(shù)字段碼表存放在數(shù)組LedCode中,由于段碼表是固定的,因此存儲類型可設為code.在Proteus軟件中按照要求畫出電路,再利用Keil軟件按需要實現(xiàn)的功能編寫c程序,生成Hex文件,把Hex文件導到Proteus軟件中進展仿真。 心得體會: 實驗數(shù)碼管顯示程序的編程方法 1〕先準備好要顯示的數(shù)據(jù),放入相應的顯示存儲單元中。 2〕根據(jù)要使用的

18、數(shù)碼管的具體位置來確定掃描初值和掃描方向。 3〕根據(jù)使用數(shù)碼管的個數(shù)來確定掃描的位數(shù)。 4〕查表將要顯示的數(shù)據(jù)轉換為能使數(shù)碼管正確顯示相對應的段碼。 5〕分時送段碼和位碼,數(shù)碼管開始循環(huán)顯示。 指導教師評語: 1、完成所有規(guī)定的實驗內容,實驗步驟正確,結果正確; 2、完成絕大局部規(guī)定的實驗內容,實驗步驟正確,結果正確; 3、完成大局部規(guī)定的實驗內容,實驗步驟正確,結果正確; 評定等級:A〔優(yōu)秀〕 B〔良好〕 C〔中等〕 D〔與格〕 E〔不與格〕 成績評定 教師簽字 年月日 備注: 注:1、報告內的項目或設置,可根據(jù)實際情況加以補充和調整 2、教師批改學生實驗報告應在學生提交實驗報告10日內 15 / 15

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

最新文檔

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!