LED數(shù)碼管系統(tǒng)的設(shè)計與制作_第1頁
LED數(shù)碼管系統(tǒng)的設(shè)計與制作_第2頁
LED數(shù)碼管系統(tǒng)的設(shè)計與制作_第3頁
LED數(shù)碼管系統(tǒng)的設(shè)計與制作_第4頁
LED數(shù)碼管系統(tǒng)的設(shè)計與制作_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、任務(wù)三:LED數(shù)碼管系統(tǒng)的設(shè)計與制作一、實訓(xùn)目的:通過LED數(shù)碼管實現(xiàn)計時器的設(shè)計、仿真、制作、調(diào)試,讓學(xué)生從外到內(nèi),從直觀到抽象,逐漸理解單片機(jī)應(yīng)用技術(shù)、掌握中斷的使用。二、實訓(xùn)器材: 焊接工具、LED數(shù)碼管實現(xiàn)計時器元件、帶仿真軟件的電腦、編程器3、 實驗內(nèi)容:(一)數(shù)碼管靜態(tài)顯示1、用PROTEUS軟件畫硬件電路:圖1 數(shù)碼管靜態(tài)顯示原理圖2、元件清單元器件名稱元器件庫名稱數(shù)量元器件名稱元器件庫名稱數(shù)量CRYSTAL(12MHz)Miscellaneous11位共陽數(shù)碼管7SEG-MPX4-CA1AT89C51Microprocessor IC1排阻(220)Resistors1CAP

2、33pF(電解電容)Capacitors2按鍵BUTTON1CAP 10F(瓷片電容)Capacitors13、參考程序#include unsigned int a=;/定義無符號變量avoid main()while(1)P3 = 0XC0;/顯示“0”while(a-);/延時,當(dāng)a減到0時,向下運行 P3 = 0XF9;/顯示“1”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0XA4;/顯示“2”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0XB0;/顯示“3”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X99;/顯示“4”while(

3、a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X92;/顯示“5”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X82;/顯示“6”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0XF8;/顯示“7”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X80;/顯示“8”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X90;/顯示“9”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X88;/顯示“A”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X83;/顯示“B”while(a-);/延時,當(dāng)a減到0

4、時,向下運行P3 = 0XC6;/顯示“C”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0XA1;/顯示“D”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X86;/顯示“E”while(a-);/延時,當(dāng)a減到0時,向下運行P3 = 0X8E;/顯示“F”while(a-);/延時,當(dāng)a減到0時,向下運行2、 如何修改程序,使程序更加簡短,試寫出程序(2) 數(shù)碼管的動態(tài)顯示1、繪制如下電路2、 元器件清單元器件名稱元器件庫名稱數(shù)量元器件名稱元器件庫名稱數(shù)量CRYSTAL(12MHz)Miscellaneous14位共陰數(shù)碼管7SEG-MPX4-CC1AT89C

5、51Microprocessor IC1排阻(220)Resistors1CAP 33pF(電解電容)Capacitors2按鍵BUTTON1CAP 10F(瓷片電容)Capacitors13、 參考程序#include sbitP2_0 = P20;sbitP2_1 = P21;sbitP2_2 = P22;sbitP2_3 = P23;sbitP2_4 = P24;sbitP2_5 = P25;sbitP2_6 = P26;sbitP2_7 = P27;/*/unsigned char code led_code21=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0

6、X07,0X7F,0X6F, 0XBF,0X86,0XDB,0XCF,0XE6,0XED,0XFD,0X87,0XFF,0XEF,0X40; /定義09以其帶小數(shù)點和“-”的顯示碼unsigned char led_reg8=0,0,20,0,0,20,0,0; /定義顯示數(shù)碼緩存器unsigned char hour;/定義時鐘變量unsigned char min; /定義分鐘變量unsigned char sec; /定義秒鐘變量unsigned int adj_sec=0;/定義秒鐘調(diào)整變量#defineSECOND500/定義1秒鐘的字符常量/* function:delay(uns

