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

正文內容

基于51單片機電子鬧鐘或萬年歷的設計(編輯修改稿)

2025-02-14 14:28 本頁面
 

【文章內容簡介】 55%10)))。 //根據(jù)寫秒寄存器命令字,寫入秒的初始值 WriteSet1302(0x82,((59/10)4|(59%10)))。 //根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,((23/10)4|(23%10)))。 //根據(jù)寫小時寄存器命令字,寫入小時的初始值 WriteSet1302(0x86,((18/10)4|(18%10)))。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((6/10)4|(6%10)))。 //根據(jù)寫月寄存器命令字,寫入月的初始值 WriteSet1302(0x8c,((14/10)4|(9%10)))。 //根據(jù)寫年寄存器命令字,寫入年的初始值 WriteSet1302(0x90,0xa5)。 //打開充電功能 選擇2K電阻充電方式 WriteSet1302(0x8E,0x80)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護指令 } }*/ //如果不想每次都初始化時間,也就是掉電后還想讓時鐘繼續(xù)走時的話 就用上面的語句 /*這是每次都初始化的語句*/ //2015017 Tue 22:36:55 WriteSet1302(0x8E,0x00)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護指令 WriteSet1302(0x80,((sec/10)4|(sec%10)))。 //根據(jù)寫秒寄存器命令字,寫入秒的初始值 WriteSet1302(0x82,((min/10)4|(min%10)))。 //根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,((hour/10)4|(hour%10)))。 //根據(jù)寫小時寄存器命令字,寫入小時的初始值 WriteSet1302(0x86,((dt/10)4|(dt%10)))。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((mon/10)4|(mon%10)))。 //根據(jù)寫月寄存器命令字,寫入月的初始 WriteSet1302(0x8c,(year/10)4|(year%10))。 //根據(jù)寫年寄存器命令字,寫入年的初始值 WriteSet1302(0x90,0xa5)。 //打開充電功能 選擇2K電阻充電方式 WriteSet1302(0x8E,0x80)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護指令 } /*******************************************************************************以下是對液晶模塊的操作程序*******************************************************************************/sbit RS=P2^0。 //寄存器選擇位,sbit RW=P2^1。 //讀寫選擇位,sbit E=P2^2。 //使能信號位,sbit BF=P0^7。 //忙碌標志位,/*****************************************************函數(shù)功能:延時1ms(3j+2)*i=(333+2)10=1010(微秒),可以認為是1毫秒***************************************************/void delay1ms(){ unsigned char i,j。 for(i=0。i10。i++) for(j=0。j33。j++) 。 }/*****************************************************函數(shù)功能:延時若干毫秒入口參數(shù):n***************************************************/ void delaynms(unsigned char n) { unsigned char i。 for(i=0。in。i++) delay1ms()。 } /****蜂鳴器程序*****/void beep(){ unsigned char t。 for(t=0。t200。t++){ BEEP=1。 delaynus(500)。 BEEP=0。 delaynus(500)。 }}/*****************************************************函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌。result=0,不忙***************************************************/bit BusyTest(void) { bit result。 RS=0。 //根據(jù)規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài) RW=1。 E=1。 //E=1,才允許讀寫 _nop_()。 //空操作 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應時間 result=BF。 //將忙碌標志電平賦給result E=0。 //將E恢復低電平 return result。 }/*****************************************************函數(shù)功能:將模式設置指令或顯示地址寫入液晶模塊入口參數(shù):dictate***************************************************/void WriteInstruction (unsigned char dictate){ while(BusyTest()==1)。 //如果忙就等待 RS=0。 //根據(jù)規(guī)定,RS和R/W同時為低電平時,可以寫入指令 RW=0。 E=0。 //E置低電平,寫指令時,E為高脈沖, // 就是讓E從0到1發(fā)生正跳變,所以應先置0 _nop_()。 _nop_()。 //空操作兩個機器周期,給硬件反應時間 P0=dictate。 //將數(shù)據(jù)送入P0口,即寫入指令或地址 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應時間 E=1。 //E置高電平,寫指令 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應時間 E=0。 //當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 }/*****************************************************函數(shù)功能:指定字符顯示的實際地址入口參數(shù):x***************************************************/ void WriteAddress(unsigned char x) { WriteInstruction(x|0x80)。 //顯示位置的確定方法規(guī)定為80H+地址碼x }/*****************************************************函數(shù)功能:將數(shù)據(jù)(字符的標準ASCII碼)寫入液晶模塊入口參數(shù):y(為字符常量)***************************************************/ void WriteData(unsigned char y) { while(BusyTest()==1)。 RS=1。 //RS為高電平,RW為低電平時,可以寫入數(shù)據(jù) RW=0。 E=0。 //E置低電平,寫指令時,E為高脈沖, // 就是讓E從0到1發(fā)生正跳變,所以應先置0 P0=y。 //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應時間 E=1。 //E置高電平,寫數(shù)據(jù) _nop_()。 _nop_()。 _nop_()。 _nop_()。 //空操作四個機器周期,給硬件反應時間 E=0。 //當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令 }/*****************************************************函數(shù)功能:對LCD的顯示模式進行初始化設置***************************************************/void LcdInitiate(void){ delaynms(15)。 //延時15ms,首次寫指令時應給LCD一段較長的反應時間 WriteInstruction(0x38)。 //顯示模式設置:162顯示,57點陣,8位數(shù)據(jù)接口 delaynms(5)。 //延時5ms ,給硬件一點反應時間 WriteInstruction(0x38)。 delaynms(5)。 //延時5ms ,給硬件一點反應時間 WriteInstruction(0x38)。 //連續(xù)三次,確保初始化成功 delaynms(5)。 //延時5ms ,給硬件一點反應時間 WriteInstruction(0x0c)。 //顯示模式設置:顯示開,無光標,光標不閃爍 delaynms(5)。 //延時5ms ,給硬件一點反應時間 WriteInstruction(0x06)。 //顯示模式設置:光標右移,字符不移 delaynms(5)。 //延時5ms ,給硬件一點反應時間 WriteInstruction(0x01)。 //清屏幕指令,將以前的顯示內容清除 delaynms(5)。 //延時5ms ,給硬件一點反應時間 } /**************************************************************以下是1302數(shù)據(jù)的顯示程序**************************************************************//*****************************************************函數(shù)功能:顯示秒入口參數(shù):x***************************************************/ void DisplaySecond(unsigned char x){ unsigned char i,j。 //j,k分別儲存十位和個位 i=x/10。//取十位 j=x%10。//取個位 WriteAddress(0x49)。 //寫顯示地址,將在第2行第10列開始顯示 WriteData(digit[i])。 //將百位數(shù)字的字符常量寫入LCD WriteData(digit[j])。 //將十位數(shù)字的字符常量寫入LCD delaynms(50)。 //延時1ms給硬件一點反應時間 }/*****************************************************函數(shù)功能:顯示分鐘入口參數(shù):x***************************************************/ void DisplayMinute(unsigned char x){ unsigned char i,j。 //j,k十位和個位 i=x/10。//取十位 j=x%10。//取個位 WriteAddress(0x46)。 //寫顯示地址,將在第2行第7
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1