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

正文內(nèi)容

電子萬年歷的仿真與設(shè)計方案-wenkub

2023-05-10 13:39:39 本頁面
 

【正文】 設(shè)計(第二版)[M],清華大學出版社,2003 【10】 付家才,單片機控制工程實踐技術(shù)[M],化學工業(yè)出版社,2004附錄一 仿真電路圖 圖(16) 電路原理圖 圖(17) 顯示實時時間 圖(18) 調(diào)整日期 圖(19) 調(diào)整時間 圖(20) 進入后臺日期時間調(diào)整圖(21) 鬧鐘設(shè)置界面圖(22) 實時溫度顯示 圖(23) 倒計時顯示附錄二 源程序代碼includeincludeunsigned char code digit[]={0123456789}。同時在與老師和同學的交流過程中,互動學習,將知識融會貫通。在本次專業(yè)方向設(shè)計過程當中,收獲知識的同時,還收獲了閱歷,收獲了成熟,通過查找大量資料,請教老師同學,以及不懈的努力,不僅培養(yǎng)了獨立思考、 動手制作的能力,在各種其它能力上也都有了提高。盡量做到了硬件電路簡單穩(wěn)定,減少電磁干擾和其他環(huán)境干擾。6:顯示60秒倒計時功能。 2:具有可調(diào)整日期和時間功能。在軟件調(diào)試過程中,當調(diào)節(jié)時間和日期后,單片機上電后更新的是PC的時間,后來查找資料發(fā)現(xiàn),是設(shè)置ds1302的問題,還有一個問題,在按鍵操作時有時會出現(xiàn)功能不穩(wěn)定,這是由于按鍵存在抖動,所以后來加個去抖動的延時后在判斷,基本就可以解決問題。軟件系統(tǒng)的主要特點是整個過程完全在鍵盤的控制之下,實現(xiàn)了完全的友好的人機交互功能。 圖(13) 按鍵電路蜂鳴器電路鬧鐘模塊采用單片機輸出一定頻率的方波從而使蜂鳴器發(fā)出聲音。 復位要求主機將數(shù)據(jù)線下拉500us,然后釋放,DS18B20收到信號后等待16~160us然后發(fā)出60~240us的存在低脈沖,主機收到此信號表示復位成功。 DS18B20的通訊協(xié)議: 在對DS18B20進行讀寫編程時,必須嚴格保證讀寫的時序。第9個字節(jié)為前8個字節(jié)的CRC碼。其中第一個和第二個字節(jié)存放轉(zhuǎn)換后的溫度值。前8位為單線系列的編碼(DS18B20的編碼是19H)后面48位為芯片的唯一序列號。工作原理介紹:DS18B20是單總線的數(shù)字溫度傳感器。 圖(7) LCD1602顯示電路LCD1602的特性:+5V電壓,對比度可調(diào);內(nèi)含復位電路;提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能;有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM;內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM;基本操作時序: 讀狀態(tài):輸入:RS=L,RW=H,E=H;輸出:DB0~DB7=狀態(tài)字 ;寫指令:輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼 ;輸出:無。寫數(shù)據(jù):控制字總是從最低位開始輸出。它不僅要向寄存器寫入控制字,還需要讀取相應寄存器的數(shù)據(jù)。在對任何的時鐘和RAM的寫操作之前,WP位必須為0。小時寄存器(85h、84h)的位7用于定義DS1302是運行于12小時模式還是24小時模式。當Vcc2Vcc1+,由Vcc2向DS1302供電,當Vcc2 Vcc1時,由Vcc1向DS1302供電;7: SCLK:串行時鐘,輸入;整個系統(tǒng)結(jié)構(gòu)緊湊,抗干擾能力強,性價比高。鬧鐘模塊此模塊采用無源蜂鳴器實現(xiàn),只要編寫相應的程序即可實現(xiàn)發(fā)出不同頻率的聲音。矩陣式鍵盤是由行線和列線組成,按鍵位于行、列的交叉點上,行線、列線分別連接到按鍵開關(guān)的兩端。 方案一:使用獨立式鍵盤。方案二:采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器,而且僅需要一條數(shù)據(jù)線進行數(shù)據(jù)傳輸,易于與單片機連接,可以去除A/D模塊,降低了硬件成本,簡化系統(tǒng)電路。方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較合適,如果用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。更重要的是其價格便宜,具有非常高的性價比。優(yōu)點是8位數(shù)據(jù)線并行控制,控制簡單;自帶有鋰電池,外部掉電時,其內(nèi)部時間信息還能夠保持 10年之久。選用方案一作為主方案,方案二作為備用方案。方案二:采用FTC10F04單片機,還帶有非易失性Flash程序存儲器?!?(3)由于構(gòu)成的應用系統(tǒng)是一個計算機系統(tǒng),相當多的測、控功能由軟件實現(xiàn),故具有柔性特征,不須改變硬件系統(tǒng)就能適當?shù)馗淖兿到y(tǒng)功能。因此,只要外加一些擴展電路及必要的通道接口就可以構(gòu)成各種計算機應用系統(tǒng),如工業(yè)流水線控制系統(tǒng)、作為家用電器的主控制器、分布式控制系統(tǒng)的終端節(jié)點或作為其主控制節(jié)點起中繼的作用、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)等。電子萬年歷的仿真與設(shè)計方案一、方案論證 技術(shù)可行性 隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。  單片機的出現(xiàn),并在各技術(shù)領(lǐng)域中得到如此迅猛的發(fā)展,與單片機構(gòu)成計算機應用系統(tǒng)所形成的下述特點有關(guān):  (1)單片機構(gòu)成的應用系統(tǒng)有較大的可靠性?!?(4)有優(yōu)異的性能、價格比。它是一種高性能、低功耗的8位CMOS微處理芯片,市場應用最多。時鐘模塊的選擇方案一:用單片機的定時器產(chǎn)生1S的時基信號,然后用程序來實現(xiàn)時鐘的時、分、秒計時,同時用程序來產(chǎn)生年、月、日。缺點是并行控制,占用太多的IO口,且價格很高,不適合一般的電子制作。缺點是串行通信,控制比較復雜。方案三:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多。另外,數(shù)字式溫度傳感器還具有測量精度高,測量范圍廣等優(yōu)點。獨立式鍵盤是指直接用I/O口線構(gòu)成的單個按鍵電路。其特點是簡單且不增加成本,這種鍵盤適合按鍵數(shù)量較多的場合。最終方案決定綜上各方案所述,對此次設(shè)計的方案選定:采用AT89C52作為主控制系統(tǒng);DS1302提供時鐘;LCD1602液晶顯示器作為顯示;以DS18B20作為檢測溫度的傳感器;用蜂鳴器實現(xiàn)鬧鐘響鈴。DS1302時鐘電路時鐘電路主要由時鐘芯片DS130晶振等幾部分組成,如下圖所示。 6: I/O:數(shù)據(jù)輸入輸出口;5: CE/RST:復位腳;3: XX2 是外接晶振腳 ();4: 地(GND)。當為高時,選擇12小時模式。當WP位為1時,寫保護位防止對任一寄存器的寫操作。DS1302的控制字如圖(6):圖(6)DS1302的控制字圖控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入也是從最低位(0位)開始。讀數(shù)據(jù):輸入:RS=H,RW=H,E=H;輸出:DB0~DB7=數(shù)據(jù) ;寫數(shù)據(jù):輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù) ;輸出:無。其與單片機的接口只需要一根數(shù)據(jù)線即可。在出場的時候就已經(jīng)設(shè)置好,用戶無法更改。第二個和第三個字節(jié)分別存放高溫和低溫告警值。 圖(8) DS18B20的溫度存放 圖(9)DS18B20電路其中S位符號位。否則將無法讀取測溫結(jié)果。圖(10)DS18B20的復位時序圖。 圖(14) 方波信號 圖(15) 蜂鳴器電路 三、仿真系統(tǒng)軟件設(shè)計軟件設(shè)計是本設(shè)計的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運行情況的良好。程序框圖如下:初始化DS1302,1602從DS1302讀取信息1602液晶顯示相關(guān)信息判斷是否有按鍵按下時間、日期、溫度、鬧鐘和倒計時設(shè)置模塊沒有按鍵按下溫度檢測模塊四、調(diào)試結(jié)果及分析電路設(shè)計中單片機采用AT89C52,編譯環(huán)境為keil,程序使用C語言進行編寫,使用proteus仿真軟件進行仿真調(diào)試,設(shè)計硬件制作比較順利,很快就把硬件電路做好。仿真正確顯示了時間,在LCD1602中正確顯示了當前日期、時間,通過按按鍵K1,就可以開始設(shè)置時間或鬧鈴,依次按K1依次在年、月、日、時、分之間切換,按K2鍵用于加1操作,K3鍵用于減1操作,K4是取消按鈕,單獨按加減按鍵可以顯示溫度和進入倒計時。 3:DS1302自帶閏年補償功能,可自動判斷平閏年,正確顯示時間。但唯一不足的是不能實現(xiàn)一年的溫度記憶功能,我用AT2404調(diào)了很長時間,還是不能實現(xiàn)溫度的存儲和顯示,可能是我不太會用那個芯片,看了它的資料,還是不能寫出正確的程序。在該系統(tǒng)設(shè)計,調(diào)試完成之后,對最后的成功進行分析,同時結(jié)合在調(diào)試過程中出現(xiàn)的錯誤和不足進行綜合分析,總結(jié)在實際系統(tǒng)設(shè)計和調(diào)試過程中的寶貴經(jīng)驗。更重要的是,我們學會了很多學習的方法,知道了理論和實踐的巨大差別。通過自己的努力,做出了一個萬年歷,對以后的學習是一個莫大的鼓舞,激起了我的學習興趣和開發(fā)創(chuàng)新思維。 //數(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。 //DS1302復位端口sbit SET=P1^4。int down_flag=0。j)。 }void delaynus(unsigned char n) //延時若干微秒{ unsigned char i。 }/***********蜂鳴器模塊************/ sbit beep=P3^6。i) { _nop_()。i++) { for(x=0。 } } for(i=0。x++) { beep=~beep。 SCLK=0。i++) { DATE=dateamp。 SCLK=0。 SCLK=0。 Write1302(date)。 delaynus(2)。 if(DATE==1) date|=0x80。 delaynus(2)。 SCLK=0。 date=Read1302()。}void IntDS1302(void) //DS1302初始化{ unsigned char flag。 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護指令 WriteSet1302(0x80,((0/10)4|(0%10)))。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((0/10)4|(0%10)))。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護指令 } }/***************液晶顯示模塊*****************/sbit RS=P2^5。 /*液晶忙檢測*/bit BusyTest(void){ bit result。 _nop_()。 _nop_()。 return result。 E=0。 P0=mand。 E=1。 E=0。 RW=0。 _nop_()。 _nop_()。 _nop_()。 delay1ms(1)。 delay1ms(1)。 }void displaymainpart(void)//顯示液晶主要部分(不變化部分){ Write_Address(0x01)。)。 Write_Date(39。E39。)。 Write_Date(39。 Write_Date(39。 Write_Date(39。I39。)。 Write_Address(0x48)。 Write_Address(0x4B)。 Write_Address(0x06)。 Write_Date(39。 i=second/10。 Write_Date(digit[j])。 j=minute%10。 delay1ms(1)。 Write_Address(0x46)。}void display_Day(unsigned char day) //在液晶上顯示日{(diào) unsigned char i,j。 Write_Date(digit[i])。 i=month/10。 Write_Date(digit[j])。 j=year%10。 delay1ms(1)。 Write_Address(0x0E)。}void display_Montha(unsigned char x) //鬧鐘月份顯示{ unsigned char i,j。 Write_Date(digit[i])。 i=x/10。 Write_Date(digit[j])。 j=x%10。 }void display_minutea(unsigned char x)//鬧鐘分鐘部分顯示{ unsigned char i,j。 Write_Date(digit[i])。 j=x%10。}void display_Ti
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1