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

正文內(nèi)容

51單片機(jī)匯編語(yǔ)言及c語(yǔ)言經(jīng)典實(shí)例-wenkub.com

2025-04-04 04:52 本頁(yè)面
   

【正文】 P1_7=~P1_7。okflag=0。P1_7=1。if(cc1000){okflag=1。}}else if((errorflag==0) amp。rightflag=0。P1_0=~P1_0。alarmflag=~alarmflag。}}if((errorflag==1) amp。P0=dispcode[dispbuf[dispcount]]。//?????????}}}}void t0(void) interrupt 1 using 0{TH0=(65536500)/256。while(temp!=0x0f){temp=P3。rightflag=1。rightflag=0。}else{for(i=0。}else{keyoverflag=1。keyoverflag=1。dispbuf[keycount+2]=19。P1_1=~P1_1。break。break。if (temp!=0x0f){temp=P3。j)。if (temp!=0x0f){for(i=10。P3_7=0。temp=temp amp。a3: i=keycount。second3=0。}else{for(i=0。}else{keyoverflag=1。keyoverflag=1。dispbuf[keycount+2]=19。P1_1=~P1_1。break。break。if (temp!=0x0f){temp=P3。j)。if (temp!=0x0f){for(i=10。P3_6=0。temp=temp amp。a4: i=keycount。second3=0。ikeycount。}}else if(key==15)//enter key{if(keycount!=pslen){errorflag=1。//key overflow}}else if(key==12)//delete key{if(keycount0){keycount。}keycount++。if((key=0) amp。case 0x07:key=11。case 0x0d:key=5。temp=temp amp。temp=P3。i0。temp=P3。 0x0f。}}temp=temp amp。goto a。i++){if(getps[i]!=ps[i]){i=keycount。rightflag=0。getps[keycount]=0。if(keycount==6){keycount=6。amp。break。break。 0x0f。temp=temp amp。i0。temp=P3。ET0=1。TMOD=0x01。bit alarmflag。unsigned int second3。unsigned char getps[6]。unsigned char temp。unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,0x73,0xff}。當(dāng)數(shù)字輸入超過(guò) 6個(gè)時(shí),給出報(bào)警信息。用 8 位數(shù)碼管組成顯示電路提示信息,當(dāng)輸入密碼時(shí),只顯示“8.”,當(dāng)密碼位數(shù)輸入完畢按下確認(rèn)鍵時(shí),對(duì)輸入的密碼與設(shè)定的密碼進(jìn)行比較,若密碼正確,則門(mén)開(kāi),此處用 LED 發(fā)光二極管亮一秒鐘做為提示,同時(shí)發(fā)出“叮咚”聲;若密碼不正確,禁止按鍵輸入 3 秒,同時(shí)發(fā)出“嘀、嘀”報(bào)警聲;若在 3 秒之內(nèi)仍有按鍵按下,則禁止按鍵輸入 3 秒被重新禁止。while(resetpulse())。 0x0f。x++。x=2。x=x4。}}readdata[1]=readdata[1]4。readdata[0]=~readdata[0]。}sflag=0。readdata[1]=readdatafromds18b20()。while(resetpulse())。displaycount++。TL0=(655364000)%256。while(1){。while(resetpulse())。TH0=(655364000)/256。j0。j)。_nop_()。i8。Unsigned char j。j0。j0。j)。i++){if((mand amp。}void writemandtods18b20(unsigned char mand){unsigned char i。RETurn(DQ)。DQ=1。DQ=0。unsigned char readdata[8]。unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,25,28,31,34,38,41,44,48,50,53,56,59,63,66,69,72,75,78,81,84,88,91,94,97}。對(duì)于 DS18B20 寫(xiě) 0 時(shí)序和寫(xiě) 1 時(shí)序的要求不同,當(dāng)要寫(xiě) 0 時(shí)序時(shí),單總線(xiàn)要被拉低至少 60us,保證 DS18B20 能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線(xiàn)上的“0”電平,當(dāng)要寫(xiě) 1 時(shí)序時(shí),單總線(xiàn)被拉低之后,在 15us 之內(nèi)就得釋放單總線(xiàn)。DS18B20 的復(fù)位時(shí)序DS18B20 的讀時(shí)序?qū)τ?DS18B20 的讀時(shí)序分為讀 0 時(shí)序和讀 1 時(shí)序兩個(gè)過(guò)程。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。DS18B20 的引腳介紹TO-92 封裝的 DS18B20 的引腳排列見(jiàn)圖 1,其引腳功能描述見(jiàn)表 1。C 到+125。DS18B20 產(chǎn)品的特點(diǎn)(1)、只要求一個(gè)端口即可實(shí)現(xiàn)通信。dispcount++。}}void t0(void) interrupt 1 using 0{TH0=(655364000)/256。dispbuf[2]=getdata/100。while(EOC==0)。P3=channel。TL0=(655364000)%256。unsigned char channel=0xbc。unsigned char dispcount。(3). 把“單片機(jī)系統(tǒng)板”區(qū)域中的 P0 端口的 - 用 8 芯排線(xiàn)連接到“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 D0D1D2D3D4D5D6D7 端口上,A/D 轉(zhuǎn)換完畢的數(shù)據(jù)輸入到單片機(jī)的 P0 端口(4). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 VREF 端子用導(dǎo)線(xiàn)連接到“電源模塊”區(qū)域中的 VCC 端子上;(5). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 A2A1A0 端子用導(dǎo)線(xiàn)連接到“單片機(jī)系統(tǒng)”區(qū)域中的 端子上;(6). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 ST 端子用導(dǎo)線(xiàn)連接到“單片機(jī)系統(tǒng)”區(qū)域中的 端子上;(7). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 OE 端子用導(dǎo)線(xiàn)連接到“單片機(jī)系統(tǒng)”區(qū)域中的 端子上;(8).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 EOC 端子用導(dǎo)線(xiàn)連接到“單片機(jī)系統(tǒng)”區(qū)域中的 端子上;(9). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 CLK 端子用導(dǎo)線(xiàn)連接到“分頻模塊”區(qū)域中的 /4 端子上;(10). 把“分頻模塊”區(qū)域中的 CK IN 端子用導(dǎo)線(xiàn)連接到“單片機(jī)系統(tǒng)”區(qū)域中的 ALE 端子上;(11). 把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 IN3 端子用導(dǎo)線(xiàn)連接到“三路可調(diào)壓模塊”區(qū)域中的 VR1 端子上;6. 程序設(shè)計(jì)內(nèi)容(1). 進(jìn)行 A/D 轉(zhuǎn)換時(shí),采用查詢(xún) EOC 的標(biāo)志信號(hào)來(lái)檢測(cè) A/D 轉(zhuǎn)換是否完畢,若完畢則把數(shù)據(jù)通過(guò) P0 端口讀入,經(jīng)過(guò)數(shù)據(jù)處理之后在數(shù)碼管上顯示。5 實(shí)驗(yàn)任務(wù)如下圖所示,從 ADC0809 的通道 IN3 輸入 0-5V 之間的模擬量,通過(guò) ADC0809轉(zhuǎn)換成數(shù)字量在數(shù)碼管上以十進(jìn)制形成顯示出來(lái)。(3). 送要轉(zhuǎn)換的哪一通道的地址到 A,B,C 端口上。CLK 為時(shí)鐘輸入信號(hào)線(xiàn)。當(dāng) EOC 為高電平時(shí),表明轉(zhuǎn)換結(jié)束;否則,表明正在進(jìn)行 A/D 轉(zhuǎn)換。通道選擇表如下表所示。3 引腳結(jié)構(gòu)IN0-IN7:8 條模擬量輸入通道ADC0809 對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是 0-5V,若信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過(guò)程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。它是逐次逼近式 A/D 轉(zhuǎn)換器,可以和單片機(jī)直接接口。dispbuf[4]=minite/10。if(hour==24){hour=0。if(second==60){second=0。if(dispbitt==8){dispbitt=0。if(mstt==8){mstt=0。}dispbuf[6]=hour%10。j0。while(P0_1==0)。if(P0_1==0){minite++。i0。}dispbuf[0]=second%10。j0。EA=1。TH0=0x06。unsigned int tt。unsigned char dispbitt。while(P3_7==0)。}void main(void){while(1){if(P3_7==0){delay10ms()。i0。繼續(xù)對(duì) K1 按鍵掃描DELAY10MS: MOV R6,20 。計(jì)數(shù)內(nèi)容加 1,并送出 P1 端口由CPL A 。判斷 SP1 是否按下LCALL DELAY10MS 。初始化 R1 為 0,表示從 0 開(kāi)始計(jì)數(shù)MOV A, R1 。具體的一個(gè)按鍵從按下到釋放的全過(guò)程的信號(hào)圖如上圖所示:從圖中可以看出,我們?cè)诔绦蛟O(shè)計(jì)時(shí),從按鍵被識(shí)別按下之后,延時(shí) 5ms 以上,從而避開(kāi)了干擾信號(hào)區(qū)域,我們?cè)賮?lái)檢測(cè)一次,看按鍵是否真得已經(jīng)按下,若真得已經(jīng)按下,這時(shí)肯定輸出為低電平,若這時(shí)檢測(cè)到的是高電平,證明剛才是由于干擾信號(hào)引起的誤觸發(fā),CPU 就認(rèn)為是誤觸發(fā)信號(hào)而舍棄這次的按鍵識(shí)別過(guò)程。 0x0f。temp=temp amp。break。break。 0x0f。temp=temp amp。i)for(j=200。temp=temp amp。 0x0f。temp=temp amp。break。break。 0x0f。temp=temp amp。i)for(j=200。temp=temp amp。 0x0f。temp=temp amp。break。break。 0x0f。temp=temp amp。i)for(j=200。temp=temp amp。 0x0f。temp=temp amp。break。break。 0x0f。temp=temp amp。i)for(j=200。temp=temp amp。unsigned char i,j。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過(guò)軟件查表,查出該鍵的功能。對(duì)應(yīng)的按鍵的序號(hào)排列如圖12 所示每個(gè)按鍵有它的行值和列值 ,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。a)for(b=248。b=temp(7i)。i++) {if(P1_7==1){P0=table1[i]。Unsigned char code table2[]={0x78,0x79,0x38,0x38,0x3f}。動(dòng)態(tài)掃描方法:動(dòng)態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。if(Second==60){Second=0。P0=table[Second/10]。i)for(j=248。for(k=100。對(duì)于秒計(jì)數(shù)單元中的數(shù)據(jù)要把它十位數(shù)和個(gè)位數(shù)分開(kāi),方法仍采用對(duì) 10 整除和對(duì) 10 求余。delay()。s0。m0。因此,只要把控制碼建成一個(gè)表,而利用 MOVC A,@A+DPTR 做取碼的操作,就可方便地處理一些復(fù)雜的控制動(dòng)作,取表過(guò)程如下圖所示:匯編源程序ORG 0START: MOV DPTR,TABLELOOP: CLR AMOVC A,A+DPTRCJNE A,01H,LOOP1JMP STARTLOOP1: MOV P1,AMOV R3,20LCALL DELAYINC DPTRJMP LOOPDELAY: MOV R4,20D1: MOV R5,248圖6 程序流程圖DJNZ R5,$DJNZ R4,D1DJNZ R3,DELAYR RETT ABLE: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0F
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1