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

正文內(nèi)容

基于16f887單片機(jī)數(shù)字鐘課設(shè)設(shè)計(jì)報(bào)告word格式(存儲(chǔ)版)

  

【正文】 AAAA[2])。 //如果數(shù)組[1]元素值大于0x59,則整個(gè)數(shù)都清零 if(c==0) WRITE_DS1307_interrupt(0x01,AAAA[1])。//數(shù)組[0]元素的低四位大于9時(shí),則低四位清零而高四位進(jìn)1位 } if(AAAA[0]0x59) AAAA[0]=AAAA[0]amp。0xF0。 DISP_HEX_interrupt(AAAA[6])。//將經(jīng)過(guò)修改的數(shù)組元素寫入 else if(c==1) { LCD_WRITE_interrupt(LINE1+7,COM)。//如果數(shù)組[4]元素等于0時(shí),則整個(gè)數(shù)值改為0x31 if(c==0) WRITE_DS1307_interrupt(0x04,AAAA[4])。 } }//時(shí)部分校正if(a==3){ AAAA[2]=1。 AAAA[2]=AAAA[2]+0x23。 AAAA[1]=AAAA[1]+0x09。 } }//秒部分校正if(a==1){ AAAA[0]=1。 AAAA[0]=AAAA[0]+0x59。 //選擇I/O口 OPTION=0b00000000。 //LCD初始化 IIC_CSH()。 //延時(shí)100us LCD_WRITE_4(0b0010,COM)。 //發(fā)送 SSPIF=0。 while (RW==1)。 //使能高速模式(400 kHz) 的壓擺率控制 SSPADD=9。 //等待重新開(kāi)始條件結(jié)束 IIC_SEND((TC74_ADD1)+1)。 SW=R1/10。 //顯示十位 LCD_WRITE(GW+0x30,DAT)。 //第一行,年顯示定位 DISP_HEX(0x20)。,DAT)。 //顯示時(shí) LCD_WRITE(39。 //顯示秒}//寫ds1307,地址為address,數(shù)為datavoid WRITE_DS1307(char ADDRESS,char da){ START_BIT。 IIC_SEND_interrupt(da)。 RE_START_BIT。} //最后一節(jié)不應(yīng)答 } STOP_BIT。 r=R14。NOP()。 //讀數(shù)據(jù)結(jié)束 LCD_E=1。 //返回?cái)?shù)值}//寫一字節(jié)數(shù)R1,FLAG為寫命令或數(shù)據(jù)選擇,0為寫命令,1為寫數(shù)據(jù)//寫之前先檢查是否忙,寫完后延時(shí)100us,分二次寫4位數(shù)據(jù)/命令void LCD_WRITE(char R1,char FLAG){ char R2。 //高4位清0,取低4位 LCD_WRITE_4(R2,FLAG)。 //先寫高4位 R2=R1 amp。 //寄存器選擇 PORTD amp。NOP()。 0x80)==0x00) //最高位為忙標(biāo)志位 break。 for (i=0。 char k。jn。k0。jn。}//延時(shí)(n10)us程序void DELAY_US(char n){ char j。 //因?yàn)槲次策€有結(jié)束字符 DISP_C(LINE[i])。i++) LCD_WRITE(DD[i],DAT)。 while(1) { R1=LCD_READ()。NOP()。 //寫模式 LCD_RS=FLAG。 //低4位清0 R2=R24。 //先寫高4位 R2=R1 amp。 //讀數(shù)據(jù)結(jié)束 LCD_RW=0。 //讀數(shù)據(jù)的高4位給R1 LCD_E=0。 LCD_RS=0。 LCD_WRITE(r+0x30,DAT)。 //讀1字節(jié) if(in1) {ACK_BIT。 //設(shè)定寄存器初始地址 STOP_BIT。 IIC_SEND_interrupt(ADDR)。,DAT)。*/ //顯示星期,周日為0 LCD_WRITE(HOUR_P,COM)。 LCD_WRITE(39。}//顯示日期與時(shí)間void DISP_TIME(char *b){ DELAY(10)。,DAT)。 return(R2)。 //寫RTR命令(寫) RSEN=1。 //SDA,SCL設(shè)置為輸入! SSPCON=0b00101000。}//發(fā)送數(shù)R并等待發(fā)送完成,收到從機(jī)的應(yīng)答信號(hào),中斷用void IIC_SEND_interrupt(char R) { SSPBUF=R。 //延時(shí)2ms LCD_WRITE(0b00000110,COM)。 //延時(shí)100us LCD_WRITE_4(0b0011,COM)。 //允許全局中斷,B口電平變化中斷 FMQ=0。 //端口C中RC3和RC4為輸入,其余為輸出 ANSELH=0b00000000。0xF0)4)9) { AAAA[0]=AAAA[0]amp。//將經(jīng)過(guò)修改的數(shù)組元素寫入 else if(c==1) { LCD_WRITE_interrupt(LINE2+5,COM)。0x0F)9) { AAAA[1]=AAAA[1]amp。0xF0)4)9) { AAAA[2]=AAAA[2]amp。//將經(jīng)過(guò)修改的數(shù)組元素寫入 else if(c==1) { LCD_WRITE_interrupt(LINE1+13,COM)。 AAAA[4]=AAAA[4]+0x09。 //數(shù)組[5]元素的低四位大于9時(shí),則低四位清零且改為0x09,而高四位則自動(dòng)減1 } if(AAAA[5]==0x00) AAAA[5]=AAAA[5]+0x12。//如果數(shù)組[6]元素高四位大于9時(shí),則整個(gè)數(shù)值清零再改為0x99 } if(c==0) WRITE_DS1307_interrupt(0x06,AAAA[6])。 //如果a==0,則數(shù)組[6]自動(dòng)減1 if((AAAA[6]amp。0xF0。//數(shù)組[1]元素的低四位大于9時(shí),則低四位清零而高四位進(jìn)1位 } if(AAAA[1]0x59) AAAA[1]=AAAA[1]amp。//如果數(shù)組[2]元素值大于0x24,則整個(gè)數(shù)都清零 } if(c==0) WRITE_DS1307_interrupt(0x02,AAAA[2])。 DISP_HEX_interrupt(AAAA[3])。 AAAA[4]=AAAA[4]+0x01。 DISP_HEX_interrupt(AAAA[5])。0x0F)9) { AAAA[5]=AAAA[5]amp。 AAAA[6]=AAAA[6]+0x10。 } if(c==3) //鬧鐘按第三下時(shí),蜂鳴器響 {FMQ=0。} if(RB2==0) //同上 {DEC()。amp。 //標(biāo)志位清零 if(RB3==0) //鬧鐘鍵按下 { a=0。 LCD_WRITE(39。,DAT)。i39。//同上 } else if(b==5) //如果b=5,則顯示Fri { LCD_WRITE(LINE1+13,COM)。T39。 LCD_WRITE(39。,DAT)。n39。 }//顯示字母星期void DISP_XINGQI(char b){ if(b==1) //如果b=1,則顯示Mon { LCD_WRITE(LINE1+13,COM)。 //同上 DISP_T(R1)。 //5月 WRITE_DS1307(0x06,0x12)。 //延遲2秒,看清顯示是什么 LCD_WRITE(0b00000001,COM)。 //中斷用將一個(gè)字節(jié)顯示成兩個(gè)字節(jié) //整屏界面,每行16個(gè)字符,最后加一個(gè)結(jié)束符const char MENU0[2][17]={{ 010900628 },{ linyixing }}。 //按鍵中斷程序void DISP_XINGQI(char)。 //BCD碼轉(zhuǎn)換void DELAY_US(char)。 //LCD寫1字節(jié),命令或數(shù)據(jù)void LCD_WRITE_4(char,char)。 \ while(ACKEN==1)bank1 char DD[16]。define LCD_E RD6 //LCD E 讀寫使能控制define LCD_RW RD5 //LCD 讀(1)/寫(0)控制線define LINE1 0b10000000define LINE2 0b11000000define LCD_RS RD4 //LCD 寄存器選擇 數(shù)據(jù)(1)指令(0) //RD4RD7分別接DB4DB7,RD7為忙標(biāo)志define COM 0 //在LCD_WRITE()中的第2參數(shù)為0表示寫命令define DAT 1 //在LCD_WRITE()中的第2參數(shù)為1表示寫數(shù)據(jù)define TC74_ADD 0b1001101 //TC74的7位地址define RTR 0b00000000 //TC74的讀溫度命令define ADDR 0b11010000 //時(shí)鐘芯片的地址define YEAR_P LINE1+2 //年的顯示位置define HOUR_P LINE2+2 //時(shí)的顯示位置define KEY_DEC RB2define KEY_INC RB1define FMQ RC1//產(chǎn)生起始位,檢測(cè)完成起始位?define START_BIT \ SEN=1。不僅要教我們軟件的基本使用方法,也要教我們?nèi)绾斡密浖榫幊绦蛑谐霈F(xiàn)的錯(cuò)誤。我再次仿真一下,這次鬧鐘鍵第二次按下時(shí),蜂鳴器不直接響了,而是在定時(shí)時(shí)間到時(shí)才響的。即我的本意是要鬧鐘設(shè)定的時(shí)間到時(shí),蜂鳴器才響的。再次編譯,OPTION寄存器可以識(shí)別了。我在循環(huán)里把時(shí)鐘芯片的時(shí)間不斷讀出來(lái),再把時(shí)間顯示在液晶上,這樣時(shí)間就可以一直走了。我用的是LM1602L液晶,顯示行數(shù)控制位N為1表示顯示兩行,為0表示顯示1行,即第一行。 課設(shè)過(guò)程遇到的問(wèn)題及解決措施我就按我做課設(shè)過(guò)程的順序來(lái)說(shuō)明一下我遇到的問(wèn)題和解決方案。 關(guān)于PIC課設(shè)之前我對(duì)PIC課設(shè)感到擔(dān)心害怕,因?yàn)槲乙郧皼](méi)有做過(guò)課設(shè),不知道該怎么去做。 //顯示十位 LCD_WRITE(GW+0x30,DAT)。 //停止位 while(PEN==0)。 //送TC74地址(寫) IIC_SEND(RTR)。 LCD_WRITE(39。,DAT)。//第二行第13位 LCD_WRITE(39。 } }}此功能從DS1307中讀出時(shí)間數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行加減運(yùn)算,再把修改后的時(shí)間寫入到時(shí)鐘芯片中,即可實(shí)現(xiàn)對(duì)時(shí)間的加減運(yùn)算。0x0F)9) { AAAA[6]=AAAA[6]amp。 //等待發(fā)送完成 while (ACKSTAT==1)。 IIC_SEND(ADDR)。 //寫控制字到LCDWRITE_DS1307(0x00,0x00)。先是對(duì)要顯示的位置進(jìn)行定位,如第一行第0位。NOP()。 //寫模式 LCD_RS=FLAG。 //低4位清0 R2=R24。 LCD_WRITE(line,COM)。 for (i=0。 //允許全局中斷,B口電平變化中斷 FMQ=0。 //端口C中RC3和RC4為輸入,其余為輸出 ANSELH=0b00000000。當(dāng)RC1輸出低電平時(shí),二極管截止,蜂鳴器停止響。其中芯片上讀出來(lái)的星期是數(shù)字星期(01即代表星期一),軟件部分將數(shù)字星期轉(zhuǎn)換成字母星期(如Wed為星期三)。DS1307和TC74經(jīng)CPU顯示在液晶上。要求用4位數(shù)據(jù)線通訊,傳送命令也
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1