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

正文內(nèi)容

基于at89s52的萬(wàn)年歷設(shè)計(jì)(編輯修改稿)

2024-12-10 07:09 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 19 19 5 硬件設(shè)計(jì)與實(shí)現(xiàn) 單片機(jī)主控制模塊的設(shè)計(jì): AT89S52 單片機(jī)為 40 引腳雙列直插芯片 ,有四個(gè) I/O 口 P0,P1,P2,P3, MCS51 單片機(jī)共有 4個(gè) 8 位的 I/O 口( P0、 P P P3),每一條 I/O 線都能獨(dú)立地作輸出或輸入。 單片機(jī)的最小系統(tǒng)如下圖所示 ,18 引腳和 19 引腳接時(shí)鐘電路 ,XTAL1 接外部晶振和微調(diào)電容的一端 ,在片內(nèi)它是振蕩器倒相放大器的輸入 ,XTAL2 接外部晶振和微調(diào)電容的另一端 ,在片內(nèi)它是振蕩器倒相放大器的輸出 .第 9 引腳為復(fù)位輸入端 ,接上電容 ,電阻及開(kāi)關(guān)后夠上電復(fù)位電路 ,20 引腳為接地端 ,40 引腳為電源端。 單片機(jī)主控制模塊的設(shè)計(jì)(圖): MCU 8952 DS18B20 溫度采樣 LCD16824 顯示 DATA DATA DS1302 時(shí)鐘芯片 Control DATA Control 鍵盤(pán) DS1302 時(shí)鐘芯片 Control 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 20 20 時(shí)鐘電路模塊(圖): 溫度采集模塊設(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 接地。 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 21 21 DS18B20 溫度采集 12864顯示模塊設(shè)計(jì)(圖): 12864與單片機(jī)的硬件連接圖 電路總線路(圖): 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 22 22 6 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn) 主要算法流程圖描述 軟件流程圖 :以 80C52 為核心 ,處理外轉(zhuǎn)電路傳進(jìn)來(lái)的信號(hào) ,實(shí)現(xiàn)時(shí)鐘數(shù)據(jù)的讀取 ,保存 ,顯示其及鍵盤(pán)操作。 流程圖如下所示 : 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 23 23 系 統(tǒng) 初 始 化數(shù) 據(jù) 采 集L C D 顯 示按 鍵 檢 測(cè)功 能 設(shè) 置設(shè) 置 完 畢結(jié) 束開(kāi) 始否是 主程序流程圖 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 24 24 初始 變量初始化化 控制器發(fā)送 ROM 指令 復(fù)位端產(chǎn)生一個(gè)高電平 寫(xiě) 1302 地址 延時(shí) 向地址寫(xiě)數(shù)據(jù)據(jù) 地 址增加 復(fù)位端產(chǎn)生一個(gè)高電平 數(shù)據(jù)是否寫(xiě)完 ? 寫(xiě) 1302 地址 延時(shí) 將該地址的數(shù)據(jù)讀出 地址增加 數(shù)據(jù)是否讀完 ? Y Y N N 顯示數(shù)據(jù) 計(jì)算陽(yáng)歷和時(shí)分秒流程圖 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 25 25 計(jì)算陰歷程序流程圖 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 26 26 時(shí)間調(diào)整程序流程圖 開(kāi) 始 Set 鍵有效進(jìn)入年調(diào)整 等待按鍵程序 Up 鍵 Down Out 年加 1 年減 1 退出 Set 鍵有效 ,月調(diào)整 等待按鍵程序 Out 鍵 Down Up 退出 月減 1 月加 1 Set 鍵有效 ,日調(diào)整 等待按鍵程序 Up 鍵 Down Out 年加 1 年減 1 退出 Set 鍵有效 ,時(shí)調(diào)整 等待按鍵程序 Out 鍵 Down Up 時(shí)減 1 時(shí)加 1 退出 Set 鍵有效 ,分調(diào)整 等待按鍵程序 Down 鍵 Up 鍵 Out 鍵 分加 1 分減 1 退出 Set 鍵有效 ,設(shè)置鬧鈴 判 斷 退出 設(shè)置時(shí) 設(shè)置分 等待按鍵程序 Set 鍵有效 ,退出 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 27 27 計(jì)算星期算法 文字描述 : 星期 =(日期年份 +所過(guò)閏年數(shù) +月校正數(shù) )%7 如果是在閏年又不到 3月份上述之和要減一天再除 7 其 1到 12月的校正數(shù)據(jù)為 [6 2 2 5 0 3 5 1 4 6 2 4] 該程序中采用 1 個(gè)字節(jié)表示年份閏年數(shù)也只計(jì)算 1900 年以后的閏年數(shù) S=A+B+C+D D=月校正數(shù) A=公歷日期 B= 公歷年份+100 C=所過(guò)閏年數(shù) 閏年是否到 3 月份 W=(S1)%7 (S1 W=S%7 (S1 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 28 28 LCM16824 子程序的實(shí)現(xiàn) 讀寫(xiě)時(shí)序圖 主要函數(shù)模塊 : 函數(shù) :void lcd_init(void) 顯示初始化程序 . 函數(shù) :Void GUI_init() 該函數(shù)用于初始化顯示界面 ,把一些固定不需要刷新的文字固定下來(lái) . 函數(shù) :void lw(uchar x, uchar y, uchar dd) 用來(lái)寫(xiě)數(shù)據(jù)的子程序 . 函數(shù) : void display(uchar xx, uchar yy, uchar n, uchar fb,uchar hz[]) 用于顯示漢字 ,每個(gè)漢字為 16*16的點(diǎn)陣 函數(shù) : void shownum(uchar xx,uchar yy,uchar n,uchar fb,uchar num[]) 用于顯示數(shù)字 ,每個(gè)數(shù)字為 8*16的點(diǎn)陣 . 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 29 29 DS1302 子程序的實(shí)現(xiàn) DS1302讀寫(xiě)時(shí)序圖 定義結(jié)構(gòu)體數(shù)組 SYSTEMTIME 的時(shí)間類(lèi)型 .結(jié)構(gòu)體數(shù)組如下 : typedef struct __SYSTEMTIME__ { unsigned char Second。 unsigned char Minute。 unsigned char Hour。 unsigned char Week。 unsigned char Day。 unsigned char Month。 unsigned char Year。 }SYSTEMTIME 主要函數(shù)模塊 : 函數(shù) : void Initial_DS1302(void) 描述 :時(shí)鐘芯片初始化 函數(shù) : void Write1302(unsigned char ucAddr, unsigned char ucDa) 描述 :把某個(gè)數(shù)據(jù)寫(xiě)進(jìn)某個(gè)地址 函數(shù) : unsigned char Read1302(unsigned char ucAddr) 描述 :從芯片內(nèi)某地址讀取數(shù)據(jù) 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 30 30 函數(shù) : void DS1302_GetTime(SYSTEMTIME *Time) 描述 : 獲取時(shí)鐘芯片的時(shí)鐘數(shù)據(jù)到自定義的結(jié)構(gòu)型數(shù)組 函數(shù) : void DS1302InputByte(unsigned char d) 描述 : 往時(shí)鐘寫(xiě)入一字節(jié) 函數(shù) : unsigned char DS1302OutputByte(void) 描述 :從時(shí)間內(nèi)讀取一個(gè)字節(jié) DS18B20 子程序的實(shí)現(xiàn) 簡(jiǎn)要流程圖 主要函數(shù)描述 : 函數(shù) : void Init_DS18B20(void) 描述 :單總線傳輸初始化函數(shù) . 函數(shù) : void WriteOneChar(uchar dat) 復(fù)位 存在脈沖 控制器發(fā)送 ROM 指令 控制器發(fā)送存儲(chǔ)器操作指令 執(zhí)行或數(shù)據(jù)讀寫(xiě) 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 31 31 描述 :往芯片內(nèi)部地址寫(xiě)入一個(gè)字節(jié) ,有寫(xiě)數(shù)據(jù)和寫(xiě)指令之分。 函數(shù) : void ReadTemp(void) 描述 :讀取芯片的溫度 . 函數(shù) : void delay_18B20(unsigned int i) 描述 :延時(shí)函數(shù) 鍵盤(pán)子程序的實(shí)現(xiàn) 主要函數(shù)模塊 : 函 數(shù) 名 : void key_count() 功能描述 :設(shè)置狀態(tài)轉(zhuǎn)換函數(shù) ,根據(jù)變量 count 的不同值 ,對(duì)應(yīng)不同的設(shè)置狀態(tài)按下設(shè)置鍵,自動(dòng)切換設(shè)置位 函 數(shù) 名 : void key_out() 功能描述 :跳出設(shè)置模式 .. 函 數(shù) 名 : uchar key_up(int temp,int max,int min) 功能描述 : 按鍵加函數(shù),在最大值與最小值之間變化 函 數(shù) 名 : uchar key_down(int temp,int max,int min) 功能描述 : 按鍵減函數(shù),在最大值與最小值之間變化 函 數(shù) 名 :void set_year()。 void set_month()。 void set_day()。 void 基于 AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 32 32 set_hour()。 void set_minute()。 功能描述 : 分別是用來(lái)設(shè)置 年 月 日 時(shí) 分 秒 函 數(shù) 名 : void key_al01() 功能描述 :設(shè)置定時(shí)報(bào)警功能 . 主程序的實(shí)現(xiàn) 主要函數(shù)模塊 : 函 數(shù) 名 : Init_GUI() 功能描述 :進(jìn)行界面初始化 .例如固定的年、星期、農(nóng)歷。 函 數(shù) 名 : void Show_NL() 功能描述 :根據(jù)算法 ,得出陰歷 , 包括天干地支月日。 函 數(shù) 名 : void Show_YL() 功能描述 :根據(jù)算法 ,從時(shí)鐘芯片讀出陽(yáng)歷數(shù)據(jù) ,顯示出來(lái)。 函 數(shù) 名 : LCD_ShowWNL() 功能描述 :根據(jù)算法 ,顯示電子萬(wàn)年歷 ,其中時(shí)鐘的”秒”位為每次循環(huán)刷新一次 ,”分”為在普通模式時(shí)每分鐘刷新一次 ,在設(shè)置模式時(shí)每次循環(huán)刷新一次 ,”時(shí)” 為在普通模式時(shí)每小時(shí)刷新一次 ,在設(shè)置模式時(shí)每次循環(huán)刷新一次,公歷農(nóng)歷的年、月、日、星期、溫度 ,設(shè)置模式每次循環(huán)刷新一次。 函數(shù)名 :void LCD_showalarm() 功能描述 :顯示定時(shí)報(bào)警的時(shí)間。 函 數(shù) 名 : void mian() 功能描述 :顯示萬(wàn)年歷,循環(huán)讀取時(shí)間,并通過(guò)程序進(jìn)行鍵盤(pán)檢測(cè)?;?AT89S52 單片機(jī)和 DS1302 的多功能萬(wàn)年歷設(shè)計(jì) 33 33 7 系統(tǒng)調(diào)試 系統(tǒng)調(diào)試包括軟件調(diào)試和硬件調(diào)試。硬件調(diào)試的任務(wù)是排除所焊接電路故障。軟件調(diào)試是利用開(kāi)發(fā)工具進(jìn)行在線仿真調(diào)試。調(diào)試的一般過(guò)程如下所示: 系統(tǒng)調(diào)試的一般過(guò)程是上電運(yùn)行后觀察其運(yùn)行狀態(tài),數(shù)碼管 是否點(diǎn)亮等。軟件調(diào)試先是各個(gè)模塊、各個(gè)子程序分別調(diào)試,最后進(jìn)行系統(tǒng)聯(lián)機(jī)調(diào)試。 軟件調(diào)試 編程工具 — C51 語(yǔ)言 8051 單片機(jī)的應(yīng)用程序設(shè)計(jì),使用 C51 語(yǔ)言進(jìn)行程序
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1