1.png (144.77 KB)
下載附件
2021-4-17 01:29 上傳
- #include <AT89X52.h> //調用51單片機的頭文件
- //---------------------------------------
- //數碼管字形表,供顯示時查詢
- unsigned char code LED[10]=
- { //定義表格一定要使用code,這樣會做到程序存儲區(qū)中
- 0x3F, //"0"的字形表,0B00111111
- 0x06, //"1"的字形表,0B00000110
- 0x5B, //"2"的字形表,0B01011011
- 0x4F, //"3"的字形表,0B01001111
- 0x66, //"4"的字形表,0B01100110
- 0x6D, //"5"的字形表,0B01101101
- 0x7D, //"6"的字形表,0B01111101
- 0x07, //"7"的字形表,0B00000111
- 0x7F, //"8"的字形表,0B01111111
- 0x6F, //"9"的字形表,0B01101111
- };
- //---------------------------------------
- //4位數碼管相關I/O設置
- sbit U165A0=P1^0; //U165(74HC138)的A0腳接在P1.0口上
- sbit U165A1=P1^1; //U165(74HC138)的A1腳接在P1.1口上
- sbit U165A2=P1^2; //U165(74HC138)的A2腳接在P1.2口上
- //---------------------------------------
- //---------------------------------------
- //名稱: 主函數
- void main(void) //主函數,單片機開機后就是從這個函數開始運行
- {
- unsigned int c=0; //定義一個char型變量,做延時用
- unsigned char d=0; //定義一個char型變量,控制顯示位置
- unsigned char e=0; //定義一個char型變量,做延時用
- unsigned int f=0; //定義一個int型變量,顯示內容用,顯示內容0-9999
- //for(c=0;c<50000;c++)
- while(1) //死循環(huán),單片機初始化后,將一直運行這個死循環(huán)
- {
- for(c=0;c<5;c++);//做一個0-250的循環(huán),不執(zhí)行其他操作,只為延時
- if(++e>200) //做一個延時,時間到將顯示內容加1
- {
- e=0;
- if(P0_0==1) //清零,為下一次延時做準備
- {if(++f>9999) f=0;}//顯示內容加1,因為只有4位顯示,超過9999后歸零
- }
- P2=0; //關一次顯示,以免顯示出鬼影
- if(++d>3) d=0; //先將d加1,然后判斷是否大于3,大于3歸零
- if(d==0) //如果d=0,顯示千位
- {
- P1=0x03; //U165A0=1,U165A1=1,U165A2=0選通數碼管的千位進行顯示
- P2=LED[f/1000]; //將要顯示的f的千位提取出來查表后送顯示
- }
- else if(d==1) //如果d=1,顯示百位
- {
- P1=0x02; //U165A0=0,U165A1=1,U165A2=0選通數碼管的百位進行顯示
- P2=LED[(f%1000)/100]; //將要顯示的f的百位提取出來查表后送顯示
- }
- else if(d==2) //如果d=2,顯示十位
- {
- P1=0x01; //U165A0=1,U165A1=0,U165A2=0選通數碼管的十位進行顯示
- P2=LED[(f%100)/10]; //將要顯示的f的十位提取出來查表后送顯示
- }
- else //如果d=3,顯示個位
- {
- P1=0x00; //U165A0=0,U165A1=0,U165A2=0選通數碼管的個位進行顯示
- P2=LED[f%10]; //將要顯示的f的個位提取出來查表后送顯示
- }
- }
- }
復制代碼
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發(fā)內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業(yè)交易、轉載等行為,該內容只為學習所提供,使用后發(fā)生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|