7、igned char i) 功 能:延時程序*/void delay(unsigned char i)unsigned char j,k;for(k=0;ki;k+)for(j=0;jSECOND)/判斷1秒鐘是否到adj_sec=0;/到了1秒鐘,秒調(diào)整變量清零sec+;/秒鐘變量加1if(sec59)/判斷1分鐘是否到sec=0;/到了1分鐘,秒鐘變量清零min+;/分鐘變量加1if(min59)/判斷1小時是否到min=0;/到了1小時,分鐘變量清零hour+;/時鐘變量加1if(hour23)/判斷24小時是否到hour=0;/24小時到了,時鐘變量清零led_reg0=hour/10

8、;/提取時鐘的十位led_reg1=hour%10;/提取時鐘的個位led_reg3=min/10;/提取分鐘的十位led_reg4=min%10;/提取分鐘的個位led_reg6=sec/10;/提取秒鐘的十位led_reg7=sec%10;/提取秒鐘的個位/*mian()*/void main()P0=0X00;/P0端口輸出低電平P2=0XFF;/P2端口輸出高電平while(1)clock(); /調(diào)用時鐘函數(shù)led_show();/調(diào)用顯示函數(shù)delay(5);/調(diào)用延時函數(shù)(三)設(shè)計和制作一個簡易時鐘(數(shù)碼管采用動態(tài)顯示)1、元件清單元件數(shù)量4位共陰數(shù)碼管18線排線插座28線的排線

9、1根2、用萬用表檢測數(shù)碼管的公共端和位選端,并畫出數(shù)碼管的引腳圖3、電路原理圖4、 修改參考程序2,調(diào)試并燒錄程序,查看電路運行情況,并寫出修改后的程序思考:59分59秒的減計時程序如何設(shè)計(四)、函數(shù)的應(yīng)用求三角形的面積#include#includefloat area(float x, float y, float z) float p,s; p=(x+y+z)/2; s=sqrt(p*(p-x)*(p-y)*(p-z); return s;void main() float a,b,c,S; scanf(%f,%f,%f,&a,&b,&c); S=area(a,b,c); printf

10、(The area is=%fn,S);求兩個數(shù)中的大者#includevoid main()int max(float x,float y);float a,b;int c;scanf(%f,%f,&a,&b);c=max(a,b);printf(c=%d,c);int max(float x,float y)float z;z=xy?x:y;return (z);注:有形參沒有返回值以及既無形參也無返回值的函數(shù)在具體項目例程里面講解。(五)數(shù)組的應(yīng)用 一維數(shù)組元素的引用#includevoid main() int i,a10; for(i=0;i=0;i-) printf(%d,ai);

11、 printf(n);注:也可以將數(shù)組a用初始化賦值的方法實現(xiàn)上述功能。#includevoid main() int i; int a10=0,1,2,3,4,5,6,7,8,9; for(i=9;i=0;i-) printf(%d,ai); printf(n);字符數(shù)組的引用#includevoid main() char a10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i=9;i+) printf(%c,ai); printf(n);注:將字符數(shù)組的輸入輸出方式改為整個字符串一次輸入和輸出方式#includevoid main() int i; char

12、a10; gets(a); printf(%s,a); printf(n);問:scanf運用在%s的輸入中應(yīng)注意的事項#includevoid main() int i; char a10; scanf(%s,a) ; printf(%s,a); printf(n);輸入 I am a boy,觀察得到結(jié)果是什么,為什么?修改成如下格式呢?#includevoid main() int i; char a10,b10,c10,d10; scanf(%s%s%s%s,a,b,c,d) ; printf(%s %s %s %s,a,b,c,d); printf(n);#include#define N 10int fun(int x) if(x=60) return 1; elsereturn 0;*(六)數(shù)組作為函數(shù)的參數(shù)(1)計算一個班級的及格同學(xué)的個數(shù)void main() int cjN=76,80,65,60,58,91,47,63,70,85; int count =0,k; for(k=0;kN;k+) if(fun(cjk) count+; ; printf(及格的學(xué)生人數(shù)=%dn,count);(2)給一個班上學(xué)生期末考試的成績排序#include void sort(int x,int n) int i,j,t,k; for(i=0;i

溫馨提示

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

評論

0/150

提交評論