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

正文內(nèi)容

基于單片機(jī)的多功能萬(wàn)年歷-在線瀏覽

2025-08-06 16:43本頁(yè)面
  

【正文】 Pin14;RW=0,數(shù)據(jù)被寫(xiě)到Pin7Pin14l Pin6:使能信號(hào)l Pin7Pin14:數(shù)據(jù)線l Pin15:背光正極l Pin16:背光負(fù)極控制時(shí)序表RSRWEPin7Pin14功能001輸入寫(xiě)指令代碼01下降沿輸出讀BF和AC值101輸入寫(xiě)顯示數(shù)據(jù)11下降沿輸出讀顯示數(shù)據(jù)報(bào)警模塊電路原理圖如下:由于本系統(tǒng)只需發(fā)出簡(jiǎn)單的聲音,因此采用了有源蜂鳴器,以減少程序的復(fù)雜程度。下面是本套系統(tǒng)的全部程序:includeinclude define uchar unsigned chardefine uint unsigned int define RdCommand 0x01 //定義ISP的操作命令define PrgCommand 0x02define EraseCommand 0x03define WaitTime 0x01 //定義CPU的等待時(shí)間define row_1 0x80 //第一行的初始位置define row_2 0x80+0x40 //第二行初始位置sfr ISP_DATA=0xe2。sfr ISP_ADDRL=0xe4。sfr ISP_TRIG=0xe6。sbit bell=P1^0。sbit RW=P0^6。sbit SCLK=P0^2。 sbit RST=P0^0。sbit ACC7=ACC^7。sbit Ckey=P3^3。sbit keyup=P3^5。sbit secled=P1^2。sbit DQ=P3^6。uchar nian,week,flag,temp,Tkeyn,Akeyn,stopwn。char ala[]=Alarm。s time!。uint ahour,aminute,asecond。uchar code digit[10]={0123456789}。 //說(shuō)明顯示的是溫度uchar code Error[]={Error!Check!}。 //溫度單位int bdata TEMP1。void baoshi()。void ISP_IAP_enable(void) /* ================ 打開(kāi) ISP,IAP 功能 ================= */{ EA = 0。 0x18。 /* 寫(xiě)入硬件延時(shí)*/ ISP_CONTR = ISP_CONTR | 0x80。 0x7f。 EA = 1。 /* 打開(kāi) ISP,IAP 功能*/ ISP_TRIG = 0x46。 /* 觸發(fā)ISP_IAP命令字節(jié)2*/ _nop_()。/* 地址賦值*/ ISP_ADDRL = (unsigned char)(byte_addr amp。 ISP_CMD = ISP_CMD amp。 /* 清除低3位 */ ISP_CMD = ISP_CMD | RdCommand。 /* 觸發(fā)執(zhí)行*/ ISP_IAP_disable()。 /* 返回讀到的數(shù)據(jù)*/}void SectorErase(unsigned int sector_addr) /* =========== 扇區(qū)擦除 ============ */{ unsigned int iSectorAddr。 0xfe00)。 ISP_ADDRL = 0x00。 0xf8。 /* 擦除命令3 */ ISPgoon()。 /* 關(guān)閉ISP,IAP功能*/}void EEP_write(unsigned int byte_addr, unsigned char original_data) /* ==== 字節(jié)寫(xiě) ==== */{ ISP_ADDRH = (unsigned char)(byte_addr 8)。 0x00ff)。 0xf8。 /* 寫(xiě)命令2 */ ISP_DATA = original_data。 /* 觸發(fā)執(zhí)行 */ ISP_IAP_disable()。 TEMP1=bitm。0X01。i7。 TEMP2=TEMP21。0X01。}void delay(uint xms)//延時(shí)函數(shù){ uint x,y。x0。y0。}/******************液晶寫(xiě)入************************/void Lcd(uchar )//液晶寫(xiě)入指令函數(shù){ RS=0。//送入數(shù)據(jù) delay(1)。//拉高使能端 delay(1)。//完成高脈沖}void Lcddat(uchar dat){ RS=1。//送入數(shù)據(jù) delay(1)。 delay(1)。}void write_hyear(){ uchar gw,sw。 gw=hyear%10。 Lcddat(0x30+sw)。 } /*********************over***********************//********************ds1302****************************/void write_byte(uchar dat){ ACC=dat。 for(a=8。a) { IO=ACC0。 SCLK=1。 }}uchar read_byte(){ RST=1。a0。 SCLK=1。 ACC=ACC1。}void write_1302(uchar add,uchar dat){ RST=0。 RST=1。 write_byte(dat)。 RST=0。 RST=0。 RST=1。 t=read_byte()。 RST=0。}uchar BCD_Decimal(uchar bcd){ uchar Decimal。 return(Decimal=Decimal*10+(bcdamp。}void ds1302_init(){ RST=0。 write_1302(0x80,miao)。 gw=dat%10。 Lcd(row_2+add)。 Lcddat(0x30+gw)。 alarm()。 year=hyear*100+nian。 sw=dat/10。(year%4==0))) { Lcd(row_2+0)。Y39。 } else { Lcd(row_2+0)。N39。 } Lcd(row_1+add)。 Lcddat(0x30+gw)。 switch(week) { case 1:Lcddat(39。)。O39。 Lcddat(39。)。 case 2:Lcddat(39。)。U39。 Lcddat(39。)。 case 3:Lcddat(39。)。E39。 Lcddat(39。)。 case 4:Lcddat(39。)。H39。 Lcddat(39。)。 case 5:Lcddat(39。)。R39。 Lcddat(39。)。 case 6:Lcddat(39。)。A39。 Lcddat(39。)。 case 7:Lcddat(39。)。U39。 Lcddat(39。)。 }}void lcd_init() //液晶初始化函數(shù){ RW=0。 //設(shè)置液晶工作模式 Lcd(0x0c)。 //整屏不移動(dòng),指針加一 Lcd(0x01)。 //字符寫(xiě)入的位置 hyear=EEP_read(0x2000)。 Lcddat(0x30+hyear%10)。 //字符寫(xiě)入的位置 nian=EEP_read(0x2200)。 Lcddat(0x30+nian%10)。 Lcddat(39。)。 Lcddat(39。)。 Lcddat(39。)。 Lcddat(39。)。 //延時(shí)15ms,首次寫(xiě)指令時(shí)應(yīng)給LCD一段較長(zhǎng)的反應(yīng)時(shí)間 Lcd(0x38)。 //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 Lcd(0x38)。 //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 Lcd(0x38)。 //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 Lcd(0x0c)。 //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 Lcd(0x06)。 //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 Lcd(0x01)。 //延時(shí)5ms ,給硬件一點(diǎn)反應(yīng)時(shí)間 } void lcdala(uint addr, uint dat){ uint gw,sw。 sw=dat/10。 Lcddat(0x30+sw)。}void Akeyscan(){ if(Akey==0) { delay(3)。 secled=1。 Akeyn++。 switch(Akeyn) { case 1: TR0=0。 Lcd(row_1)。al5。 ahour=EEP_read(0x2400)。 asecond=EEP_read(0x2800)。 Lcddat(0x30+ahour/10)。 Lcddat(39。)。 Lcddat(0x30+aminute%10)。:39。 Lcddat(0x30+asecond/10)。 Lcd(row_2+5)。 //設(shè)置光標(biāo)為閃爍 break。 break。 break。 //設(shè)置光標(biāo)不閃爍 lcd_init()。 secled=0。 break。 if(keyup==0) { while(keyup==0)。 if(ahour==24) ahour=0。 EEP_write(0x2400,ahour)。 Lcd(row_2+0x05)。 case 2: aminute++。 SectorErase(0x2600)。 lcdala(7,aminute)。 break。 if(asecond==60) asecond=0。 EEP_write(0x2800,asecond)。 Lcd(row_2+0x0b)。 } } } if(keydown==0) { delay(5)。 switch(Akeyn) { case 1: ahour。 SectorErase(0x2400)。 lcdala(4,ahour)。 break。 if(aminute==1) aminute=59。 EEP_write(0x2600,aminute)。 Lcd(row_2+0x08)。 case 3: asecond。 SectorErase(0x2800)。 lcdala(10,asecond)。 break。 if(Tkey==0) { setled=0。 while(Tkey==0)。 if(Tkeyn==10) Tkeyn=1。 //關(guān)閉定時(shí)器 Lcd(row_1+0x05)。 //設(shè)置光標(biāo)為閃爍 Lcd(row_1+0x03)。 case 2:Lcd(row_1+0x05)。 case 3: Lcd(row_1+0x08)。 case 4: Lcd(row_1+0x0b)。 case 5: Lcd(row_1+0x0f)。 case 6: Lcd(row_2+5)。 case 7: Lcd(row_2+8)。 case 8: Lcd(row_2+11)。 write_1302(0x8e,0x00)。 //second write_1302(0x8e,0x80)。 case 9: Lcd(0x0c)。 TR0=1。 write_1302(0x8e,0x00)。 //second write_1302(0x8e,0x80)。 secled=0。 } } } if(Tkeyn!=0)//當(dāng)key1按下以下。 if(keyup==0) { while(keyup==0)。 if(hyear==100) hyear=0。//擦除扇區(qū) EEP_write(0x2000,hyear)。
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1