版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單原理,數(shù)碼管動態(tài)顯示實驗單原理實驗報告 寧德師范學院計算機系 實驗報告 (xxxx 學年 第 2 學期) 課程名稱 單片機原理 實驗名稱 數(shù)碼管動態(tài)顯示實驗 專 業(yè)計算機科學與技術(非師范) 年 級 xx 級 學號 Bxx102147 姓名 王 秋 指導教師 楊烈君 實驗日期 xx.4.17 實驗目的 : 1. 鞏固 Proteus 軟件和 Keil 軟件的使用方法 2. 學習端口輸入輸出的高級應用 3. 掌握 7 段數(shù)碼管的連接方式和動態(tài)顯示法 4. 掌握查表程序和延時等子程序的設計 實驗 要求: 1. 在 Proteus 軟件中畫好 51 單片機最小核心電路,包括復位電路和晶振電路 2.
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ù)碼顯示的交通燈 實驗設備(環(huán)境): 1(計算機 2(Proteus ISIS 7 Professional 應用程序 3(Keil 應用程序 實驗內容: 數(shù)碼管動態(tài)顯示技術 要
3、求實現(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 實驗步驟: 1、使用 Proteus ISIS 7 Professional 應用程序,建立一個.DSN 文件 2、在“庫”下拉菜單中,選中“拾取元件”(快捷鍵 P),分別選擇以下元件:AT89C51、CAP、CAP-ELEC、 CRYSTAL、RESPACK-8。 3、
4、構建仿真電路: 連接圖 顯示 1-8 顯示 33355223 顯示時間 13.23.25 時鐘自動計時 連接圖 紅綠燈效果圖 1 紅綠燈效果圖 2 4、創(chuàng)建一個 Keil 應用程序:新建一個工程項目文件;為工程選擇目標器件(AT89C52);為工程項目創(chuàng)建源程序文件并輸入程序代碼;保存創(chuàng)建的源程序項目文件;把源程序文件添加到項目中。 5、把用戶程序經(jīng)過編譯后生成的 HEX 文件添加到仿真電路中的處理器中(元件?文件路徑) 2 實驗程序 開始 定義數(shù)組 開始 Ledcode開始 定義數(shù)組 定義數(shù)組 定義數(shù)組 DispbugLedcodeLedcode存放指定數(shù) While 定義 DispbugW
5、hile(1)存放指定數(shù)(1)YYFor 定義子函數(shù) ForN(i=0;i P3=1=60)定義子函數(shù) YPutTime()sec=(,.,sec+1) % 60;,ms=0 While(1)If(sec =20 (i=0;i60)& sec #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()
6、uchar i; while(1) for(i=0;i unsigned char code LedCode= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 ; unsigned 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 unsigned char code LedCode= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0
7、x7d,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; /取對應秒數(shù)的個位放在最右邊顯示 DispBuf6=Sec/10; /取對應秒數(shù)的十位放在右起第二位顯示 DispBuf5=10; /此處表示秒跟分之間用橫桿隔開 DispBuf4=Min%10; DispBuf3=Min/10; DispBuf2=10; DispBuf1=Hour%1
8、0; DispBuf0=Hour/10; void main() long n=0; while(1) unsigned char i; PutTime(); for(i=0;i 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 DispBuf8; void delay(unsigned int x) while(x-); void PutTime() DispBuf7=Sec
9、%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; /定義一個 ms 用于控制秒數(shù)加一的延時 PutTime(); for(i=0;i=60) /表示進位,當秒滿六十則向分鐘進一,同時秒數(shù)清零 Min+;Sec=0; if(Min=60) Hour+;Min=0; if(Hour=24) /當小時數(shù)滿 24 小時
10、時,則小時數(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 LedCode= 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x40; uchar DispBuf8; sbit r1=P20;sbit y1=P21;sbit g1=P22; sbit r2=P23;sbit y2=P24;
11、sbit g2=P25; uchar sec1;sec2;sec; void delay(uint x) while(x-); void PntTime( ) DispBuf3=sec2 % 10; DispBuf2=sec2 / 10; DispBuf1=sec1 % 10; DispBuf0=sec1 / 10; void display() uchar i; for (i = 0;i 8;i +) P3=0; P1=LedCode DispBufi ; P3=1=20 & sec=30 & sec=50) sec1=60-sec; sec2=60-sec; r1=0;y1=1;g1=0;
12、 r2=1;y2=0;g2=0; 過程總結: 本實驗是將單片機的 P2 口做為輸出口,將四個數(shù)碼管的七段引腳分別接到 P2.0 至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ù)要使用的數(shù)碼管的具體位置來確定掃描初值和掃描方向。 3)根據(jù)使用數(shù)碼管的個數(shù)來確定掃描的位數(shù)。 4)查表將要顯示的數(shù)據(jù)轉換為能使數(shù)碼管正確顯示相對應的段碼。 5)分時送段碼和位碼,數(shù)碼管開始循環(huán)顯示。 指導教師評語: 1、完成所有規(guī)定
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語編制課程設計小學
- 石灰法煙氣脫硫課程設計
- 英語興趣班音標課程設計
- 擠壓模課程設計
- 人教部編版七年級歷史下冊全冊教案
- 橢球形塑料模課程設計
- 自制小樂器托班課程設計
- 幼兒園遠足課程設計
- 電力行業(yè)前臺服務總結
- 物流倉儲行業(yè)配送優(yōu)化建議
- 新編英語語法教程第6講.課件
- 月下獨酌(其一)李白
- 七年級上冊數(shù)學壓軸題幾何試卷(帶答案)
- 網(wǎng)絡安全保密教育知識普及培訓課件
- 小學語文-部編版四年級語文上冊第六單元習作:記一次游戲教學設計學情分析教材分析課后反思
- 面向5G網(wǎng)絡建設的站點供電技術應用與發(fā)展
- 裝飾公司與項目經(jīng)理合作協(xié)議
- 接待上級領導工作總結
- 《新時代高校勞動教育理論與實踐教程》教案 第9課 強化勞動安全意識
- 小學數(shù)學項目化教學這:基于教學評一體化的大單元整體設計《測量》
- 洗滌劑常用原料
評論
0/150
提交評論