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

正文內(nèi)容

單片機(jī)c語言程序設(shè)計代碼和仿真圖-文庫吧

2025-06-22 13:12 本頁面


【正文】 nsigned int//段碼表uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。//位碼表uchar code DSY_IDX[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}。//延時void DelayMS(uint x){ uchar t。 while(x) for(t=0。t120。t++)。}//主程序void main(){ uchar i,j。 while(1) { for(i=0。i30。i++) { for(j=0。j8。j++) { P0=0xff。 P0=DSY_CODE[j]。 //發(fā)送段碼 P2=DSY_IDX[j]。 //發(fā)送位碼 DelayMS(2)。 } } P2=0x00。 //關(guān)閉所有數(shù)碼管并延時 DelayMS(1000)。 }}10 8只數(shù)碼管滾動顯示數(shù)字串電路如上圖/* 名稱:8只數(shù)碼管滾動顯示數(shù)字串 說明:數(shù)碼管向左滾動顯示3個字符構(gòu)成的數(shù)字串*/includeincludedefine uchar unsigned chardefine uint unsigned int//段碼表uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。//下面數(shù)組看作環(huán)形隊列,顯示從某個數(shù)開始的8個數(shù)(10表示黑屏)uchar Num[]={10,10,10,10,10,10,10,10,2,9,8}。//延時void DelayMS(uint x){ uchar t。 while(x) for(t=0。t120。t++)。}//主程序void main(){ uchar i,j,k=0,m=0x80。 while(1) { //刷新若干次,保持一段時間的穩(wěn)定顯示 for(i=0。i15。i++) { for(j=0。j8。j++) { //發(fā)送段碼,采用環(huán)形取法,從第k個開始取第j個 P0=0xff。 P0=DSY_CODE[Num[(k+j)%11]]。 m=_crol_(m,1)。 P2=m。 //發(fā)送位碼 DelayMS(2)。 } } k=(k+1)%11。 //環(huán)形隊列首支針k遞增,Num下標(biāo)范圍0~10,故對11取余 }}11 K1K4 控制LED移位/* 名稱:K1K4 控制LED移位 說明:按下K1時,P0口LED上移一位; 按下K2時,P0口LED下移一位; 按下K3時,P2口LED上移一位; 按下K4時,P2口LED下移一位;*/includeincludedefine uchar unsigned chardefine uint unsigned int//延時void DelayMS(uint x){ uchar i。 while(x) for(i=0。i120。i++)。} //根據(jù)P1口的按鍵移動LEDvoid Move_LED(){ if ((P1amp。0x10)==0) P0=_cror_(P0,1)。 //K1 else if((P1amp。0x20)==0) P0=_crol_(P0,1)。 //K2 else if((P1amp。0x40)==0) P2=_cror_(P2,1)。 //K3 else if((P1amp。0x80)==0) P2=_crol_(P2,1)。 //K4}//主程序void main(){ uchar Recent_Key。 //最近按鍵 P0=0xfe。 P2=0xfe。 P1=0xff。 Recent_Key=0xff。 while(1) { if(Recent_Key!=P1) { Recent_Key=P1。 //保存最近按鍵 Move_LED()。 DelayMS(10)。 } }}12 K1K4 按鍵狀態(tài)顯示/* 名稱:K1K4 按鍵狀態(tài)顯示 說明:KK2按下時LED點亮,松開時熄滅, KK4按下并釋放時LED點亮,再次按下并釋放時熄滅;*/includedefine uchar unsigned chardefine uint unsigned intsbit LED1=P0^0。sbit LED2=P0^1。sbit LED3=P0^2。sbit LED4=P0^3。sbit K1=P1^0。sbit K2=P1^1。sbit K3=P1^2。sbit K4=P1^3。//延時void DelayMS(uint x){ uchar i。 while(x) for(i=0。i120。i++)。} //主程序void main(){ P0=0xff。 P1=0xff。 while(1) { LED1=K1。 LED2=K2。 if(K3==0) { while(K3==0)。 LED3=~LED3。 } if(K4==0) { while(K4==0)。 LED4=~LED4。 } DelayMS(10)。 }}13 K1K4 分組控制LED/* 名稱:K1K4 分組控制LED 說明:每次按下K1時遞增點亮一只LED,全亮?xí)r再次按下則再次循環(huán)開始, K2按下后點亮上面4只LED,K3按下后點亮下面4只LED,K4按下后關(guān)閉所有LED*/includedefine uchar unsigned chardefine uint unsigned int//延時void DelayMS(uint x){ uchar i。 while(x) for(i=0。i120。i++)。} //主程序void main(){ uchar k,t,Key_State。 P0=0xff。 P1=0xff。 while(1) { t=P1。 if(t!=0xff) { DelayMS(10)。 if(t!=P1) continue。 //取得4位按鍵值,由模式XXXX1111(X中有一位為0,其他均為1) //變?yōu)槟J?000XXXX(X中有一位為1,其他均為0) Key_State=~t4。 k=0。 //檢查1所在位置,累加獲取按鍵號k while(Key_State!=0) { k++。 Key_State=1。 } //根據(jù)按鍵號k進(jìn)行4種處理 switch(k) { case 1: if(P0==0x00) P0=0xff。 P0=1。 DelayMS(200)。 break。 case 2: P0=0xf0。break。 case 3: P0=0x0f。break。 case 4: P0=0xff。 } } }}14 K1K4 控制數(shù)碼管移位顯示/* 名稱:K1K4 控制數(shù)碼管移位顯示 說明:按下K1時加1計數(shù)并增加顯示位, 按下K2時減1計數(shù)并減少顯示位, 按下K3時清零。*/includedefine uchar unsigned chardefine uint unsigned int//段碼uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。//位碼uchar code DSY_Index[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}。//待顯示到各數(shù)碼管的數(shù)字緩沖(開始僅在0位顯示0,其他黑屏)uchar Display_Buffer[]={0,10,10,10,10,10,10,10}。//延時void DelayMS(uint x){ uchar i。 while(x) for(i=0。i120。i++)。} void Show_Count_ON_DSY(){ uchar i。 for(i=0。i8。i++) { P0=0xff。 P0=DSY_CODE[Display_Buffer[i]]。 P2=DSY_Index[i]。 DelayMS(2)。 }}//主程序void main(){ uchar i,Key_NO,Key_Counts=0。 P0=0xff。 P1=0xff。 P2=0x00。 while(1) { Show_Count_ON_DSY()。 P1=0xff。 Key_NO=P1。 //P1口按鍵狀態(tài)分別為K10xfe,K20xfd,K30xfb switch(Key_NO) { case 0xfe: Key_Counts++。 if(Key_Counts8) Key_Counts=8。 Display_Buffer[Key_Counts1]=Key_Counts。 break。 case 0xfd: if(Key_Counts0)Display_Buffer[Key_Counts]=10。 break。 case 0xfb: Display_Buffer[0]=0。 for(i=1。i8。i++) Display_Buffer[i]=10。 Key_Counts=0。 } //若鍵未釋放則僅刷新顯示,不進(jìn)行鍵掃描 while(P1!=0xff) Show_Count_ON_DSY()。 }}15 K1K4 控制數(shù)碼管加減演示/* 名稱:K1K4 控制數(shù)碼管加減演示 說明:按下K1后加1計數(shù),按下K2后減1計數(shù),按下K3后清零。*/includeincludedefine uchar unsigned chardefine uint unsigned int//段碼uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}。//待顯示的3位緩沖uchar Num_Buffer[]={0,0,0}。//按鍵代碼,按鍵計數(shù)uchar Key_Code,Key_Counts=0。//延時void DelayMS(uint x){ uchar i。 while(x) for(i=0。i120。i++)。} //顯示函數(shù)void Show_Counts_ON_DSY(){ uchar i,j=0x01。 Num_Buffer[2]=Key_Counts/100。 Num_Buffer[1]=Key_Counts/10%10。 Num_Buffer[0]=Key_Counts%10。 for(i=0。i3。i++) { j=_cror_(j,1)。 P0=0xff。 P0=DSY_CODE[Num_Buffer[i]]。 P2=j。 DelayMS(1)。 }}//主程序void main(){ uchar i。 P0=0xff。 P1=0xff。 P2=0x00。 Key_Code=0xff。 while(1) { Show_Counts_ON_DSY()。 P1=0xff。 Key_Code=P1。 //有鍵按下時,數(shù)碼管刷新顯示30次,該行代碼同時起到延時作用 if(Key_Code!=0xff) for(i=0。i30。i++) Show_Counts_ON_DSY()。 switch(Key_Code) { case 0xfe: if(Key_Counts255) Key_Counts++。 break。 case 0xfd: if(Key_Counts0) Key_Counts。 break。 case 0xfb: Key_Counts=0。 } Key_Code=0xff。 }}16 4X4矩陣鍵盤控制條形LED顯示/* 名稱:4X4矩陣鍵盤控制條形LED顯示 說明:運行本例時,按下的按鍵值越大點亮的LED越多。*/includeincludedefine uchar unsigned chardefine uint unsigned int//矩陣鍵盤按鍵特征碼表
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1