- /* ch4-12.c - 七段數(shù)碼管驅(qū)動(dòng)程序 */
- //==聲明區(qū)============================================
- #include<reg52.h> //包含單片機(jī)寄存器定義的頭文件
- #define SEG P3 //宏定義,用標(biāo)識(shí)符SEG代替P0
- #define uint unsigned int //宏定義,用uint代替unsigned int
- #define uchar unsigned char //宏定義,uchar代替unsigned char
- //0~9的共陽(yáng)數(shù)碼管段碼表
- code uchar TAB2[10]={0xc0, 0xf9, 0xa4, 0xb0, 0x99,0x92, 0x82, 0xf8, 0x80, 0x90};
- sbit PD5=P1^7;
- void delay(uint ms); // 聲明延遲函數(shù)
- //==主程序區(qū)========================================
- void main(void) //主程序開(kāi)始
- {
- uchar i; //聲明無(wú)符號(hào)整數(shù)變量i
- while(1) //無(wú)窮循環(huán),程序一直跑
- for(i=0;i<10;i++) //顯示0-9,共10次
- {
- SEG=TAB2[ i]; //共陽(yáng)數(shù)碼管顯示數(shù)字0~9
- PD5= TAB2[ i]&(0x01<<5);
- delay(500); //延遲500*1m=0.5秒
- SEG=0xff;
- PD5 = 1;
- } //for循環(huán)結(jié)束
- } //主程序結(jié)束
- //==子程序區(qū)==========================================
- /* 延遲函數(shù),延遲約x*1ms */
- void delay(uint x) //延遲函數(shù)開(kāi)始
- { uint i,j; //聲明無(wú)符號(hào)整數(shù)變量i,j
- for(i=0;i<x;i++) //計(jì)數(shù)x次,延遲x*1ms
- for(j=0;j<120;j++); //計(jì)數(shù)120次,延遲1ms
- } //延遲函數(shù)結(jié)束
復(fù)制代碼
|