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

正文內(nèi)容

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

2025-07-10 11:37本頁面
  

【正文】 。194。180。231。189。163。190。212。242。189。163。247。235。248。203。201。172。253。175。232。168。204。252。 delay(100)。 P0 = i | seven_seg[hour/10]。 P2 = bit_select[4]。 { timer0_tick = 0。202。207。203。201。202。163。202。214。 } else //201。 P2 = bit_select[5]。 delay(100)。193。163。227。253。161。196。230。243。187。246。177。161。 seven_seg[hour%10]。190。212。163。253。177。161。 delay(100)。 P0 = i | seven_seg[minute/10]。 P2 = bit_select[2]。 { timer0_tick = 0。202。207。203。201。163。214。 } else //201。 P2 = bit_select[3]。 delay(100)。193。235。235。243。172。240。235。235。176。172。184。193。235。227。253。161。196。230。243。187。246。211。214。 seven_seg[minute%10]。190。212。163。253。214。 delay(100)。 P0 = i | seven_seg[second/10]。214。194。212。212。201。178。172。167。184。193。189。239。170。204。224。227。231。 P2 = bit_select[0]。202。207。195。176。186。163。202。207。178。0xff163。202。195。176。P0199。163。196。214。 //1195。223。212。187。188。202。214。189。202。213。181。212。 //195。190。212。184。193。235。172。235。195。232。 delay(100)。187。174。235。190。212。 P0 = seven_seg[second/10]。182。187。210。193。205。202。 //207。 P2 = bit_select[0]。206。184。195。202。 //207。190。212。163。253。235。199。235。235。243。172。199。235。235。176。172。218。211。235。0x00 j = 0x7f | i。202。195。176。186。0xff163。202。195。176。i199。163。196。214。 //1195。{ uchar i,j。202。186。202。}/*********************************/void display() //207。214。202。12208。206。 // key4_mode == 1163。amp。198。177。161。170。172。 hour 24)hour = 0。 if(key4_mode == 0 amp。202。1208。186。 } //184。 } if(minute = 60) { minute = 0。 { second = 0。214。1186。 } } if(second = 60) //184。 { second++。1195。186。 if(timer0_tick == 2) //184。189。195。170。184。193。172。206。175。228。172。180。 // second_tick181。 { timer0_cp= 0。172。206。207。208。{ timer0_cp++。202。186。206。182。}/*********************************/void timer0_isr() interrupt 1 // timer0214。 ET0 = 1。 TL0 = 0x06。{ TMOD = 0x02。1180。182。214。195。250206。2163。202。196。164。172。253。175。175。188。245。{ while(i) i。202。186。202。/*********************************/void delay(uint i) //209。193。177。202。196。213。181。186。204。204。252。uchar key1_state,key2_state,key3_state,key4_state,key1_mode,key4_mode。191。228。253。206。207。208。uint timer0_cp。197。197。187。161。196。195。185。190。212。220。235。253。code uchar bit_select[6] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf}。 sbit JDQ = P3^5。 sbit key4 = P3^3。sbit key2 = P3^1。191。172。204。252。二、電路原理三、程序設(shè)計/********************************************************************************/includedefine uint unsigned intdefine uchar unsigned charsbit key1 = P3^0。2.時間顯示控制輸出小時、分鐘和秒各占兩位數(shù)碼管顯示分鐘與秒之間的小數(shù)點(diǎn)秒閃爍,小時和分鐘之間的小數(shù)點(diǎn)常亮,在調(diào)整時,被調(diào)整的時間部分秒閃爍。 keykeykey3作用key1key2key2備注key1_mode= 0不起作用不起作用按鍵按下后抬起有效key1_mode= 1秒鐘加秒鐘減按鍵按下后抬起有效key1_mode= 2分鐘加分鐘減按鍵按下后抬起有效key1_mode= 3小時加小時減按鍵按下后抬起有效(2)顯示模式調(diào)整顯示模式調(diào)整利用按鍵key4,其按鍵狀態(tài)模式key4_mode值有0,1和2三種,默認(rèn)值為0,電子鐘以24制顯示;當(dāng)key4_mode = 1時,電子鐘為12制顯示,為2是返回到模式0.(3)定時定鬧設(shè)置當(dāng)同時按下key1和 key4時,把電子鐘當(dāng)前時間設(shè)置為定時時間。本案例程序與6位顯示電子鐘不同的編程風(fēng)格,雖然程序較長,但條理清晰,簡單明了。6.在調(diào)整小時或分鐘時,被調(diào)整的數(shù)據(jù)1秒閃爍1次。4.顯示程序分正常,調(diào)分、調(diào)時三種顯示方式,三種顯示方式使用相同的位選語句P2=scan[i]。 0x00ff)、TH0 = (timer0_count 8),等于Timer0預(yù)置了0xec77,機(jī)器周期為1微秒,要求5000微秒即5毫秒中斷1次,Timer0計數(shù)最大為0xffff,則預(yù)置0xec77即可,定時器預(yù)置數(shù)值按下面公式計算:[預(yù)置數(shù)]16=[(2定時器位—中斷時間/機(jī)器周期]10中斷時間和機(jī)器周期單位為微秒,機(jī)器周期是單片機(jī)振蕩周期12倍,如果單片機(jī)的晶體振蕩頻率為,則機(jī)器周期由于執(zhí)行定時器初始化相關(guān)語句和晶體振蕩頻率誤差會影響定時器精度,實(shí)際預(yù)置數(shù)需要進(jìn)行調(diào)試調(diào)整。= 0xf0,寄存器TMOD高4位不變,低4位置0;執(zhí)行TMOD |= 0x01,TMOD的最低位為1,其它位不變,這種設(shè)置方法主要目的在于設(shè)置Timer0的工作模式時不能不影響Timer1工作模式。 while(1)。 = 0。 EA = 1。 ET0 = 1。 TH0 = (timer0_count 8)。 TL0 = (timer0_count amp。= 0xf0。 TR0 = 0。}/******************************************/static void timer0_initialize(void){ EA = 0。 } i++。 }break。 else P1 = 0xff。 break。 case 2 : if (%2) P0 = seven_seg[%10]。 case 1 : P0 = seven_seg[]。 case 0 : P0 = seven_seg[%10]。 key2 == 0)++。 if(key2_count == 0 amp。 case set_hour: switch(i) { if(key2 != 0) key2_count = times。 break。 break。 break。 case 1 : if(%2) P0=seven_seg[]。else P0=0xff。 if(==60) =0。 key2 == 0)。if(key2_count == 0 amp。 case set_min: switch(i) { if(key2 != 0) key2_count = times。break。 case 3 :P0 = seven_seg[]。 P0_7 = (%2)。break。break。} else if (key1 == 0) key1_count = times。 if(mode == 3) mode=0。 key1 == 0) {key1_count。 } if(key1_count != 0 amp。 ++。 ++。 if(timer0_tick == 200) { ++。 TR0 = 1。 0x00ff)。/******************************************/static void timer0_isr(void) interrupt 1{ TR0 = 0。}time。 char minute。const scan[4]={0x0e,0x0d,0x0b,0x07}。unsigned char timer0_tick,i=0,key1_count=0,key2_count=0,mode=0。sbit key2 = P3^2。現(xiàn)在讓我們設(shè)計1個電子表程序,采用2個按鍵調(diào)整時間,4位數(shù)碼管24小時制顯示小時和分鐘,并且在小時和分鐘之間的小數(shù)秒閃爍。 2.按鍵消除抖動仍采用延時函數(shù),數(shù)碼管顯示時也調(diào)用延時函數(shù),這是因?yàn)榘褦?shù)碼管顯示程序放在主函數(shù)while循環(huán)體中,P0輸出顯示數(shù)據(jù)時間很短,只有1微秒,數(shù)碼管響應(yīng)跟不上,如果不加延時處理,顯示效果很差。而是0x28,在數(shù)組key_temp[]里對應(yīng)的第8個數(shù)據(jù)。 //顯示鍵值十位數(shù)delay(200)。 //讓個位顯示一段時間再跳過P0 = seven_seg[i/10]。 P2 = 0xbf。if(i == 88) P0 = 0xff。}}Void main(void){uchar i,j。j++) //如果P1口上的數(shù)據(jù)與鍵盤臨時數(shù)據(jù)相同,輸出臨時鍵值 {if(P1 == key_temp[j])return(j)。 //如果有按鍵按下,P1口不是掃描數(shù)據(jù) if(P1 != P_scan[i]) //延時一段時間后,分析一下P1口是什么數(shù)據(jù){ for(j = 0。i++) //讓鍵盤行線輸出掃描數(shù)據(jù){P1 = P_scan[i]。for(i = 0。void delay(uchar i){while(i) i。 //鍵盤行掃描臨時數(shù)值code uchar key_temp[] = {0x11,0x12,0x14,0x18 //鍵盤按下得到的臨時數(shù)據(jù)0x21,0x22,0x24,0x280x41,0x42,0x44,0x480x81,0x82,0x84,0x88}。在設(shè)計單片機(jī)系統(tǒng)或其它電子系統(tǒng)時,由于器件引腳較多,器件與器件之間會經(jīng)常采用總線連接,并且把電路模塊化設(shè)計。 44鍵盤程序設(shè)計 44鍵盤16鍵盤陣列,本案例采用P1口完成,見圖335所示,把P18條I/O口分成4條列線4條行線交叉但不接觸,16個按鍵放置交叉位置,在單片機(jī)復(fù)雜系統(tǒng)需要較多按鍵時,這種接法可以節(jié)省單片機(jī)的硬件資源。本案例i為char型變量,數(shù)值在—128~127之間,語句if(i9) i = 0是向上增加過量復(fù)位。} eles if(key == 0)key_count = times。 key == 0)。if(key_count == 0 amp。 TR0 = 1。 0x00ff)。static void timer0_isr(void) interrupt 1{ TR0 = 0。/*********************************/in
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1