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

正文內(nèi)容

電子萬年歷的仿真與設(shè)計方案-文庫吧資料

2025-05-01 13:39本頁面
  

【正文】 Set1302(0x8d)。 delay1ms(500)。 } WriteSet1302(0x8e,0x80)。 break。 if(CANL==0) { mode=0。 Write_Address(0x4D)。 } } delay1ms(1)。 WriteSet1302(0x80,0x00)。 while(1) { if(ADD==0) { delay1ms(10)。 delay1ms(500)。 } WriteSet1302(0x8e,0x80)。 break。 if(CANL==0) { mode=0。 if(minute=60) minute=0。 Write_Address(0x4A)。 delay1ms(1)。 } } timevalue=((minute/10)4|(minute%10))。 if(minute==0) minute=59。 if(RED==0) { minute。 while(ADD==0)。 if(ADD==0) { minute++。0x0f))。 minute=(((timevalueamp。 WriteSet1302(0x8e,0x00)。}void minuteset(void) //調(diào)分{ unsigned char timevalue,minute。 } if(SET==0) break。 Write_(0x0c)。 delay1ms(5)。 delay1ms(5)。 display_Hour(hour)。 WriteSet1302(0x84,timevalue)。 while(RED==0)。 delay1ms(300)。 } } if(RED==0) { delay1ms(50)。 delay1ms(300)。 while(1) { if(ADD==0) { delay1ms(50)。0x70)4)*10+(timevalueamp。//將寫保護去掉,確保能正常將調(diào)整后的數(shù)值寫入DS1302 timevalue=ReadSet1302(0x85)。 delay1ms(500)。 delay1ms(5)。 delay1ms(5)。 display_Year(years)。0xf0)4)*10+(valueamp。 value=ReadSet1302(0x8D)。0x0f))。 months=(((valueamp。 display_Day(days)。0x70)4)*10+(valueamp。 value=ReadSet1302(0x87)。0x0f))。 hours=(((valueamp。 display_Minute(minutes)。0x70)4)*10+(valueamp。 value=ReadSet1302(0x83)。0x0f))。 seconds=(((valueamp。 Write_(0x0c)。}void display_Time(void) //顯示實時時間{ unsigned char value。 Write_Date(digit[i])。 j=x%10。}void display_seconda(unsigned char x)//鬧鐘秒針部分顯示 { unsigned char i,j。 Write_Date(digit[i])。 j=x%10。 }void display_minutea(unsigned char x)//鬧鐘分鐘部分顯示{ unsigned char i,j。 Write_Date(digit[i])。 j=x%10。}void display_houra(unsigned char x) //鬧鐘小時部分顯示{ unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x08)。 i=x/10。 delay1ms(1)。 Write_Date(digit[i])。 j=x%10。}void display_Montha(unsigned char x) //鬧鐘月份顯示{ unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x0E)。 i=x/10。 delay1ms(1)。 Write_Date(digit[i])。 j=year%10。}void display_Year(unsigned char year) //在液晶上顯示年{ unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x0B)。 i=month/10。 delay1ms(1)。 Write_Date(digit[i])。 j=day%10。}void display_Day(unsigned char day) //在液晶上顯示日{(diào) unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x46)。 i=hour/10。 delay1ms(1)。 Write_Date(digit[i])。 j=minute%10。}void display_Minute(unsigned char minute) { unsigned char i,j。 Write_Date(digit[j])。 Write_Address(0x4C)。 i=second/10。)。 Write_Date(39。239。 Write_Address(0x06)。:39。 Write_Address(0x4B)。:39。 Write_Address(0x48)。E39。)。 Write_Date(39。I39。)。 Write_Date(39。)。 Write_Date(39。)。 Write_Date(39。 Write_Address(0x0A)。)。 //Write_Date(39。E39。)。 Write_Date(39。A39。)。 Write_Date(39。 }void displaymainpart(void)//顯示液晶主要部分(不變化部分){ Write_Address(0x01)。 delay1ms(1)。 delay1ms(1)。 delay1ms(1)。 delay1ms(1)。 delay1ms(1)。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 RW=0。 delay1ms(1)。 E=0。 _nop_()。 E=1。 _nop_()。 P0=mand。 _nop_()。 E=0。 RS=0。 return result。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 RW=1。 /*液晶忙檢測*/bit BusyTest(void){ bit result。sbit E=P2^7。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護指令 } }/***************液晶顯示模塊*****************/sbit RS=P2^5。 //根據(jù)寫年寄存器命令字,寫入年的初始值 WriteSet1302(0x90,0xa5)。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((0/10)4|(0%10)))。 //根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,((0/10)4|(0%10)))。 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護指令 WriteSet1302(0x80,((0/10)4|(0%10)))。 if(flagamp。}void IntDS1302(void) //DS1302初始化{ unsigned char flag。 REST=0。 date=Read1302()。 Write1302(cmd)。 SCLK=0。 }unsigned char ReadSet1302(unsigned char cmd)//根據(jù)命令讀取1302相應(yīng)的值{ unsigned char date。 delaynus(2)。 delaynus(2)。 if(DATE==1) date|=0x80。i8。 delaynus(2)。 REST=0。 Write1302(date)。 Write1302(cmd)。 SCLK=0。 date=1。 SCLK=0。 SCLK=1。i++) { DATE=dateamp。 for(i=0。 SCLK=0。 dely500()。x++) { beep=~beep。i++) { for(x=0。 } } for(i=0。x++) { beep=~beep。i++) { for(x=0。 while(n) { for(i=0。i) { _nop_()。 for(i= }/***********蜂鳴器模塊************/ sbit beep=P3^6。in。 }void delaynus(unsigned char n) //延時若干微秒{ unsigned char i。k1。j)。 while(i) for(j=76。int down_flag=0。 //增加sbit RED=P1^6。 //DS1302復(fù)位端口sbit SET=P1^4。 //DS1302時鐘輸入sbit DATE=P1^1。 //數(shù)字代碼unsigned char mode,TH,TL,TN,TD,length,amode,alarmmode,count=60,minutes,hours,minutea,seconda,seconds,houra=12,yeara=12,montha=01,daya=01,years,months,days。感謝提供相關(guān)技術(shù)幫助的老師和同學(xué),你們的支持和鼓勵使我對這次的作品完成有了信心和動力,也給了我們很多無私的幫助和支持,我在此深表謝意。通過自己的努力,做出了一個萬年歷,對以后的學(xué)習(xí)是一個莫大的鼓舞,激起了我的學(xué)習(xí)興趣和開發(fā)創(chuàng)新思維。要面對社會的挑戰(zhàn),只有不斷的學(xué)習(xí)、實踐,再學(xué)習(xí)、再實踐。更重要的是,我們學(xué)會了很多學(xué)習(xí)的方法,知道了理論和實踐的巨大差別。同時也希望各位老師批評指正,提供你們的寶貴經(jīng)驗,我相信我會做得更好。在該系統(tǒng)設(shè)計,調(diào)試完成之后,對最后的成功進行分析,同時結(jié)合在調(diào)試過程中出現(xiàn)的錯誤和不足進行綜合分析,總結(jié)在實際系統(tǒng)設(shè)計和調(diào)試過程中的寶貴經(jīng)驗。通過鍵盤和液晶顯示屏可方便地校對時鐘、設(shè)置鬧鐘時間和顯示溫度,本系統(tǒng)基本完成了實用電子鐘的功能,并添加了許多附加功能,使電子萬年歷更具多樣化,特色化。但唯一不足的是不能實現(xiàn)一年的溫度記憶功能,我用AT2404調(diào)了很長時間,還是不能實現(xiàn)溫度的存儲和顯示,可能是我不太會用那個芯片,看了它的資料,還是不能寫出正確的程序。5:實時顯示環(huán)境溫度。 3:DS1302自帶閏年補償功能,可自動判斷平閏年,正確顯示時間。1:顯示年、月、日、時、分、秒信息。仿真正確顯示了時間,在LCD1602中正確顯示了當(dāng)前日期、時間,通過按按鍵K1,就可以開始設(shè)置時間或鬧鈴,依次按K1依次在年、月、日、時、分之間切換,按K2鍵用于加1操作,K3鍵用于減1操作,K4是取消按鈕,單獨按加減按鍵可以顯示溫度和進入倒計時。程序調(diào)試的難點在于設(shè)計的功能模塊過多,程序結(jié)構(gòu)比較復(fù)雜,使得調(diào)試起來比較費時間。程序框圖如下:初始化DS1302,1602從DS1302讀取信息1602液晶顯示相關(guān)信息判斷是否有按鍵按下時間、日期、溫度、鬧鐘和倒計時設(shè)置模塊沒有按鍵按下溫度檢測模塊四、調(diào)試結(jié)果及分析電路設(shè)計中單片機采用AT89C52,編譯環(huán)境為keil,程序使用C語言進行編寫,使用proteus仿真軟件進行仿真調(diào)試,設(shè)計硬件制作比較順利,很快就把硬件電路做好。開始整個軟件系統(tǒng)采用規(guī)?;某绦蛟O(shè)計方法,共分為時間設(shè)定、鬧鈴設(shè)定、倒計時和溫度檢測系統(tǒng)。 圖(14) 方波信號 圖(15) 蜂鳴器電路 三、仿真系統(tǒng)軟件設(shè)計軟件設(shè)計是本設(shè)計的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運行情況的良好。按鍵用來調(diào)整時間,其一端直接接到單片機的端口,另一端接地,當(dāng)按下按鍵時,相應(yīng)的端口變?yōu)榈碗娖?,從而作相?yīng)的操作。圖(10)DS18B20的復(fù)位時序圖。這樣才能對DS18B2
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1