鹽城直銷蜂窩板產品介紹(語c自戲范文)

導讀您好,現在軟糖來為大家解答以上的問題。鹽城直銷蜂窩板產品介紹,語c自戲范文相信很多小伙伴還不知道,現在讓我們一起來看看吧!1、//頭文件...

您好,現在軟糖來為大家解答以上的問題。鹽城直銷蜂窩板產品介紹,語c自戲范文相信很多小伙伴還不知道,現在讓我們一起來看看吧!

1、//頭文件:#include//變量定義:code unsigned char table[]=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//表:共陽數碼管 0-9 unsigned char l_posit=0;//顯示位置unsigned char oldkey=0xff;//保存按鍵接口狀態//引腳定義:sbit SMG_q = P1^0;//定義數碼管陽級控制腳(千位)sbit SMG_b = P1^1;//定義數碼管陽級控制腳(百位)sbit SMG_s = P1^2;//定義數碼管陽級控制腳(十位)sbit SMG_g = P1^3;//定義數碼管陽級控制腳(個位)sbit SPK = P1^5;//定義蜂鳴 器sbit JDQ = P1^4;//定義蜂鳴 器sbit key1 = P3^7;//定義按鍵1sbit key2 = P3^6;//定義按鍵2sbit key3 = P3^5;//定義按鍵3sbit key4 = P3^4;//定義按鍵4sbit key5 = P3^3;//定義按鍵5sbit key6 = P3^2;//定義按鍵6/***************///參數范圍 0-65536void delay(unsigned int t) while(t--);}//顯示函數,參數為顯示內容void display(unsigned int da)P0=0XFF;da=da%10000;switch(l_posit)case 0://選擇千位數碼管,關閉其它位SMG_q=0;SMG_b=1;SMG_s=1;SMG_g=1;P0=table[da/1000];//輸出顯示內容break;case 1://選擇百位數碼管。

2、關閉其它位SMG_q=1;SMG_b=0;SMG_s=1;SMG_g=1;P0=table[da%1000/100];break;case 2://選擇十位數碼管,關閉其它位SMG_q=1;SMG_b=1;SMG_s=0;SMG_g=1;P0=table[da%100/10];break;case 3://選擇個位數碼管,關閉其它位SMG_q=1;SMG_b=1;SMG_s=1;SMG_g=0;P0=table[da%10];break;}l_posit++;//每調用一次將輪流顯示一位if(l_posit>3)l_posit=0;}//掃描鍵盤unsigned char ReadKey(void)unsigned char lkey=0;if((P3&0xfc)!=0xfc)//檢測所有按鍵是否有按鍵按下SPK=0;//按鍵按下則蜂鳴器發聲delay(10);//有按鍵按下則延時一段時間。

3、以消除按鍵拌動if(oldkey!=(P3&0xfc))//檢測按鍵未松開而且不是之前按下的按健就進入讀鍵值,否則不作處理oldkey=P3&0xfc;//保存當前狀態,為下一次掃描做判斷。

4、請看上一行if(key1==0)lkey=1;//第一個鍵按下復值1else if(key2==0)lkey=2;//第二個鍵按下復值2else if(key3==0)lkey=3;//第三個鍵按下復值3else if(key4==0)lkey=4;//第四個鍵按下復值4else if(key5==0)lkey=5;//第五個鍵按下復值5else if(key6==0)lkey=6;//第六個鍵按下復值6}}elseoldkey=0xfc;//如果都沒有按鍵按下,將復值初始狀態SPK=1;//無按鍵按下則退出蜂鳴}return lkey;}//主函數void main(void) unsigned int ldata=0;//作為顯示的數據unsigned char i;for(i=0;i<8;i++) P2<<=1;//用移位法將1向高位移入一位delay(25000);} P2=0xff;//LED燈測試完畢for(i=8;i>1;i--)P2>>=1;//用移位法將1向高位移入一位delay(25000);}for(i=1;i<2;i++) P2=0xfe; delay(20000); P2=0xfd; delay(20000); P2=0xfb; delay(20000); P2=0xf7; delay(20000); P2=0xef; delay(20000); P2=0xdf; delay(20000); P2=0xbf; delay(20000); P2=0x7f; delay(20000); P2=0xbf; delay(20000); P2=0xdf; delay(20000); P2=0xef; delay(20000); P2=0xf7; delay(20000); P2=0xfb; delay(20000); P2=0xfd; delay(20000); P2=0xfe; delay(20000); P2=0xff;}P0=0;//數碼管輸出,準備測試每一位SMG_g=0;//測試個位數碼管delay(38000);SMG_g=1;//關閉數碼管。

5、測試個位完畢SMG_s=0;//十位delay(38000);SMG_s=1;//SMG_b=0;//百位delay(38000);SMG_b=1;//SMG_q=0;//千位數碼管delay(38000);SMG_q=1;//關閉數碼管,測試個位完畢SMG_b=0;//百位delay(38000);SMG_b=1;//SMG_s=0;//十位delay(38000);SMG_s=1;//P0=0;//數碼管輸出,準備測試每一位SMG_g=0;//測試個位數碼管delay(38000); SMG_s=0;//十位delay(38000);SMG_b=0;//百位delay(38000);SMG_q=0;//千位數碼管delay(38000);SMG_g=1;SMG_s=1;SMG_b=1;SMG_q=1;SMG_q=0;//千位數碼管delay(38000);SMG_b=0;//百位delay(38000);SMG_s=0;//十位delay(38000);P0=0;//數碼管輸出。

6、準備測試每一位SMG_g=0;//測試個位數碼管delay(38000);SMG_g=1;SMG_s=1;SMG_b=1;SMG_q=1;SPK=0;//測試蜂鳴器delay(3500);SPK=1;//關閉蜂鳴器delay(30000);SPK=0;//測試蜂鳴器delay(3500);SPK=1;//關閉蜂鳴器delay(30000);SPK=0;//測試蜂鳴器delay(50000);SPK=1;//關閉蜂鳴器delay(30000);SPK=0;//測試蜂鳴器delay(50000);SPK=1;//關閉蜂鳴器delay(30000);SPK=0;//測試蜂鳴器delay(50000);delay(50000);delay(50000);SPK=1;//關閉蜂鳴器delay(30000);JDQ=0;//測試繼電器delay(50000);JDQ=1;//關閉繼電器delay(50000);JDQ=0;//測試繼電器delay(50000);delay(50000);delay(50000);JDQ=1;//關閉繼電器for(i=0;i<8;i++) P2<<=1;//用移位法將1向高位移入一位delay(50);}while(1)//循環掃描按鍵及顯示switch(ReadKey())//讀取鍵值做以下相應處理case 1:ldata++;//1鍵顯示內容加1P2=0xfe;break;case 2:ldata--;//2鍵顯示內容減1P2=0xfc;break;case 3:ldata+=10;//3鍵顯示內容加10P2=0xf8;break;case 4:ldata-=10;//4鍵顯示內容減10P2=0xf0;break;case 5:ldata+=100;//5鍵顯示內容加100P2=0xe0;break;case 6:ldata-=100;//6鍵顯示內容減100 P2<<=1; break;}display(ldata);//顯示相應的數值,這里用函數的形式調用顯示delay(100);}}。

本文就為大家分享到這里,希望小伙伴們會喜歡。

免責聲明:本文由用戶上傳,如有侵權請聯系刪除!