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

正文內(nèi)容

電子萬年歷的仿真與設(shè)計方案(存儲版)

2025-05-25 13:39上一頁面

下一頁面
  

【正文】 } }void alarmhourset(void) //鬧鐘小時調(diào)整{ unsigned char value。 } } if(RED==0) { delay1ms(20)。 break。 while(RED==0) 。 while(ADD==0) 。 break。} break。} break。} break。/**********************操作DS18B20模塊***************************/sbit DQ=P3^3。 for(time=0。 for(time=0。i++) { DQ=1。 dat=1。 for(i=0。time10。time4。 WriteDS18B20(0XBE)。 delay1ms(5)。 k=x%10。 } /************顯示溫度小數(shù)部分*********************/ void Display_Decimal(unsigned char x) { Write_Address(0x48)。 Display_Explain()。 TH=ReadDS18B20()。 TD=(TL%16)*10/16。 displaymainpart()。 Write_Date(39。 Write_Date(39。)。 Write_Date(39。amp。 Write_Date(39。)。 Write_Date(39。 if(CANL==0) { Write_(0x01)。)。 delay1ms(5)。 Write_Address(0x00)。A39。 displaylittlepart()。 Write_Address(0x0D)。 Write_Address(0x49)。 Write_Date(39。)。 Write_Date(39。delay1ms(500)。alarmdayset()。} break。Write_(0x0c)。dela。 case(6):{gbdisplay(0x4c)。Write_(0x0c)。} break。alarmyearset()。F39。 Write_Date(39。 display_seconda(seconda)。:39。39。M39。)。 if(RED==0) { Write_(0x01)。 if(ADD==0) { Write_(0x01)。 Write_Date(39。 delay1ms(5)。U39。 Write_Date(39。 delay1ms(5)。amp。239。 Write_Date(39。 } } if(RED==0) { alarmmode=0。O39。 } if(CANL==0)//【修改、添加部分】 { Write_(0x01)。 if(TL255) TH+=1。 ReadyreadDS18B20()。 Write_(0x01)。 Write_Date(digit[k])。 } /*********************顯示溫度整數(shù)部分*************************/ void Display_Integer(unsigned char x) { unsigned char j,k。) { Write_Date(displayexplain[i])。 IntDS18B20()。 date=1。0x01。 } return dat。time2。 for(i=0。time++)。time++)。 } }}/***************顯示溫度模塊********************/unsigned char code displayexplain[]={Digit thermometer}。monthset()。secondset()。hourset()。 gbdisplay(0x4B)。 if(ADD==0) { seconda++。 if(RED==0) { minutea。 gbdisplay(0x45)。 if(value23) value=0。 if(CANL==0) { delay1ms(500)。 while(ADD==0)。 break。 } } if(RED==0) { delay1ms(20)。 } }}void alarmmonthset(void) //鬧鐘調(diào)月{ unsigned char value。 if(RED==0) { value。 value=yeara。 Write_Address(0x0f)。 if(RED==0) { day。 day=(((datevalueamp。 Write_(0x0c)。 while(RED==0)。 while(1) { if(ADD==0) { delay1ms(10)。 } WriteSet1302(0x8e,0x80)。 display_Year(year)。 while(ADD==0)。 delay1ms(500)。 Write_Address(0x4D)。 delay1ms(500)。 if(minute=60) minute=0。 if(minute==0) minute=59。0x0f))。 } if(SET==0) break。 display_Hour(hour)。 } } if(RED==0) { delay1ms(50)。//將寫保護去掉,確保能正常將調(diào)整后的數(shù)值寫入DS1302 timevalue=ReadSet1302(0x85)。 display_Year(years)。 months=(((valueamp。0x0f))。 value=ReadSet1302(0x83)。}void display_Time(void) //顯示實時時間{ unsigned char value。 Write_Date(digit[i])。 j=x%10。 i=x/10。}void display_Montha(unsigned char x) //鬧鐘月份顯示{ unsigned char i,j。 delay1ms(1)。 Write_Date(digit[j])。 Write_Date(digit[i])。 Write_Address(0x46)。 j=minute%10。 i=second/10。 Write_Address(0x06)。 Write_Address(0x48)。I39。 Write_Date(39。)。 Write_Date(39。 }void displaymainpart(void)//顯示液晶主要部分(不變化部分){ Write_Address(0x01)。 delay1ms(1)。 _nop_()。 RW=0。 E=1。 E=0。 _nop_()。 /*液晶忙檢測*/bit BusyTest(void){ bit result。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((0/10)4|(0%10)))。}void IntDS1302(void) //DS1302初始化{ unsigned char flag。 SCLK=0。 if(DATE==1) date|=0x80。 Write1302(date)。 SCLK=0。 SCLK=0。 } } for(i=0。i) { _nop_()。 }void delaynus(unsigned char n) //延時若干微秒{ unsigned char i。int down_flag=0。 //數(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。更重要的是,我們學(xué)會了很多學(xué)習的方法,知道了理論和實踐的巨大差別。但唯一不足的是不能實現(xiàn)一年的溫度記憶功能,我用AT2404調(diào)了很長時間,還是不能實現(xiàn)溫度的存儲和顯示,可能是我不太會用那個芯片,看了它的資料,還是不能寫出正確的程序。仿真正確顯示了時間,在LCD1602中正確顯示了當前日期、時間,通過按按鍵K1,就可以開始設(shè)置時間或鬧鈴,依次按K1依次在年、月、日、時、分之間切換,按K2鍵用于加1操作,K3鍵用于減1操作,K4是取消按鈕,單獨按加減按鍵可以顯示溫度和進入倒計時。 圖(14) 方波信號 圖(15) 蜂鳴器電路 三、仿真系統(tǒng)軟件設(shè)計軟件設(shè)計是本設(shè)計的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運行情況的良好。否則將無法讀取測溫結(jié)果。第二個和第三個字節(jié)分別存放高溫和低溫告警值。其與單片機的接口只需要一根數(shù)據(jù)線即可。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入也是從最低位(0位)開始。當WP位為1時,寫保護位防止對任一寄存器的寫操作。 6: I/O:數(shù)據(jù)輸入輸出口;5: CE/RST:復(fù)位腳;3: XX2 是外接晶振腳 ();4: 地(GND)。最終方案決定綜上各方案所述,對此次設(shè)計的方案選定:采用AT89C52作為主控制系統(tǒng);DS1302提供時鐘;LCD1602液晶顯示器作為顯示;以DS18B20作為檢測溫度的傳感器;用蜂鳴器實現(xiàn)鬧鐘響鈴。獨立式鍵盤是指直接用I/O口線構(gòu)成的單個按鍵電路。方案三:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多。缺點是并行控制,占用太多的IO口,且價格很高,不適合一般的電子制作。它是一種高性能、低功耗的8位CMOS微處理芯片,市場應(yīng)用最多。  單片機的出現(xiàn),并在各技術(shù)領(lǐng)域中得到如此迅猛的發(fā)展,與單片機構(gòu)成計算機應(yīng)用系統(tǒng)所形成的下述特點有關(guān):  (1)單片機構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。因此,只要外加一些擴展電路及必要的通道接口就可以構(gòu)成各種計算機應(yīng)用系統(tǒng),如工業(yè)流水線控制系統(tǒng)、作為家用電器的主控制器、分布式控制系統(tǒng)的終端節(jié)點或作為其主控制節(jié)點起中繼的作用、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)等。方案二:采用FTC10F04單片機,還帶有非易失性Flash程序存儲器。優(yōu)點是8位數(shù)據(jù)線并行控制,控制簡單;自帶有鋰電池,外部掉電時,其內(nèi)部時間信息還能夠保持 10年之久。方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較合適,如果用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。 方案一:使用獨立式鍵盤。鬧鐘模塊此模塊采用無源蜂鳴器實現(xiàn),只要編寫相應(yīng)的程序即可實現(xiàn)發(fā)出不同頻率的聲音。當Vcc2Vcc1+,由Vcc2向DS1302供電,當Vcc2 Vcc1時,由Vcc1向DS1302供電;7: SCLK:串行時鐘,輸入;在對任何的時鐘和RAM的寫操作之前,WP位必須為0。寫數(shù)據(jù):控制字總是從最低位開始輸出。工作原理介紹:DS18B20是單總線的數(shù)字溫度傳感器。其中第一個和第二個字節(jié)存放轉(zhuǎn)換后的溫度值。 DS18B20的通訊協(xié)議: 在對DS18B20進行讀寫編程時,必須嚴格保證讀寫的時序。 圖(13) 按鍵電路蜂鳴器電路鬧鐘模塊采用單片機輸出一定頻率的方波從而使蜂鳴器發(fā)出聲音。在軟件調(diào)試過程中,當調(diào)節(jié)時間和日期后,單片機上電后更新的是PC的時間,后來查找資料發(fā)現(xiàn),是設(shè)置ds1302的問題,還有一個問題,在按鍵操作時有時會出現(xiàn)功能不穩(wěn)定,這是由于按鍵存在抖動,所以后來加個去抖動的延時后在判斷,基本就可以解決問題。6:顯示60秒倒計時功能。在本次專業(yè)方向設(shè)計過程當中,收獲知識的同時,還收獲了閱歷,收獲了成熟,通過查找大量資料,請教老師同學(xué),以及不懈的努力,不僅培養(yǎng)了獨立思考、 動手制作的能力,在各種其它能力上也都有了提高?!緟⒖嘉墨I】【1】 于永學(xué)、葛健,1WIRE總線數(shù)字溫度傳感器DS18B20及應(yīng)用[J],電子產(chǎn)品世界2003(4)1624【2】 馬云峰、陳子夫、李全培,數(shù)字溫度傳感器DS18B20的原理與應(yīng)用[EB/OL]125【3】 胡振宇、劉魯源、杜振輝,DS18B20接口的C語言程序設(shè)計[J],單片機與嵌入式系統(tǒng)應(yīng)用,200224
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1