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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)萬(wàn)年歷的設(shè)計(jì)-文庫(kù)吧在線文庫(kù)

  

【正文】 減 鍵 有 效按 鍵 有 效 , 跳 出 時(shí) 間 調(diào) 整 程 序 , 進(jìn) 入 主循 環(huán) 程 序 圖 11 時(shí)間調(diào)整程序流程圖 18 第二節(jié) 子程序 由于本系統(tǒng)程序涉及的可編程器件有 LCM1602, DS18B20 以及 DS1302,各芯片的控制字及數(shù)據(jù)讀寫(xiě)如果混雜,將會(huì)使程序可讀性大大降低,因此采用子程序的方法進(jìn)行調(diào)用并將其封裝于各自的頭文件中。數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為 80H,所以數(shù)據(jù)地址為 80H+地址碼 (027H, 4067H)。如下圖 7所示: 13 圖 7 DS1302 讀與寫(xiě)的 時(shí)序圖 (3) DS1302 的寄存器 DS1302 有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD碼形式 ,其日歷、時(shí)間寄存器及其控制字見(jiàn)圖 8??刂谱止?jié)總是從最低位開(kāi)始輸入 /輸出的。 E(或 EN)端為使能 (enable)端,下降沿使能。獨(dú)特的一線接口,只需要一條口線通信多點(diǎn)能力,簡(jiǎn)化了分布式溫度傳感應(yīng)用無(wú)需外部元件可用數(shù)據(jù)總線供電,電壓范圍為 至 無(wú)需備用電源 測(cè) 量溫度范圍為 55 度至 +125 度。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。 I/O 為串行數(shù)據(jù)輸入輸出端 (雙向 ), SCLK 為時(shí)鐘輸入端。當(dāng) Vcc2 小于 Vcc1 時(shí), DS1302 由 Vcc1 供電。 9 時(shí)鐘電路模塊的設(shè)計(jì) DS1302 是美國(guó) DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為 ~ 。當(dāng)總控制位為禁止時(shí),關(guān)閉整個(gè)中斷系統(tǒng),不管分控 制為狀態(tài)如何,整個(gè)中斷系統(tǒng)為禁止?fàn)顟B(tài);當(dāng)總控制位為允許時(shí),開(kāi)放中斷系統(tǒng),這時(shí)才能由各分控制位設(shè)置各自中斷的允許與禁止。當(dāng)中斷響應(yīng)完成轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件把 IE0(或 IE1)清零, 當(dāng)計(jì)數(shù)器產(chǎn)生計(jì)數(shù)溢出時(shí),相應(yīng)的溢出標(biāo)志位由硬件置“ 1”。 TF0( ),片內(nèi)定時(shí) /計(jì)數(shù)器 T0 溢出中斷請(qǐng)求標(biāo)志。所謂的 中斷就是,當(dāng) CPU正在處理某項(xiàng)事務(wù)的時(shí)候,如果外界或者內(nèi)部發(fā)生了緊急事件,要求CPU 暫停正在處理工作而去處理這個(gè)緊急事件,待處理完后,再回到原來(lái)中斷的地方,繼續(xù)執(zhí)行原來(lái)被中斷的程序,這個(gè)過(guò)程稱作中斷。這是由硬件自動(dòng)完成的,不需要我們操心, 1 然后再實(shí)行讀引腳操作,否則就可能讀入出錯(cuò),如果不對(duì)端口置1,端口鎖存器原來(lái)的狀態(tài)有可能為 0Q 端為 0Q^為 1 加到場(chǎng)效應(yīng)管柵極的信號(hào)為 1,該場(chǎng)效應(yīng)管就導(dǎo)通對(duì)地呈現(xiàn)低阻抗,此時(shí)即使引腳上輸入的信號(hào)為 1,也會(huì)因端口的低阻抗而使信號(hào)變低使得外加的 1 信號(hào)讀入后不一定是 1。 P2 口在 FLASH 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P1口: P1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 I/O 口, P1 口緩沖器能接收輸出 4TTL門(mén)電流。此外, AT89S51 設(shè)計(jì)和配置了振蕩頻率可為 0Hz 并可通過(guò)軟件設(shè)置省電模式。 4 第二章 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn) 第一節(jié) 電路設(shè)計(jì)框圖 本系統(tǒng)的電路系統(tǒng)框圖如圖 1 所示。采用普通 晶振 [4]。 時(shí)鐘芯 片的選擇方案和論證 方案 一 : 直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、 3 秒計(jì)數(shù)。所有程序編寫(xiě)完成后,在 Keil 軟件中進(jìn)行調(diào)試,確定沒(méi)有問(wèn)題后,在 Proteus 軟件中嵌入單片機(jī)內(nèi)進(jìn)行仿真。電子萬(wàn)年歷作為電子類(lèi)小產(chǎn)品不僅是市場(chǎng)上的寵兒,也是是單片機(jī)設(shè)計(jì)培訓(xùn)中一個(gè)很實(shí)用的題目。 關(guān)鍵詞: 單片機(jī); DS1302; DS18B20; LCM1602 II Abstract This paper mainly discuss the design and simulation of electronic calender based on AT89S51 with the help of the hardware side, the electronic calendar using AT89C51 microcontroller as the main control center, clock provided by the DS1302 clock chip , 1602LED dot matrix LCD Corporation AT89C51 microcontroller is producted by Atmel Corporation, low power consumption, voltage can be selected 4V~ 6V voltage power supply。 基于單片機(jī)萬(wàn)年歷的設(shè)計(jì) 畢業(yè)設(shè)計(jì)項(xiàng)目: 基于單片機(jī)萬(wàn)年歷的設(shè)計(jì) 專 業(yè): 計(jì) 算 機(jī) 應(yīng) 用 技 術(shù) 年 級(jí): 0 9 級(jí) 學(xué) 號(hào) : 姓 名: 指 導(dǎo) 老 師: I 摘 要 本文借助電路仿真軟件 Protues 對(duì)基于 AT89S51 單片機(jī)的電子萬(wàn)年歷的設(shè)計(jì)方法及仿真進(jìn)行了全面的闡述。 研究結(jié)果表明,由于萬(wàn)年歷的應(yīng)用相當(dāng)普遍,所以其設(shè)計(jì)的核心在于硬件成本的節(jié)約軟件算法的優(yōu)化,力求做到物美價(jià)廉,才能擁有更廣闊的市場(chǎng)前景。 通過(guò)以往對(duì)工業(yè)自動(dòng)化的相關(guān)課程學(xué)習(xí)和理解獨(dú)立完成制作電子萬(wàn)年歷的設(shè)計(jì)。在軟件方面,主要包括日歷程序 、時(shí)間調(diào)整程序,顯示程序等。 方案三: 采用 LCD 液晶顯示屏 ,液晶顯示屏的顯示功能強(qiáng)大 ,可顯示大量文字 ,圖形 ,顯示多樣 ,清晰可見(jiàn) [3],對(duì)于電子萬(wàn)年歷而言,一個(gè) 1602 的液晶屏即可,價(jià)格也還能接受 ,需要的接口線較多 ,但會(huì)給調(diào)試帶來(lái)諸多方便,所以此設(shè)計(jì)中采用 LCD1602 液晶顯示屏作為顯示模塊 。主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。 第二節(jié) 電路設(shè)計(jì)最終方案決定 綜上各模塊的選擇方案與論證,確定最后的主要硬件資源如下:采用 AT89S51 作為主控制系統(tǒng);DS1302 提供時(shí)鐘; DS18B20 作為數(shù)字式溫度傳感器; LCD1602 液晶屏作為顯示。 AT89S51 具有如下特點(diǎn): 40個(gè)引腳,4kBytes Flash 片內(nèi)程序存儲(chǔ)器, 128Bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM), 32 個(gè)外部雙向輸入 /輸出( I/O)口, 5個(gè)中斷優(yōu)先級(jí) 2 層中斷嵌套中斷, 2個(gè) 16位可編程定時(shí)計(jì)數(shù)器 ,2個(gè)全雙工串行通信口,看門(mén)狗( WDT)電路,片內(nèi)時(shí)鐘振蕩器。在 FIASH 編程時(shí), P0 口作為原碼輸入口,當(dāng) FIASH 進(jìn)行校驗(yàn)時(shí), P0輸出原碼,此時(shí) P0外部必須被拉高。在給出地 址“ 1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí), P2口輸出其特殊功能寄存器的內(nèi)容。輸入緩沖器 CPU 將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號(hào)以完成不同的操作。單片機(jī)在某一時(shí)刻只能處理一個(gè)任務(wù),當(dāng)多個(gè)任務(wù)同時(shí)要求單片機(jī)處理時(shí),這一要求應(yīng)該怎么實(shí)現(xiàn)呢?通過(guò)中斷可以實(shí)現(xiàn)多個(gè)任務(wù)的資源共享。內(nèi)部中斷有三個(gè): TF0,TF1,RI 或TI。按位操作時(shí),各位的地址為 88H~ 8FH,當(dāng) CPU 采樣到 INT0(或 INT1)端出現(xiàn)有效中斷請(qǐng)求時(shí), IE0( IE1)位由硬件置“ 1”。即以 EA 位作為總控制位,以各中斷源的中斷允許位作為分控制位。 IP 寄存 器地址 0B8H,位地址為 0BFH~0B8H。當(dāng) Vcc2 大于 Vcc1+ 時(shí), Vcc2 給 DS1302 供電。只有在 SCLK 為低電平時(shí),才能將 RST 置為高電平。此外, DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與 RAM相關(guān)的寄存器等。單片機(jī)與 DS1302 連接圖如圖 3 所示: 圖 3 DS1302與單片 機(jī)的連接 溫度采集模塊設(shè)計(jì) 采用數(shù)字式溫度傳感器 DS18B20,它是數(shù)字式溫度傳感器,具有測(cè)量精度高,電路連接簡(jiǎn)單特點(diǎn),此類(lèi)傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用P 與 DS18B20 的 I/O 口連接加一個(gè)上拉電阻 ,Vcc 接電源 ,Vss 接地。 R/W 為讀寫(xiě)信號(hào)線,高電平 (1)時(shí)進(jìn)行讀操作,低電平 (0)時(shí)進(jìn)行寫(xiě)操作。位 0是讀 /寫(xiě)操作位,進(jìn)行讀操作時(shí),該位為 1;該位為 0 則表示進(jìn)行的是寫(xiě)操作。同樣,在緊跟 8 位的控制指令字后的下一個(gè) SCLK 脈沖的下降沿讀出DS1302 的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 0位到高位 7[14]。 000001NS N=1(讀或?qū)懸粋€(gè)字符后地址指針加 1并且光標(biāo)加 1), N=0(讀或?qū)懸粋€(gè)字符后地址指針減 1并且光標(biāo)減 1), S=1且 N=1(當(dāng)寫(xiě)一個(gè)字符 后,整屏顯示左移 ), S=0 當(dāng)寫(xiě)一個(gè)字符后,整屏顯示不移動(dòng)。時(shí)間調(diào)整程序的流程圖如圖 11 所示。 軟件測(cè)試 由于本系統(tǒng)涉及到多個(gè)子程序,多個(gè)芯片的編程。 在硬件電路方面,詳盡解析了各個(gè)獨(dú)立元件的選擇依據(jù),對(duì)數(shù)種方案進(jìn)行了全面的比較。 在軟件設(shè)計(jì)方面,對(duì)日歷算法和時(shí)間調(diào)整算法都做了比較詳細(xì)的闡述,可讀性較強(qiáng)。最后也要感謝有關(guān)我參考過(guò)的文獻(xiàn)的作者,是他們?yōu)槲姨峁┲R(shí)的源泉,使我最終能順利地完成這次課程設(shè)計(jì)。//LCD 地址 uchar i,k,jj=0,w,clock=0,bigclock=0,c=0,num。 lcdscan() {for(i=0。i6。 if(b[4]==60)b[4]=0。 } if(b3==0) { delay(3)。} else {if(b[2]=0)b[2]=year1[b[1]1]。 lcdshuju(0)。 delay(200)。 lcdwrite(0x83)。i++) { lcdshuju(row2[i])。 k=dsread()。 k=dsread()。 key()。amp。speaker=0。 lcdshuju(temp/10%10+0x30)。y0。 } //lcdshuju() LCD 寫(xiě)數(shù)據(jù) void lcdshuju(uchar shuju) { lcdrs=1。//顯示模式 lcdwrite(0x0c)。 dq=0。i) { dq=0。i0。 uint t=0。//讀暫存器 31 a=readds18b20()。 } DS1302 頭文件: include define uint unsigned int define uchar unsigned char sbit dsrst=P2^0。i8。 } } //1302read Ds1302 讀數(shù)據(jù) 32 uchar dsread() { uchar i,temp。 dssclk=1。// 地址,命令 dswrite(dsshuju)。i++) {dsaddshuju(0x88i*2,(a[9i*2]4)+a[8i*2])。 } //1302on DS1302 初始化 void dson() { uchar i。 } //1302addshuju DS1302 向某地址寫(xiě)入某數(shù)據(jù) void dsaddshuju(uchar add,uchar dsshuju) { dsrst=0。i8。 dssclk=1。 //分別對(duì)應(yīng)秒秒分分時(shí)時(shí)日日月月年年 //后 12 位為鬧鐘位,用于存儲(chǔ)鬧鐘數(shù)據(jù) //1302write DS1302 寫(xiě)數(shù)據(jù) void dswrite(uchar dswrite) { uchar i,temp。 t=t|a。//跳過(guò) ROM writeds18b20(0x44)。 sdelay(5)。 sdelay(4)。 sdelay(20)。 void sdelay(unsigned int i) { while(i)。 delay(1)。 delay(1)。 void delay(uint z) { uint x,y??赡苁怯捎谑M(jìn)制與十進(jìn)制的差異。 lcdshuju(0
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1