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

正文內(nèi)容

51單片機(jī)c語言編程基礎(chǔ)和實(shí)例-資料下載頁

2025-06-25 05:38本頁面
  

【正文】 。 84. TR1=0。tmp1=(TH18)+(TL1)。tmp2=K64。TR1=1。 85. fcy=((tmp2oldK64)16)+(tmp1oldT1)。 86. oldK64=tmp1。oldT1=tmp2。 87. Second++。 88. us100=0。 89. } 90. if(++ms=10){ms=0。DisplayBrush()。}//1ms數(shù)碼管刷新 91. } 共9頁: 上一頁 [1] [2] [3] [4] [5] [6] 7 [8] [9] 下一頁 第七節(jié):電子表單鍵可調(diào)電子表:主要學(xué)習(xí)編程方法。外部中斷應(yīng)用,中斷嵌解:電子表分為工作狀態(tài)和調(diào)整狀態(tài)。平時(shí)為工作狀態(tài),按鍵不足一秒,接鍵為換屏‘S’。按鍵超過一秒移位則進(jìn)入調(diào)整狀態(tài)‘C’,而且調(diào)整光標(biāo)在秒個(gè)位開始。調(diào)整狀態(tài)時(shí),按鍵不足一秒為光標(biāo)移動(dòng)‘M’,超過一秒則為調(diào)整讀數(shù),‘A’,直到松鍵;如果10秒無按鍵則自動(dòng)回到工作狀態(tài)‘W’。如果有年、月、日、時(shí)、分、秒。四聯(lián)數(shù)碼管可分三屏顯示,顯示格式為“年月.”、“.”、“”,從小數(shù)點(diǎn)的位置來區(qū)分顯示內(nèi)容。(月份的十位數(shù)也可以用“”和“1”表示)。代碼1. enumstatus={Work,Change,Add,Move,Screen}//狀態(tài)牧舉 2. //計(jì)時(shí)和調(diào)整都是對(duì)下面時(shí)間數(shù)組Time進(jìn)行修改 3. unsignedcharTime[12]={0,4,0,6,1,0,0,8,4,5,3,2};//04年06月10日08時(shí)45分32秒 4. unsignedcharcursor=12。//指向秒個(gè)位,=0時(shí)無光標(biāo) 5. unsignedcharYmDhMs=3。//指向“分秒”顯示,=0時(shí)無屏顯 6. staticunsignedcharsts=Work。 7. /* 8. 如果cursor不為0,裝入DisBuf的對(duì)應(yīng)數(shù)位,,S01為奇數(shù)時(shí)滅,S01為偶數(shù)時(shí)亮。 9. 小數(shù)點(diǎn)顯示與YmDhMs變量相關(guān)。 10. */ 11. voidDisScan(void)//動(dòng)態(tài)刷新顯示時(shí)調(diào)用。沒編完,針對(duì)共陰數(shù)碼管,只給出控控制算法 12. { 13. //DisBuf每個(gè)顯示數(shù)據(jù)的高四位為標(biāo)志,最高位D7為負(fù)號(hào),D6為小數(shù)點(diǎn),D5為閃爍 14. unsignedchartmp。 15. tmp=Seg7Code[?xamp。0x1f]。//設(shè)?x為顯示數(shù)據(jù),高3位為控制位,將低5位變?yōu)槠叨未a 16. if(?xamp。0x40)tmp|=0x80。//添加小數(shù)點(diǎn) 17. if(?xamp。0x20){if(S01amp。0x01)tmp=0。}//閃爍,S01奇數(shù)時(shí)不亮 18. //這里沒有處理負(fù)號(hào)位 19. //將tmp送出顯示,并控制對(duì)應(yīng)數(shù)碼管動(dòng)作顯示 20. } 21. voidDisplay(void)//根據(jù)狀態(tài)進(jìn)行顯示 22. { 23. if(cursor!=0){YmDhMs=(cursor+3)/4。}//1..4=1。5..8=2。9..12=3 24. for(i=(YmDhMs1)*4。i(YmDhMs)*4。i++) 25. {unsignedcharj=i%4。 26. Disbuf[j]=Time[i]。 27. if(i==(cursor1))Disbuf[j]|=0x20。//閃爍,cursor!=0時(shí)才閃爍 28. if((i==9)||//小數(shù)點(diǎn):分個(gè)位 29. (i==7)||//小數(shù)點(diǎn):時(shí)個(gè)位 30. (i==5)||//小數(shù)點(diǎn):日個(gè)位 31. (i==3)//小數(shù)點(diǎn):月個(gè)位 32. )Disbuf[j]|=0x40。 33. //if(i==2){if(Time[2]==1)DisBuf[2]=“1”。elseDisBuf=“”。} 34. } 35. //工作狀態(tài):根據(jù)YmDhMs將屏數(shù)據(jù)裝入DisBuf 36. //調(diào)整狀態(tài):根據(jù)cursor將屏數(shù)據(jù)裝入DisBuf 37. } 38. voidKeyScan(void)//根據(jù)狀態(tài)掃描按鍵 39. voidProcessKey(void)//根據(jù)狀態(tài)處理鍵信息 40. { 41. keyVal=KeyGet()。 42. if(keyVal==0)return。 43. switch(sts) 44. { 45. caseWork: 46. if(keyVal==‘S’) 47. { 48. if(YmDhMs==0)YmDhMs=3。//換屏 49. } 50. if(keyVal==‘C’) 51. { 52. sts=Change。 53. YmDhMs=3。 54. Cursor=12。 55. } 56. break。 57. caseChange: 58. if(keyVal==‘W’) 59. if(keyVal==‘A’) 60. if(keyVal==‘M’)//根據(jù)cursor 61. break。 62. } 63. } 共9頁: 上一頁 [1] [2] [3] [4] [5] [6] [7] 8 [9] 下一頁 第八節(jié):串行口應(yīng)用一、,串行口應(yīng)用工作方式1,以9600bps的波特率向外發(fā)送數(shù)據(jù),數(shù)據(jù)為十個(gè)數(shù)字‘0’到‘9’,循環(huán)不斷地發(fā)送。 解:數(shù)字字符為增量進(jìn)二進(jìn)制碼,‘0’對(duì)應(yīng)0x30,‘1’= ‘0’+ 1 = 0x31,從‘0’到‘9’對(duì)應(yīng)編碼為0x30到0x39,記憶二進(jìn)制編碼較難,實(shí)際編程中用單引號(hào)括起對(duì)應(yīng)字符表示引用該字符的二進(jìn)制編碼值,如‘?’表示引用?號(hào)的編碼值。,9600bps的初始化分頻初值為6,現(xiàn)晶頻加倍,如果其它條件不變,只有分頻初始加倍為12,才能得到9600bps;如果想得到2400bps(速率降4倍),分頻初始自然加大4倍,即為48。根據(jù)題意編得如下程序:代碼1. include 2. voidmain(void) 3. { 4. TMOD=(TMODamp。0x0F)|0x20。 5. TH1=12。 6. PCON|=0x80。//SMOD=1 7. TR1=1。 8. SCON=0x42。 9. while(1) 10. { 11. if(TI==1) 12. { 13. staticunsignedcharDat=‘0’。 14. SBUF=Dat。 15. TI=0。 16. If(++Dat‘9’)Dat=‘0’。 17. } 18. } 19. } 二、在上題的基礎(chǔ)上,改為2400bps,循環(huán)發(fā)送小寫字母‘a(chǎn)’到‘z’,然后是大寫字母‘A’到‘Z’。代碼1. include 2. voidmain(void) 3. { 4. TMOD=(TMODamp。0x0F)|0x20。 5. TH1=96。//注意不用倍頻方式 6. PCONamp。=0x7F。//SMOD=0 7. TR1=1。 8. SCON=0x42。 9. while(1) 10. { 11. if(TI==1) 12. { 13. staticunsignedcharDat=‘a(chǎn)’。 14. SBUF=Dat。 15. TI=0。 16. //If(++Dat‘9’)Dat=‘0’。 17. ++Dat。 18. if(Dat==(‘z’+1))Dat=‘A’。 19. if(Dat==(‘Z’+1))Dat=‘a(chǎn)’。 20. } 21. } 22. } 上述改變值時(shí),也可以再設(shè)一變量表示當(dāng)前的大小寫狀態(tài),比如寫成如下方式:代碼1. ++Dat。 2. { 3. staticunsignedcharCaps=1。 4. if(Caps!=0) 5. if(Dat‘Z’){Dat=‘a(chǎn)’。Caps=0。} 6. else 7. if(Dat‘z’){Dat=‘A’。Caps=1。} 8. } 如下寫法有錯(cuò)誤:因?yàn)樾比大Z的編碼值大,所以Dat總是‘a(chǎn)’代碼1. ++Dat。 2. if(Dat‘Z’){Dat=‘a(chǎn)’} 3. elseif(Dat‘z’){Dat=‘A’} 三、有A和B兩臺(tái)單片機(jī),晶體頻率分別為13MHz和14MHz,在容易編程的條件下,以最快的速度進(jìn)行雙工串行通信,A給B循環(huán)發(fā)送大寫字母從‘A’到‘Z’,B給A循環(huán)發(fā)送小寫字母從‘a(chǎn)’到‘z’,雙方都用中斷方式進(jìn)行收發(fā)。解:由于晶體頻率不同,又不成2倍關(guān)系,所以只有通信方式1和方式3,由于方式3的幀比方式1多一位,顯然方式3的有效數(shù)據(jù)(9/11)比方式1(8/10)高,但要用方式3的第9位TB8來發(fā)送數(shù)據(jù),編程難度較大,這里方式1較容易編程。在計(jì)算最高速率時(shí),由于單方程,雙未知數(shù),又不知道波特率為多少,所以要綜合各方面的條件,估算出A和B的分頻常數(shù),分別為13和14時(shí),速率不但相同,且為最大值。如下給出A機(jī)的程序:代碼1. include 2. voidmain(void) 3. { 4. TMOD=(TMODamp。0x0F)|0x20。 5. TH1=13。//注意用倍頻方式 6. PCON|=0x80。//SMOD=1 7. TR1=1。 8. SCON=0x52。//REN=1 9. ES=1; 10. EA=1; 11. while(1)。 12. } 13. voidRS232_intr(void)interrupt4//注意RI和TI任一位變?yōu)?都中斷 14. { 15. unsignedcharrDat。 16. if(RI==1){RI=0。rDat=SBUF。} 17. if(TI==1) 18. { 19. staticunsignedchartDat=‘a(chǎn)’。 20. SBUF=tDat。 21. TI=0。 22. If(++Dat‘z’)Dat=‘a(chǎn)’。 23. } 24. } 四、多機(jī)通位在方式2和方式3,SM2只對(duì)接收有影響,當(dāng)SM2=1時(shí),只接收第9位等于1的幀(偽地址幀),而SM2=0時(shí),第9位不影響接收。l多機(jī)通信中,地址的確認(rèn)與本機(jī)程序有關(guān),所以可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)組、以及通播方式的通信。l如果收發(fā)共用一總線,任何時(shí)刻只有一個(gè)發(fā)送源能占用總線發(fā)送數(shù)據(jù),否則發(fā)生沖突。由此可構(gòu)造無競(jìng)爭(zhēng)的令牌網(wǎng);或者多主競(jìng)爭(zhēng)總線網(wǎng)。l共9頁: 上一頁 [1] [2] [3] [4] [5] [6] [7] [8] 9 下一頁 WORD格式整理
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1