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

正文內(nèi)容

基于at89c51單片機(jī)的萬(wàn)年歷的設(shè)計(jì)(編輯修改稿)

2025-01-11 02:30 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 據(jù)。 第 6 腳: E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第 7~ 14 腳: D0~ D7 為 8 位雙向數(shù)據(jù)線。 第 15~ 16 腳:背光燈正 /負(fù)極。 TS1620 液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器( CGROM)已經(jīng)存儲(chǔ)了 160 個(gè)不同的點(diǎn)陣字 符圖形,如表 341 所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào) 、 和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母 “ A” 的代碼是 01000001B( 41H),顯示時(shí)模塊把地址 41H 中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母 “ A” 。 DS1302 時(shí)鐘芯片 DS1302SN 是美國(guó) DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘電 路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為 ~ 。采用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字 節(jié)的時(shí)鐘信號(hào)或 RAM 數(shù)據(jù)。 DS1302SN 內(nèi)部有一個(gè) 31 8 的用于臨時(shí)性存放數(shù)據(jù)的 RAM 寄存器。 DS1302SN 是 DS1202 的升級(jí)產(chǎn)品,與 DS1202 兼容,但增加了主電源 /后背電源 雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。 電子萬(wàn)年歷設(shè)計(jì) 12 詳見(jiàn)下圖 2331 圖 2331 DS1302SN引腳功能及結(jié)構(gòu) 圖 2331 示出 DS1302SN 的引腳排列 ,其中 Vcc1 為后備電源, VCC2 為主電源。在主 電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。 DS1302 由 Vcc1 或 Vcc2 兩者中的較大者 供電。當(dāng) Vcc2大于Vcc1+ 時(shí) , Vcc2給 DS1302SN供電。當(dāng) Vcc2 小于 Vcc1 時(shí) ,DS1302SN 由 Vcc1 供電。 X1 和 X2 是振蕩源,外接 晶振。 RST 是復(fù)位 /片選線,通過(guò)把 RST 輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。 RST 輸入有兩種功能:首先, RST 接通控制 邏輯,允許地址 /命令序列送入移位寄存器;其次, RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的 傳送手段。當(dāng) RST 為高電平時(shí),所有的數(shù)據(jù) 傳送被初始化,允許對(duì) DS1302 進(jìn)行操作。 如果在傳送過(guò)程中 RST 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送, I/O 引腳變?yōu)楦咦钁B(tài)。上 電運(yùn)行時(shí),在 Vcc≥ 之前,RST 必須保持低電平。只有在 SCLK 為低電平時(shí),才能將 RST 置為高電平。 I/O 為串行數(shù)據(jù)輸入輸出端 (雙向 )。 SCLK 始終是輸入端。 1) DS1302SN 的控制字節(jié) 詳見(jiàn)下圖圖 2332 電子萬(wàn)年歷設(shè)計(jì) 13 圖 2332 DS1302SN 的控制字 DS1302SN 的控制字如圖 所示??刂谱止?jié)的 最 高有效 位 (位 7)必須是邏輯 1, 如果它為 0, 則 不能把數(shù)據(jù)寫入 DS1302SN 中 , 位 6 如果為 0, 則 表示存取日歷時(shí)鐘數(shù) 據(jù) , 為 1 表示存取 RAM 數(shù)據(jù) 。位 5 至位 1 指示操作單元的地址 。最低有效位 (位 0)如為 0 表示 要進(jìn)行寫操作,為 1 表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出。 2) 數(shù)據(jù)輸入輸出 (I/O) 在控制指令字輸入后的下一個(gè) SCLK 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入 DS1302SN,數(shù)據(jù) 輸入從低位即位 0 開(kāi)始。同樣,在緊跟 8 位的控制指令字后的下一個(gè) SCLK 脈沖的下降 沿讀出 DS1302SN 的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 0 位到高位 7。 DS1302SN 的寄存器 DS1302SN 有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式 ,其日歷、時(shí)間寄存器及其控制字見(jiàn)圖 234。 圖 234 DS1302SN 的寄存器控制字 此外, DS1302SN 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與 RAM 相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器 內(nèi)容。 DS1302SN 與 RAM 相關(guān)的寄存器分為兩類:一類是單個(gè) RAM 單元,共 31 個(gè),每個(gè) 單元組態(tài)為一個(gè) 8 位的字節(jié),其命令控制字為 C0H~ FDH,其中奇數(shù)為讀電子萬(wàn)年歷設(shè)計(jì) 14 操作,偶數(shù)為寫 操作;另一類為突發(fā)方式下的 RAM 寄存器,此方式下可一次性讀寫所有的 RAM 的 31 個(gè) 字節(jié),命令控制字為 FEH(寫 )、 FFH(讀 )。 DS1302SN 與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令 字節(jié)最高位 MSB(D7)必須為邏輯 1,如果 D7=0,則禁止寫 DS1302SN,即寫保護(hù); D6=0, 指定時(shí)鐘數(shù)據(jù), D6=1,指定 RAM 數(shù)據(jù); D5~ D1 指定輸入或輸出的特定寄存器;最低位 LSB(D0)為邏輯 0,指定寫操作 (輸入 ), D0=1,指定讀操作 (輸出 )。在 DS1302SN 的時(shí)鐘 日歷或 RAM 進(jìn)行數(shù)據(jù)傳送時(shí), DS1302SN 必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送, 8 位命令字節(jié)傳送結(jié)束之后,在下 2 個(gè) SCLK 周期的上升沿輸入數(shù)據(jù)字節(jié),或在下 8 個(gè) SCLK 周期的下降沿輸出數(shù)據(jù)字節(jié)。 在硬件電路上,備用電源 B1可以用電池或者超級(jí)電容器 ( 以上 )。雖然 DS1302SN在主電源掉電后 的耗電很小,但是,如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電 池??梢杂美鲜诫娔X主板上的 充電電池。 DS1302SN 在第一次加電后,必須進(jìn)行初 始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。 DS18B20 單總線數(shù)字溫度計(jì) DS18B20 是美國(guó) DALLAS 半導(dǎo)體公司繼 DS1820 之后最新推出的一種改進(jìn)型智能溫度 傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn) 單的編程實(shí)現(xiàn) 9~ 12 位的數(shù)字值讀數(shù)方式??梢苑謩e在 ms 和 750 ms 內(nèi)完成 9 位 和 12 位的數(shù)字量,并且從 DS18B20 讀出的信息或?qū)懭? DS18B20 的信息僅需要一根口線(單線接口)讀寫 ,溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的 DS18B20 供電,而無(wú)需額外電源。因而使用 DS18B20 可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。他在 測(cè)溫精度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較 DS1820 有了很大的改進(jìn),給用戶帶 來(lái)電子萬(wàn)年歷設(shè)計(jì) 15 了更方便的使 用和更令人滿意的效果。 詳見(jiàn)下圖 235: 圖 235 DS18B20 模塊原理圖 當(dāng) DS18B20 處于寫存儲(chǔ)器操作和溫度 A/D 變換操作時(shí),總線上必須有強(qiáng)的上拉,上 拉開(kāi)啟時(shí)間最大為 10 μ s。采用寄生電源供電方式是 VDD 和 GND 端均接地。由于單線制 只有一根線,因此發(fā)送接收口必須是三態(tài)的。主機(jī)控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng)過(guò) 3 個(gè)步驟:初始化、ROM 操作指令、存儲(chǔ)器操作指令。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為 MHz,根據(jù) DS18B20 的初始化時(shí)序、寫時(shí)序和讀時(shí)序,分別編寫 3 個(gè)子程序: INIT 為初始化子程序, WRITE 為寫(命令或數(shù) 據(jù))子程序, READ 為讀數(shù)據(jù)子程序,所有 的數(shù)據(jù)讀寫均由最低位開(kāi)始,實(shí)際在實(shí)驗(yàn)中不用這種方式,只要在數(shù)據(jù)線上加一個(gè)上拉 電阻 kΩ ,另外 2 個(gè)腳分別接電源和地電 子萬(wàn)年歷設(shè)計(jì) 16 處理功能鍵 時(shí)鐘調(diào)整模式 定時(shí)器 初 始化 液晶初始化 顯示數(shù)據(jù) DS1302 初始化 DS18B20 初始化 AT89c51 開(kāi)始 3. 系統(tǒng)軟件設(shè)計(jì) 主程序流程圖 電 子萬(wàn)年歷設(shè)計(jì) 17 關(guān)閉時(shí)鐘 讀取功能鍵值 調(diào)整時(shí)間 模式切換 跳出調(diào)整模式 顯示時(shí)間 啟動(dòng)時(shí)鐘 系統(tǒng)功能模塊圖及各功能介紹 時(shí)鐘調(diào)整模塊程序流程及程序 時(shí)鐘調(diào)整模塊程序流程圖 321: 圖 321 時(shí)鐘調(diào)整模塊程序流程圖 時(shí)鐘調(diào)整模塊程序 如下: ifndef _REAL_TIMER_DS1302_ define _REAL_TIMER_DS1302_ //SEL:運(yùn)行環(huán)境選擇 define SEL 0 //仿真環(huán)境 SEL=0,硬件環(huán)境 SEL=1 if SEL 0 sbit DS1302_CLK = P4^0。 //實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳 sbit DS1302_RST = P4^1。 //實(shí)時(shí)時(shí)鐘復(fù)位線引腳 sbit DS1302_IO = P4^2。 //實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳 else sbit DS1302_CLK = P3^1。 //實(shí)時(shí)時(shí)鐘 時(shí)鐘線引腳 sbit DS1302_RST = P3^0。 //實(shí)時(shí)時(shí)鐘復(fù)位線引腳 sbit DS1302_IO = P3^2。 //實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳 電 子萬(wàn)年歷設(shè)計(jì) 18 初始化 跳過(guò)讀序列號(hào) 讀取低位數(shù) 讀取高位數(shù) 數(shù)據(jù)轉(zhuǎn)換 初始化 啟動(dòng)溫度 讀取溫度寄存器 endif sbit ACC0 = ACC^0。 sbit ACC7 = ACC^7。 typedef struct __SYSTEMTIME__ { unsigned char Second。 unsigned char Minute。 unsigned char Hour。 unsigned char Week。 unsigned char Day。 unsigned char Month。 unsigned char Year。 unsigned char YearH。 //unsigned char DateString[9]。 //unsigned char TimeString[9]。 }SYSTEMTIME。 //定義的時(shí)間類型 溫度模塊程序流程圖 如圖 322: 圖 322 溫度模塊程序流程圖 溫度模塊程序如下: 電 子萬(wàn)年歷設(shè)計(jì) 19 ifndef _DS18B20_H_ define _DS18B20_H_ sbit DQ = P3^3。 unsigned char TempBuffer[10]={0}。 /***********ds18b20 延遲子函數(shù)(晶振 12MHz ) *******/ void delay_18B20(unsigned int i) { while(i)。 } /**********ds18b20 初始化函數(shù) ************** ********/ Init_DS18B20(void) { unsigned char x=0。 DQ = 1。 //DQ 復(fù)位 delay_18B20(8)。 //稍做延時(shí) DQ = 0。 //單片機(jī)將 DQ 拉低 delay_18B20(80)。 //精確延時(shí) 大于 480us DQ = 1。 //拉高總線 delay_18B20(14)。 ...................................... x=DQ。 //稍做延時(shí)后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay_18B20(20)。 return x。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1