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

正文內(nèi)容

基于單片機的智能調(diào)光燈設計-資料下載頁

2024-11-07 21:28本頁面

【導讀】增強團隊合作意識,提高基本工作技能,為即將踏入社會奠定理論。1)顯示當前的時間,24時制的時、分、秒;3)可調(diào)節(jié)LED光亮度;1.第一周~第一周收集設計系統(tǒng)相關(guān)資料。2.第二周~第三周用PROTUSE設計硬件原理圖并進行器件選型。6.第十三周~第十四周完成修改稿,定稿,打印,交評閱。邊亮度小時,LED燈過暗,又不能提供足夠和恰當?shù)墓舛?。時鐘功能的臺燈的應用,有著非常現(xiàn)實的意義,具有很大的實用價值。件設計和各部分軟件設計以及軟件流程圖。該設計是以AT89C52單片機為控制。核心的集多種功能于一體的智能LED臺燈。單片機控制用AT89C52,顯示模塊用LCD1602液晶顯示時

  

【正文】 *// void Write_LCD_Data(uchar dat) { LCD_Busy_Wait()。 RS=1。 RW=0。 西北工業(yè)大學明德學院本科畢業(yè)設計論文 28 EN=0。 P0=dat。 EN=1。 DelayMS(2)。 EN=0。 } //*LCD 初始化 *// void Initialize_LCD1602() //液晶初始化函數(shù) { Write_LCD_Command(0x38)。DelayMS(2)。 //功能設置,數(shù)據(jù)長度為 8位,雙行顯示, 5 7 點陣字體 Write_LCD_Command(0x01)。DelayMS(2)。 //清屏 Write_LCD_Command(0x06)。DelayMS(2)。 //字符進入模式:屏幕不動,字符后移 Write_LCD_Command(0x0c)。DelayMS(2)。 // 顯示開,關(guān)光標 } //*設置液晶顯示位置 *// void Set_LCD_Position(uchar pos) { Write_LCD_Command(pos|0x80)。 //設置 7位的 DDRAM 地址值 } //*在 LCD 上顯示字符串 *// void LCD_Display(uchar p,uchar *str) { uchar i。 Set_LCD_Position(p)。 for(i=0。i16。i++) { Write_LCD_Data(str[i])。 DelayMS(2)。 } } //* 源程序 *// //*用 DS1302 和 1602 液晶顯示的實時時鐘 *// include include include define uchar unsigned char define uint unsigned int void Initialize_LCD1602()。 //液晶初始化函數(shù) void LCD_Display(uchar p,uchar *str)。 sbit SDA=P1^0。 //DS1302 數(shù)據(jù)線 sbit CLK=P1^1。 //DS1302 時鐘線 sbit RST=P1^2。 // DS1302 復位線 西北工業(yè)大學明德學院本科畢業(yè)設計論文 29 sbit k1=P3^4。 // 選擇按鍵 sbit k2=P3^5。 // 加 sbit k3=P3^6。 // 減 sbit k4=P3^7。 // 確定 uchar tcount=0。 uchar MonthsDays[]={0,31,0,31,30,31,30,31,31,30,31,30,31}。 // 一年中每個月的天數(shù),二月的天數(shù)由年份決定 uchar *Week[]={SUN,MON,TUS,WEN,THU,FRI,SAT}。 //周日,周一到周六 // LCD 顯示緩沖 uchar LCD_DSY_BUFFER1[]={DATE 000000 } 。 uchar LCD_DSY_BUFFER2[]={TIME 00:00:00 } 。 uchar DateTime[7]。//所讀取的日期時間 char Adjust_Index=1。 //當前調(diào)節(jié)的時間對象:秒,分,時,日,月,年( 0,1, 2, 3, 4, 6) uchar Change_Flag[]=MHDMY。//(分,時,日,月,年 )不調(diào)節(jié)秒和周 //函數(shù)聲明 void Write_Byte_TO_DS1302(uchar X)。 // 向 DS1302 寫入一個字節(jié) uchar Read_Byte_FROM_DS1302()。 //從 DS1302 中讀取一個字節(jié) uchar Read_Data_FROM_DS1302(uchar addr)。 //從 DS1302 指定位置讀取數(shù)據(jù) , 讀數(shù)據(jù) void Write_Data_TO_DS1302(uchar addr,uchar dat)。 // 向 DS1302 指定位置寫入數(shù)據(jù) , 寫數(shù)據(jù) void SET_DS1302()。 // 設置時間 void GetTime()。 // 讀取當前時間 void Initialization()。 //初始化函數(shù) //*主程序 *// void main() { Initialization()。 while(1) { if(Adjust_Index==1) GetTime()。 } } //*初始化函數(shù) *// void Initialization() { Initialize_LCD1602()。 //調(diào)用液晶初始化函數(shù) IE=0x83。 //允許中斷 外部 0 中斷和 T0 中斷 IP=0x01。 // 設置中斷優(yōu)先級 IT0=0x01。 // 設置外部中斷的脈沖觸發(fā)方式 TMOD=0x01。 // 設置定時器的工作方式,為方式 1 西北工業(yè)大學明德學院本科畢業(yè)設計論文 30 TH0=50000/256。 // 寫入初值 TL0=50000%256。 // 寫入初值 TR0=1。 // 啟動定時器 } //*寫字節(jié)函數(shù),向 DS1302 寫入一個字節(jié) *// void Write_Byte_TO_DS1302(uchar X) // 向 DS1302 寫入一個字節(jié) { uchar i。 for(i=0。i8。i++) { SDA=Xamp。1。 CLK=1。 CLK=0。 X=1。 } } //*讀字節(jié)函數(shù),從 DS1302 讀取一個字節(jié) *// uchar Read_Byte_FROM_DS1302() //從 DS1302 中讀取一個字節(jié) { uchar i,byte,t。 for(i=0。i8。i++) { byte=1。 t=SDA。 byte|=t7。 CLK=1。 CLK=0。 } // //BCD 碼轉(zhuǎn)換 // return byte/16*10+byte%16。 } // //從 DS1302 指定位置讀取數(shù)據(jù) ,讀數(shù)據(jù) // uchar Read_Data_FROM_DS1302(uchar addr) //從 DS1302 指定位置讀取數(shù)據(jù) , 讀數(shù)據(jù) { uchar dat。 RST=0。 CLK=0。 RST=1。 Write_Byte_TO_DS1302(addr)。 //向 DS1302 寫入一個地址 西北工業(yè)大學明德學院本科畢業(yè)設計論文 31 dat=Read_Byte_FROM_DS1302()。 //在上面寫入的地址中讀取數(shù)據(jù) CLK=1。 RST=0。 return dat。 } // //向 DS1302 指定位置寫入數(shù)據(jù) , 寫數(shù)據(jù) // void Write_Data_TO_DS1302(uchar addr,uchar dat) // 向 DS1302 指定位置寫入數(shù)據(jù) , 寫數(shù)據(jù) { CLK=0。 RST=1。 Write_Byte_TO_DS1302(addr)。 Write_Byte_TO_DS1302(dat)。 CLK=1。 RST=0。 } // // 設置時間 // void SET_DS1302() // 設置時間 { uchar i。 Write_Data_TO_DS1302(0x8E,0x00)。 //寫控制字,取消寫保護 // 分,時,日,月,年依次寫入 for(i=1。i7。i++) { // 分的起始地址是 10000010(0x82), 后面依次是時,日,月,周,年,寫入地址每次遞增 2 Write_Data_TO_DS1302(0x80+2*i,(DateTime[i]/104)|(DateTime[i]%10))。 } Write_Data_TO_DS1302(0x8E,0x80)。 //寫控制字,加寫保護 } // // 讀取當前時間 // void GetTime() // 讀取當前時間 { uchar i。 for(i=0。i7。i++) { DateTime[i]=Read_Data_FROM_DS1302(0x81+2*i)。 西北工業(yè)大學明德學院本科畢業(yè)設計論文 32 } } // //日期與時間值轉(zhuǎn)換為數(shù)字字符 // void Format_DateTime(uchar d,uchar *a) { a[0]=d/10+39。039。 a[1]=d%10+39。039。 } // // 判斷是否為閏年 // uchar Is_Leapyear(uint year) { return (year%4==0amp。amp。year%100!=0)||(year%400==0) 。 } // // 求自 開始的任何一天是星期幾? //void Refresh_Week_Day() { uint i,d,w=5。 //已知 1999 年 是星期五 for(i=2020。i2020+DateTime[6]。i++) { d=Is_Leapyear(i)?366:365。 w=(w+d)%7。 } d=0。 for (i=1。iDateTime[4]。i++) {d+=MonthsDays[i]。} d+=DateTime[3]。 //保存星期, 06表示星期日,星期一至星期六 ,為了與 DS1302 的星期格式匹配,返回值需要加 1 DateTime[5]=(w+d)%7+1。 } // //年,月,日和時,分 ++/ // void Datetime_Adjust(char X) { switch(Adjust_Index) { case 6: //年調(diào)整, 0099 西北工業(yè)大學明德學院本科畢業(yè)設計論文 33 if(X==1amp。amp。DateTime[6]99) { DateTime[6]++。 } if(X==1amp。amp。DateTime[6]0) { DateTime[6]。 } //獲取 2 月天數(shù) MonthsDays[2]=Is_Leapyear(2020+DateTime[6])?29:28。 //如果年份變化后當前月份的天數(shù)大于上限則設為上限 if(DateTime[3]MonthsDays[DateTime[4]]) { DateTime[3]=MonthsDays[DateTime[4]]。 } Refresh_Week_Day()。 //刷新星期 break。 case 4: //月調(diào)整 0112 if(X==1amp。amp。DateTime[4]12) { DateTime[4]++。 } if(X==1amp。amp。DateTime[4]1) { DateTime[4]。 } //獲取 2
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1