freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機(jī)的c語言程序設(shè)計(jì)-在線瀏覽

2024-08-04 16:36本頁面
  

【正文】 2=_cror_(P2,1)。0x80)==0) P2=_crol_(P2,1)。 //最近按鍵 P0=0xfe。 P1=0xff。 while(1) { if(Recent_Key!=P1) { Recent_Key=P1。 DelayMS(10)。sbit LED2=P0^1。sbit LED4=P0^3。sbit K2=P1^1。sbit K4=P1^3。 while(x) for(i=0。i++)。 P1=0xff。 LED2=K2。 LED3=~LED3。 LED4=~LED4。 }}13 K1K4 分組控制LED/* 名稱:K1K4 分組控制LED 說明:每次按下K1時遞增點(diǎn)亮一只LED,全亮?xí)r再次按下則再次循環(huán)開始, K2按下后點(diǎn)亮上面4只LED,K3按下后點(diǎn)亮下面4只LED,K4按下后關(guān)閉所有LED*/includedefine uchar unsigned chardefine uint unsigned int//延時void DelayMS(uint x){ uchar i。i120。} //主程序void main(){ uchar k,t,Key_State。 P1=0xff。 if(t!=0xff) { DelayMS(10)。 //取得4位按鍵值,由模式XXXX1111(X中有一位為0,其他均為1) //變?yōu)槟J?000XXXX(X中有一位為1,其他均為0) Key_State=~t4。 //檢查1所在位置,累加獲取按鍵號k while(Key_State!=0) { k++。 } //根據(jù)按鍵號k進(jìn)行4種處理 switch(k) { case 1: if(P0==0x00) P0=0xff。 DelayMS(200)。 case 2: P0=0xf0。 case 3: P0=0x0f。 case 4: P0=0xff。*/includedefine uchar unsigned chardefine uint unsigned int//段碼uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。//待顯示到各數(shù)碼管的數(shù)字緩沖(開始僅在0位顯示0,其他黑屏)uchar Display_Buffer[]={0,10,10,10,10,10,10,10}。 while(x) for(i=0。i++)。 for(i=0。i++) { P0=0xff。 P2=DSY_Index[i]。 }}//主程序void main(){ uchar i,Key_NO,Key_Counts=0。 P1=0xff。 while(1) { Show_Count_ON_DSY()。 Key_NO=P1。 if(Key_Counts8) Key_Counts=8。 break。 break。 for(i=1。i++) Display_Buffer[i]=10。 } //若鍵未釋放則僅刷新顯示,不進(jìn)行鍵掃描 while(P1!=0xff) Show_Count_ON_DSY()。*/includeincludedefine uchar unsigned chardefine uint unsigned int//段碼uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。//按鍵代碼,按鍵計(jì)數(shù)uchar Key_Code,Key_Counts=0。 while(x) for(i=0。i++)。 Num_Buffer[2]=Key_Counts/100。 Num_Buffer[0]=Key_Counts%10。i3。 P0=0xff。 P2=j。 }}//主程序void main(){ uchar i。 P1=0xff。 Key_Code=0xff。 P1=0xff。 //有鍵按下時,數(shù)碼管刷新顯示30次,該行代碼同時起到延時作用 if(Key_Code!=0xff) for(i=0。i++) Show_Counts_ON_DSY()。 break。 break。 } Key_Code=0xff。*/includeincludedefine uchar unsigned chardefine uint unsigned int//矩陣鍵盤按鍵特征碼表uchar code KeyCodeTable[]={0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88}。 while(x) for(i=0。i++)。 //低4位置0,放入4行 P1=0xf0。0xf0)!=0xf0) { DelayMS(2)。0xf0)!=0xf0) { sCode=0xfe。k4。 if((P1amp。 for(i=0。i++) //查表得到按鍵序號并返回 if(kCode==KeyCodeTable[i]) return(i)。 } } } return(1)。 uchar KeyNo=1。 //掃描鍵盤獲取按鍵序號KeyNo if(KeyNo!=1) { P2_LED=0xff。 for(i=0。i++) //鍵值越大,點(diǎn)亮的LED越多 { if(i8) P3_LED=1。 } P3=P3_LED。 } }}17 數(shù)碼管顯示4X4矩陣鍵盤按鍵號/* 名稱:數(shù)碼管顯示4X4矩陣鍵盤按鍵號 說明:按下任意鍵時,數(shù)碼管都會顯示其鍵的序號,掃描程序首先判斷按鍵發(fā)生在哪一列,然后根據(jù)所發(fā)生的行附加不同的值,從而得到按鍵的序號。sbit BEEP=P3^7。//延時void DelayMS(uint x){ uchar i。i120。} //矩陣鍵盤掃描void Keys_Scan(){ uchar Tmp。 //高4位置0,放入4行 DelayMS(1)。//按鍵后0f變成0000XXXX,X中一個為0,3個仍為1,通過異或把3個1變?yōu)?,唯一的0變?yōu)? switch(Tmp) //判斷按鍵發(fā)生于0~3列的哪一列 { case 1: KeyNo=0。 case 2: KeyNo=1。 case 4: KeyNo=2。 case 8: KeyNo=3。 default:KeyNo=16。 //低4位置0,放入4列 DelayMS(1)。//按鍵后f0變成XXXX0000,X中有1個為0,三個仍為1;高4位轉(zhuǎn)移到低4位并異或得到改變的值 switch(Tmp) //對0~3行分別附加起始值0,4,8,12 { case 1: KeyNo+=0。 case 2: KeyNo+=4。 case 4: KeyNo+=8。 case 8: KeyNo+=12。 for(i=0。i++) { DelayMS(1)。 } BEEP=0。 BEEP=0。 if(P1!=0xf0) Keys_Scan()。 Beep()。 } DelayMS(100)。*/includesbit S1=P1^0。sbit LED1=P0^0。//主程序void main(){ while(1) { LED1=S1。 }}19 繼電器控制照明設(shè)備/* 名稱:繼電器控制照明設(shè)備 說明:按下K1燈點(diǎn)亮,再次按下時燈熄滅*/includedefine uchar unsigned chardefine uint unsigned intsbit K1=P1^0。//延時void DelayMS(uint ms){ uchar t。t120。}//主程序void main(){ P1=0xff。 while(1) { if(K1==0) { while(K1==0)。 DelayMS(20)。//顯示緩沖uchar DSY_Buffer[3]={0,0,0}。 while(ms)for(t=0。t++)。 P0=0xff。 while(1) { m=0xfe。 //讀取撥碼開關(guān)的值 DSY_Buffer[0]=Num/100。 DSY_Buffer[2]=Num%10。i3。 P2=m。 DelayMS(10)。sbit K1=P1^7。 for(i=0。i++) { SPK=~SPK。jt。 //由參數(shù)t行成不同的頻率 }}void main(){ SPK=0。 Alarm(120)。本例使用延時函數(shù)實(shí)現(xiàn)不同頻率的聲音輸出,以后也可使用定時器*/includedefine uchar unsigned chardefine uint unsigned intsbit BEEP=P3^7。sbit K2=P1^5。sbit K4=P1^7。 while(x) for(t=0。t++)。 for(i=0。i++) { BEEP=~BEEP。 } BEEP=0。 BEEP=0。 if(K2==0) Play(2)。 if(K4==0) Play(4)。//生日快樂歌的音符頻率表,不同頻率由不同的延時來決定uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159, 212,212,106,126,159,169,190,119,119,126,159,142,159,0}。//延時void DelayMS(uint x){ uchar t。t120。}//播放函數(shù)void PlayMusic(){ uint i=0,j,k。jSONG_LONG[i]*20。 //SONG_TONE延時表決定了每個音符的頻率 for(k=0。k++)。 i++。 while(1) { PlayMusic()。 //播放完后暫停一段時間 }}24 INT0中斷計(jì)數(shù) /* 名稱:INT0中斷計(jì)數(shù) 說明:每次按下計(jì)數(shù)鍵時觸發(fā)INT0中斷,中斷程序累加計(jì)數(shù), 計(jì)數(shù)值顯示在3只數(shù)碼管上,按下清零鍵時數(shù)碼管清零*/includedefine uchar unsigned chardefine uint unsigned int//0~9的段碼uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}。uchar Count=0。//數(shù)碼管上顯示計(jì)數(shù)值void Show_Count_ON_DSY(){ DSY_Buffer[2]=Count/100。 DSY_Buffer[0]=Count%10。 if(DSY_Buffer[1]==0) //高位為0,若第二位為0同樣不顯示 DSY_Buffer[1]=0x0a。 P1=DSY_CODE[DSY_Buffer[1]]。}//主程序void main(){ P0=0x00。 P2=0x00。 //允許INT0中斷 IT0=1。 //清0 Show_Count_ON_DSY()。 //計(jì)數(shù)值遞增}25 外部INT0中斷控制LED /* 名稱:外部INT0中斷控制LED 說明:每次按鍵都會觸發(fā)INT0中斷,中斷發(fā)生時將LED狀態(tài)取反,產(chǎn)生LED狀態(tài)由按鍵控制的效果*/includedefine uchar unsigned chardefine uint unsigned intsbit LED=P0^0。 EA=1。 IT0=1。}//INT0中斷函數(shù)void EX_INT0() interrupt 0{ LED=~LED。*/includedefine uchar unsigned chardefine uint unsigned intsbit K3=P3^4。//數(shù)碼管段碼與位碼uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。//2組計(jì)數(shù)的顯示緩沖,前3位一組,后3位一組uchar data Buffer_Counts[
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1