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

正文內容

基于單片機的萬年歷的設計與制作畢業(yè)論文-wenkub.com

2025-02-22 10:24 本頁面
   

【正文】 TimeTimeString[7] = TimeSecond%10 + 39。 TimeTimeString[5] = 39。 TimeTimeString[3] = TimeMinute/10 + 39。 TimeTimeString[1] = TimeHour%10 + 39。 TimeDateString[8] = 39。 TimeDateString[6] = TimeDay/10 + 39。 TimeDateString[4] = TimeMonth%10 + 39。 TimeDateString[2] = 39。 } /**/ //日期轉化成字符 void DateToStr(SYSTEMTIME *Time) { TimeDateString[0] = TimeYear/10 + 39。 ReadValue = Read1302(DS1302_YEAR)。 ReadValue = Read1302(DS1302_MONTH)。 ReadValue = Read1302(DS1302_WEEK)。 ReadValue = Read1302(DS1302_DAY)。 ReadValue = Read1302(DS1302_HOUR)。 ReadValue = Read1302(DS1302_MINUTE)。 ReadValue = Read1302(DS1302_SECOND)。 //WP=0 允許數(shù)據(jù)寫入 DS1302 } /**/ //設置時間函數(shù) void DS1302_SetTime(unchar Address, unchar Value) { DS1302_SetProtect(0)。 DS1302_RST = 0。 DS1302_RST = 1。 DS1302_RST = 0。 DS1302_RST = 1。 //第一個數(shù)據(jù) DS1302_CLK = 1。 i0。 //由低位到高位 DS1302_CLK = 1。 for(i=8。 //日期轉化成字符 void TimeToStr(SYSTEMTIME *Time)。 //讀取 DS1302 指定地址中的數(shù)據(jù) void DS1302_SetProtect(bit Flag)。 /**/ //函數(shù)聲明 void DS1302_InputByte(unchar Data)。 //時鐘引腳 sbit DS1302_IO = P1^7。 //轉換一次需要延時一段時間 Init_DS18B20()。 //稍作延時 ,給硬件一點反應時間 } /***************************************************** 函數(shù)功能:做好讀溫度的準備 ***************************************************/ void ReadyReadTemp(void) { Init_DS18B20()。//延時 3us,兩個寫時序間至少需要 1us的恢復期 dat=1。//延時約 30us, DS18B20 在拉低后的約 15~60us 期間從數(shù)據(jù)線上采樣 DQ=1。0x01。 i++) { DQ =1。 //延時 3us,兩個讀時序之間必須有大于 1us 的恢復期 } return(dat)。 //如果讀到的數(shù)據(jù)是 1,則將 1 存入 dat else dat|=0x00。time2。 //等待一個機器周期 DQ = 0。 //儲存讀出的一個字節(jié)數(shù)據(jù) for (i=0。time++)。time++) 。time++) //略微延時約 600 微秒 。time++)。 //設置全局變量,專門用于嚴格延時 /***************************************************** 函數(shù)功能:將 DS18B20 傳感器初始化,讀取應答 信號 出口參數(shù): flag ***************************************************/ bit Init_DS18B20(void) { bit flag。 temp=tt*10+。//讀高八位 temp=b。 write_byte(0xcc)。 //直接向 18b20 發(fā)送溫度變換命令 write_byte(0x44)。 delay1(8)。 _nop_()。i++) //用 i來設定一字節(jié)的數(shù)據(jù) { if((mand amp。 //每次取出最高位 } return byte。i++) { byte=_cror_(byte ,1)。 } uchar read_byte(void) //讀一字節(jié)的數(shù)據(jù) { uchar i,byte=0。 _nop_()。 } bit read_bit(void) //讀一比特,特別注意對于 18b20,要讀數(shù)據(jù)時,一定要產生 DS 正脈沖,然后才傳送數(shù)據(jù) { bit temp。 delay1(100)。in。j33。 //定義數(shù)據(jù)傳輸接口 /***************************************************** 函數(shù)功能:延時 1ms (3j+2)*i=(3 33+2) 10=1010(微秒 ),可以認為是 1毫秒 ***************************************************/ void delay1ms() { unsigned char i,j。 第四章 系統(tǒng)的軟件設計 程序流程框圖 主程序流程 圖 開 始初 始 化 L C D  初 始 化 內 部 定 時 器 初 始 化 D S 1 3 0 2 從 D S 1 3 0 2 讀 取 日 期 和 時 間移 動 光 標 并 顯 示 日 期移 動 光 標 并 顯 示 時 間顯 示 溫 度 重 復 進 行 按 鍵 掃 描結 束 圖 時鐘芯片數(shù)據(jù)處理子程序流程圖 是 否 調 用 時 間 獲 取 子 程 序 D S 1 3 0 2 _ G e t T i m e調 用 R e a d 1 3 0 2 函 數(shù) , 讀 取 各 個 時 間 參 數(shù) , 并 存 放 于 R e a d V a l u e 變 量 中對 R e a d V a l u e 數(shù) 據(jù) 進 行 轉 換 , 轉 換成 十 進 制 數(shù) , 并 賦 給 T i m e 指 針 中 。 圖 16. LCD1602 內部顯示地址 例如第二行第一個字符的地址是 40H,那么是否直接寫入 40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 D7恒定為高電平 1所以實際寫入的數(shù)據(jù)應該是 01000000B( 40H)+10000000B(80H)=11000000B(C0H)。 指令 9:讀忙信號和光標地址 BF:忙標志位,高電平表示忙,此時模塊不能接收命令或數(shù)據(jù),如果為低電平表示不忙。 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍 ,低電平不閃爍。(說明 1為高電平, 0為低電平) 指令集如表 9所示。 表 7 DS18B20 ROM 命令 命令 描述 協(xié)議 此命令發(fā)出后總線上的活動 SEARCH ROM 識別總線上掛著的所有 DS18B20的ROM F0H 所有 DS18B20 向主機傳送 ROM 碼 READ ROM 當只有一個 DS18B20 掛在總線上時,可用此命令讀取 ROM 33H DS18B20 向主機傳送 ROM 碼 MATCH ROM 主機用 ROM 碼 來 指 定某 一 個DS18B20,只有匹配的 DS18B20 才會響應 55H 主機向總線傳送一個 ROM 碼 SKIP ROM 用于指定總線 上所有的器件 CCH ALARM SEARCH 與 SEARCH ROM 命令相似,但只有溫度超過警報線的 DS18B20才會響應 ECH 超過警報線的 DS18B20 向主機傳送 ROM 碼 表 8 DS18B20 RAM 功能命令 命令 描述 協(xié)議 此命令發(fā)出后總線上的活動 Convert T 開始溫度轉換 44H DS18B20 向主機傳送轉換狀態(tài) Read Scratchpad 讀暫存器完整的數(shù)據(jù) BEH DS18B20 向主機傳送總共 9 字節(jié)的數(shù)據(jù) Write Scratchpad 向寄存器的 3 和 4 字節(jié)寫入數(shù)據(jù)( TH、 TL 和精度) 4EH 主機向 DS18B20 傳送 3字節(jié)的數(shù)據(jù) Copy Scratchpad 將 TH、 TL 和配置寄存器的數(shù)據(jù)復制到 EEPROM 48H DS18B20 向主機傳送調用狀態(tài) Recall E2 將 TH、 TL 和配置寄存器的數(shù)據(jù)從 EEPROM中調到暫存器中 B8H Read Power Supply 向主機示意電源供電狀態(tài) B4H DS18B20 向主機傳送供電狀態(tài) 按鍵處理模塊的設計 系統(tǒng) 按鍵 部分原理圖如圖 13所示。 DS18B20 復位時序如圖 12( a) 所示。 幾種溫度數(shù)據(jù)輸出舉例如表 6所列。 DS18B20溫度數(shù)據(jù)輸出格式如表 5所列。 斜 率 累 加 器預 置計 數(shù) 比 較 器減 法 計 數(shù) 器 1低 溫 度 系 數(shù) 晶 振減 到 0預 置溫 度 寄 存 器減 到 0減 法 計 數(shù) 器 2高 溫 度 系 數(shù) 晶 振 圖 測溫原理 減法計數(shù)器 1 對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當預置數(shù)值減到 0時,溫度計數(shù)器的值將加 1,然后減法計數(shù)器 1的預置值重新被裝入且重新開始對低溫度系數(shù)晶振產生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器 2計數(shù)到 0 時,停止溫度寄存器值的累加,此時溫度 寄存器中的數(shù)值就是所測溫度值。 圖 10. DS18B20 溫度采集 ( 2)原理說明 ① DS18B20 測溫原理 DS18B20 的具體測溫原理如圖 11 所示 。表3為 DS1302 的日歷、時間寄存器內容:“ CH”是時鐘暫停標志位,當該位為 1時,時鐘振蕩器停止, DS1302 處于低功耗狀態(tài);當該位為 0 時,時鐘開始運行。對于位 6,若對程序進行讀 /寫時 RAM=1,對時間進 行讀 /寫時, CK =0。 8 個時鐘 /日歷寄存器從 RAM 寄存器 0開始,依次由地址 0~地址 7順序讀 /寫數(shù)據(jù)。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄 存器外的所有寄存器內容。假設現(xiàn)有數(shù)據(jù)為 31s,那么其存儲情況應為 bit6~ bit4=011, bit3~ bit0=0001。 除了寄存器特殊狀態(tài)位以外,普通時鐘寄存器中的其他數(shù)據(jù)是按照 BCD 碼的形式來存儲數(shù)據(jù)的。如下圖 9所示 圖 讀 /寫時序圖 ③ DS1302 的寄存器 DS1302 有 12 個寄存器,其中有 7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為 BCD 碼形式 ,其日歷、時間寄存器及其控制字見表 2。 輸出時 。 主要單元模塊的設計 及原理 單片機主控制模塊的設計 系統(tǒng)主控 制部分原理圖如圖 7所示。 第三章 系統(tǒng)的硬件設計與實現(xiàn) 電路設計框圖 圖 系統(tǒng)硬件概述 本電路是由 AT89S52 單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由 DS1302 提供,它是一種高性能、低功耗、帶 RAM 的實時時鐘 電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為 ~ 。 引腳 2( DQ):數(shù)據(jù)輸入 /輸出引腳,漏極開路單總線接口引腳。適合在惡劣環(huán)境的現(xiàn)場進行溫度測試,可應用于環(huán)境控制 ,過程控制、測溫類消費電子產品中。 圖 4. DS1302 引腳圖 DS18B20 溫度芯片 DS18B20 簡介 DS18B20 是由 Dallas 半導體公司生產的數(shù)字化溫度傳感器,是世界上第一個支持“一線總線”接口的溫度傳感器,“ 一線總線 ” 接口芯片獨特芯片而且經濟,使用戶可以輕松地組建傳感器網(wǎng)絡,為測量系統(tǒng)的構建引入了全新概念。如果在傳送
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1