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

正文內(nèi)容

51單片機(jī)的基本外圍電路設(shè)計(jì)以及相關(guān)c語言程序免積分-閱讀頁

2025-07-22 11:37本頁面
  

【正文】 調(diào)整失控,最可靠的辦法是利用變量記憶按鍵按下和放開的兩種狀態(tài),根據(jù)判斷實(shí)現(xiàn)鍵盤輸入。 //如果按鍵按下,按下狀態(tài)變量為1 }if(key1 == 1 amp。 key1_down_state = 1) //如果按鍵按下又放開{ key1_down_state = 0。 //按鍵抬起狀態(tài)變量為1 }…… if(key1_up_state == 1) { key1_up_state = 0; //按鍵按下抬起時(shí),數(shù)據(jù)調(diào)整 i++; }……/*********************************/ 我們也可以使用定時(shí)器中斷對鍵盤掃描,實(shí)現(xiàn)鍵盤輸入,下面時(shí)利用Timer0中斷實(shí)現(xiàn)的鍵盤輸入,其中鍵盤key1接單片機(jī)I/,Timer0工作在模式1。char key_count。 TL0 = (timer0_count amp。 TH0 = (timer0_count 8)。 if(key_count != 0) { key_count。amp。key_flog = 1。}2.利用按鍵調(diào)整數(shù)據(jù)時(shí),有時(shí)會調(diào)整過量,需要進(jìn)行判斷重置。 3.把鍵盤掃描key_scan()函數(shù)放在主函數(shù)的while循環(huán)體中,程序執(zhí)行時(shí)會斷調(diào)用key_scan(),如果沒有按鍵按下,執(zhí)行key_scan()的時(shí)間很短,如果有按鍵按下,用于按鍵掃面函數(shù)又調(diào)用了延時(shí)函數(shù),程序執(zhí)行時(shí)間會變長。鍵盤和P1口之間采用總線連接布局,在電路原理設(shè)計(jì)過程中,總線只是圖示引腳之間的相連接關(guān)系,但不具有電氣連接特性,相連引腳之間需要標(biāo)注相同的網(wǎng)絡(luò)標(biāo)號采用電氣連接特性,如圖335中。圖335 44鍵盤陣列電路原理 二、程序設(shè)計(jì)/*****************************************************************************/include define uchar unsigned charcode uchar P_scan[] = {0x01,0x02,0x04,0x08}。code uchar seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。}uchar key_temp(void) //鍵盤掃描函數(shù){uchar i,j。 i 4。if(P1 != P_scan[i]) delay(200)。j16。}}eles //如果沒有按鍵按下,輸出沒有按鍵按下標(biāo)志“88”return(88)。while(1){i = key_temp()。 //如果沒有按鍵按下,P0 = 0xff,數(shù)碼管不顯示else{P0 = seven_seg[i%10]。 //顯示按鍵值個(gè)位數(shù)delay(200)。 P2 = 0x7f。 //讓十位顯示一段時(shí)間再跳過}}}/*****************************************************************************/三、程序說明1.在鍵盤掃描函數(shù)中,執(zhí)行P1 = P_scan[i],鍵盤的行線會依次出現(xiàn)高電平,當(dāng)P1 = 0x08, = 1,如果此時(shí)有1個(gè)按鍵按下,比如K7按下,這是再檢測P1的只就不是0x08了。臨時(shí)鍵盤值為7,同時(shí)數(shù)碼管顯示7。3.沒有按鍵按下標(biāo)志“88”只是一個(gè)標(biāo)記,你可以定義其它數(shù)據(jù),只要與鍵值不統(tǒng)即可,執(zhí)行i = key_temp(),就可以調(diào)用鍵盤掃描函數(shù)執(zhí)行1次,如果不按按鍵,數(shù)碼管不顯示。一、參考電路/*****************************************************************************/includedefine timer0_count 0xec77 define times 20define display 0define set_min 1define set_hour 2sbit key1 = P3^0。sbit P0_7 = P0^7。const seven_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。typedef struct{ char hour。 char second。time now。 TL0 = (timer0_count amp。 TH0 = (timer0_count 8)。 timer0_tick++。 if( == 60) { = 0。 } if( == 60) { = 0。 } if( == 24) = 0。amp。if(key1_count == 0) mode++。goto loop。loop: switch (mode) { case display: switch(i) { case 0 :P0 = seven_seg[%10]。 case 1 :P0 = seven_seg[]。 case 2 :P0 = seven_seg[%10]。break。 P0_7 = 1。 }break。else if(key2 == 0) key2_count。amp。++。 case 0 : if(%2) P0=seven_seg[%10]。 break。else P0=0xff。 case 2 : P0=seven_seg[%10]。 case 3 : P0=seven_seg[]。 }break。 else if(key2 == 0) key2_count。amp。 if( == 24)=0。 break。 break。 else P1 = 0xff。 case 3 : if (%2) P0 = seven_seg[]。 break。 P2=scan[i]。if(i == 4)i = 0。 timer0_tick = 0。 TMOD amp。 TMOD |= 0x01。 0x00ff)。 PT0 = 0。 TR0 = 1。}/******************************************/void main (void) {timer0_initialize()。 = 12。 }/*****************************************************************************/三、程序說明1.執(zhí)行TMOD amp。2.執(zhí)行TL0 = (timer0_count amp。3.鍵盤檢測使用了timer0中斷,如果按鍵按下需要中斷一定次數(shù)才認(rèn)為有按鍵按下,有效的消除了鍵抖現(xiàn)象。5.為了是小數(shù)點(diǎn)閃爍,在顯示小時(shí)個(gè)位時(shí),其狀態(tài)1秒改變1次。7.該程序保存為”” 6位顯示電子鐘本案例電子鐘采用6位數(shù)碼管顯示,能夠顯示小時(shí),分鐘和秒,用4個(gè)按鍵調(diào)整控制,具有24/12小時(shí)制轉(zhuǎn)換、調(diào)秒、調(diào)分、調(diào)時(shí)和定時(shí)定鬧功能。 一、系統(tǒng)功能需求1.按鍵控制(1)時(shí)間調(diào)整電路采用4個(gè)按鍵進(jìn)行時(shí)間調(diào)整和電子鐘工作模式控制,~,其中key1為時(shí)間調(diào)整設(shè)置鍵,狀態(tài)模式key1_mode的值有0、2和3共四種,key1_mode = 0為系統(tǒng)默認(rèn),在其它模式下利用keykey2調(diào)整分別調(diào)整時(shí)、分、秒。設(shè)置時(shí)間時(shí)或任何時(shí)間可以設(shè)置定時(shí)時(shí)間,當(dāng)顯示時(shí)間與定時(shí)時(shí)間一致時(shí)驅(qū)動蜂鳴器發(fā)聲10秒鐘。數(shù)碼管斷選數(shù)據(jù)由P0輸出,;~;;。 //188。197。193。189。218。sbit key3 = P3^2。sbit FMQ = P3^4。code uchar seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。 //202。194。185。207。202。202。211。181。209。206。208。186。uchar hour,minute,second,hour_ram,minute_ram,second_ram。 //214。182。180。202。177。193。uchar timer0_tick, second_tick。 //188。197。180。172。205。247。163。189。228。191。211。177。175。253。}/*********************************/void timer0_init() // timer0179。202。187。186。202。163。timer0185。247。163。189。172。162。235。208。207。206。 TH0 = 0x06。 TR0 = 1。 EA = 1。208。207。254。241。175。253。 if (timer0_cp == 2000) //214。182。2000180。163。184。 second_tick = !second_tick。196。204。 177。187。1180。163。201。203。210。211。181。 timer0_tick++。213。195。235。 timer0_tick = 0。213。195。214。214。 minute++。 hour++。213。195。161。177。amp。 // key4_mode == 0163。206。24208。202。214。 if(key4_mode == 1 amp。 hour 13)hour = 1。172。170。161。177。198。212。190。175。253。 i = 0xff*second_tick。235。211。218。172。176。235。235。199。172。243。235。235。199。 //1195。214。196。163。j199。176。195。202。0xff163。186。176。195。202。0x7f if(key1_mode != 1) //195。213。179。207。202。 { P0 = seven_seg[second%10]。212。190。235。246。187。 delay(100)。212。190。163。244。187。225。249。 //207。202。195。202。206。 P2 = bit_select[1]。 } else //201。214。195。163。195。201。203。207。202。 { timer0_tick = 0。235。218。247。177。185。177。228。185。218。 P0 = i | seven_seg[second%10]。235。211。218。172。176。235。235。199。172。187。212。190。172。243。235。235。212。190。 //200。185。196。177。179。210。180。181。201。203。208。185。163。210。191。210。182。P2207。202。 delay(100)。 P2 = bit_select[1]。 } if(key1_mode != 2) //213。179。207。202。 { P0 = j amp。 //214。184。206。186。195。181。208。202。181。195。201。203。163。199。176。195。195。163。186。176。195。193。 P2 = bit_select[2]。 P0 = seven_seg[minute/10]。 delay(100)。232。195。214。172。214。193。184。212。190。 P0 = i | seven_seg[minute%10]。 delay(100)。 P2 = bit_select[3]。 } if(key1_mode != 3) //208。202。213。179。207。202。 { P0 = 0x7f amp。 //208。202。184。206。186。195。181。208。202。181。179。193。 P2 = bit_select[4]。 P0 = seven_seg[hour/10]。 delay(100)。232。195。177。172。177。193。184。212。190。 P0 = i | seven_seg[hour%10]。 delay(100)。 P2 = bit_select[5]。 }}/*********************************/void key_scan(void) //188。197。201。195。186。202。163。211。180。189。200。181。213。196。202。187。207。202。196。202。{ if(key1 == 0 ) //200。185。key1176。207。 { key1 =
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1