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

正文內(nèi)容

基于單片機(jī)的電子萬(wàn)年歷帶計(jì)算器(編輯修改稿)

2024-12-16 02:44 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 錯(cuò)后,就直接生產(chǎn) hex 文件,然后進(jìn)行( proteus)軟件仿真。 我們用 proteus 繪制的仿真圖如下: 圖 、 軟件仿真 在硬件設(shè)計(jì)完成后,利用軟件對(duì)其進(jìn)行仿真,這樣,就會(huì)減少在做硬件時(shí)的錯(cuò)誤,做到更準(zhǔn)確。本次我采用 Proteus 軟件仿真。 第 16 頁(yè) 如圖 所示,電子萬(wàn)年歷的時(shí)間仿真圖。 圖 經(jīng)過(guò)此次的軟件仿真,仿真結(jié)果正常,可以順利的進(jìn)行硬件制作。 、硬件調(diào)試 前期的那些準(zhǔn)備工作都是為了這最后的一步,先把元件排版好后,就是自己動(dòng)手焊接,制作出完整的實(shí)物。在確保焊接無(wú)誤后,接著將之前編好的程序燒寫(xiě)進(jìn)單片機(jī),做最后的硬件調(diào)試。(看效果是否和仿真的效果一致,如果和仿真相同,那么作品就成功地完成了。要是沒(méi)有達(dá)到仿真時(shí)的效果,那么就是焊接時(shí)出現(xiàn)了失誤。)我們的硬件測(cè)試比較順利,以下為實(shí)物演示圖。 第 17 頁(yè) 第七章 總結(jié)與體會(huì) 在用單片機(jī)實(shí)現(xiàn)萬(wàn)年歷計(jì)算器的設(shè)計(jì)中使用 到了 STC89C5 LCD160LDS1302 及其 4*4 鍵盤(pán)的使用。在設(shè)計(jì)過(guò)程中我通過(guò)在課本、網(wǎng)上和圖書(shū)館查閱資料,收集了關(guān)于單片機(jī)、液晶屏 LCD1602 顯示和時(shí)鐘芯片 LDS1302 方面的資料,通過(guò)對(duì)這些資料的學(xué)習(xí),我了解了單片機(jī)的基本結(jié)構(gòu)和單片機(jī)在生活和生產(chǎn)中所發(fā)揮的作用以及液晶顯示器 LCD1602 和 時(shí)鐘芯片 LDS1302 的原理和使用。 本次課程設(shè)計(jì)是對(duì)以前學(xué)過(guò)的理論知識(shí)進(jìn)行了鞏固,加深了理解,提高了應(yīng)用的能力,提高了自己的發(fā)現(xiàn)、分析、解決問(wèn)題的能力;也增加了團(tuán)隊(duì)合作的精神,我們分工明確,每人負(fù)責(zé)不 同的工作,做到了人人到參與到作品設(shè)計(jì)中,還有更重要的就是提升了自己的動(dòng)手(實(shí)踐)能力。經(jīng)歷了從最初的選題、硬件設(shè)計(jì)、軟件設(shè)計(jì)到最后仿真結(jié)果的出現(xiàn),從一定程度上提高了對(duì)專(zhuān)業(yè)知識(shí)的認(rèn)識(shí)及興趣。本次課程設(shè)計(jì)大體上還是比較順利的,我們雖然把作品成功地做出來(lái),這說(shuō)明我們?cè)谟布@一塊還是可以的;但是在軟件方面,我們就比較差了,軟件一直困擾著我們,是我們的一大肋骨。但我堅(jiān)信只要我們持之以恒,就一定能攻破軟件這一塊。我們期待著在軟件方面的進(jìn)步。 第 18 頁(yè) 第八章 致謝 在此也很感謝學(xué)校和老師給我們提供了這樣的平臺(tái),能使我 們的動(dòng)手能力增強(qiáng);感謝老師對(duì)我們提供的幫助,感謝老師帶給我們新的知識(shí),使我們順利地完成本次的課程設(shè)計(jì)。同時(shí)也感謝我的同學(xué)們,對(duì)我的幫助以及支持! 第九章 參考文獻(xiàn) [1]陳朝大 . 李杏彩 . 單片機(jī)原理與應(yīng)用 . 化學(xué)工業(yè)出版社 . 2020: 045747 [2] 田立 .田清 .代方震 .51 單片機(jī) C 語(yǔ)言程序設(shè)計(jì) .北京 .人民郵電出版社 .2020: 132148. [3] 張儀和 .例說(shuō) 51 單片機(jī)( C 語(yǔ)言版)(第三版) .北京 .人民郵電出版社 .2020: 374392. [4] 譚浩強(qiáng) .C 程序設(shè)計(jì)(第 三版) .北京 .清華大學(xué)出版社 .2020: 140150. [5] 溫子祺 .劉志峰 .冼安勝 .林秩謙 .李益鴻 .51單片機(jī) C 語(yǔ)言創(chuàng)新教程 .北京 .北京航空航天大學(xué)出版社 .2020: 154163. [6] 俞錫存 .曹?chē)?guó)華 .單片機(jī)原理及接口技術(shù) .西安 .西安電子科技大學(xué)出版社 .2020: 8095. 第 19 頁(yè) 第十章 附加程序 DS1302 時(shí)鐘芯片程序 include typedef unsigned char u8。 typedef unsigned int u16。 sbit DS1302_CE = P3^5。 sbit DS1302_CK = P3^3。 sbit DS1302_IO = P3^4。 extern u8 setIndex。 //時(shí)間設(shè)置索引 u8 setIndex。 //時(shí)間設(shè)置索引 extern void LcdShowStr(u8 x, u8 y, u8 *str)。 extern void LcdSetCursor(unsigned char x, unsigned char y)。 extern void LcdOpenCursor()。 extern void LcdCloseCursor()。 struct sTime { //日期時(shí)間結(jié)構(gòu)體定義 unsigned int year。 //年 unsigned char mon。 //月 unsigned char day。 //日 unsigned char hour。 //時(shí) unsigned char min。 //分 unsigned char sec。 //秒 }。 /* 發(fā)送一個(gè)字節(jié)到 DS1302 通信總線 上 */ void DS1302ByteWrite(unsigned char dat) { unsigned char mask。 for (mask=0x01。 mask!=0。 mask=1) //低位在前,逐位移出 { if ((maskamp。dat) != 0) //首先輸出該位數(shù)據(jù) DS1302_IO = 1。else DS1302_IO = 0。 DS1302_CK = 1。 //然后拉高時(shí)鐘 DS1302_CK = 0。 //再拉低時(shí)鐘,完成一個(gè)位的操作 } DS1302_IO = 1。 //最后確保釋放 IO 引腳 } /* 由 DS1302 通信總線上讀取一個(gè)字節(jié) */ unsigned char DS1302ByteRead() { unsigned char mask。 unsigned char dat = 0。 for (mask=0x01。 mask!=0。 mask=1) //低位在前,逐位讀取 { if (DS1302_IO != 0) //首先讀取此時(shí)的 IO 引腳,并設(shè)置 dat 中的對(duì)應(yīng)位 { dat |= mask。 } 第 20 頁(yè) DS1302_CK = 1。 //然后拉高時(shí)鐘 DS1302_CK = 0。 //再拉低時(shí)鐘,完成一個(gè)位的操作 } return dat。 //最后返回讀到的字節(jié)數(shù)據(jù) } /* 用單次寫(xiě)操作向某一寄存器寫(xiě)入一個(gè)字節(jié), reg寄存器地址, dat待寫(xiě)入字節(jié) */ void DS1302SingleWrite(unsigned char reg, unsigned char dat) { DS1302_CE = 1。 //使能片選信號(hào) DS1302ByteWrite((reg1)|0x80)。 //發(fā)送寫(xiě)寄存器指令 DS1302ByteWrite(dat)。 //寫(xiě)入字節(jié)數(shù)據(jù) DS1302_CE = 0。 //除能片選信號(hào) } /* 用單次 讀操作從某一寄存器讀取一個(gè)字節(jié), reg寄存器地址,返回值 讀到的字節(jié) */ unsigned char DS1302SingleRead(unsigned char reg) { unsigned char dat。 DS1302_CE = 1。 //使能片選信號(hào) DS1302ByteWrite((reg1)|0x81)。 //發(fā)送讀寄存器指令 dat = DS1302ByteRead()。 //讀取字節(jié)數(shù) 據(jù) DS1302_CE = 0。 //除能片選信號(hào) return dat。} /* 用突發(fā)模式連續(xù)寫(xiě)入 8 個(gè)寄存器數(shù)據(jù), dat待寫(xiě)入數(shù)據(jù)指針 */ void DS1302BurstWrite(unsigned char *dat) { unsigned char i。 DS1302_CE = 1。 DS1302ByteWrite(0xBE)。 //發(fā)送突發(fā)寫(xiě)寄存器指令 for (i=0。 i8。 i++) //連續(xù)寫(xiě)入 8 字節(jié)數(shù)據(jù) { DS1302ByteWrite(dat[i])。 } DS1302_CE = 0。} /* 用突發(fā)模式連續(xù)讀取 8 個(gè)寄存器的數(shù)據(jù), dat讀取數(shù)據(jù)的接收指針 */ void DS1302BurstRead(unsigned char *dat) { unsigned char i。 DS1302_CE = 1。 DS1302ByteWrite(0xBF)。 //發(fā)送突發(fā)讀寄存器指令 for (i=0。 i8。 i++) //連續(xù)讀取 8 個(gè)字節(jié) { dat[i] = DS1302ByteRead()。 } DS1302_CE = 0。 } /* 獲取實(shí)時(shí)時(shí)間,即讀取 DS1302 當(dāng)前時(shí)間并轉(zhuǎn)換為時(shí)間結(jié)構(gòu)體格式 */ void GetRealTime(struct sTime *time) { unsigned char buf[8]。 第 21 頁(yè) DS1302BurstRead(buf)。 timeyear = buf[6] 。//+ 0x2020 timemon = buf[4]。 timeday = buf[3]。 timehour = buf[2]。 timemin = buf[1]。 timesec = buf[0]。 timeweek = buf[5]。 } /* 設(shè)定實(shí)時(shí)時(shí)間,時(shí)間結(jié)構(gòu)體格式的設(shè)定時(shí)間轉(zhuǎn)換為數(shù)組并寫(xiě)入 DS1302 */ void SetRealTime(struct sTime *time) { unsigned char buf[8]。 buf[7] = 0。 buf[6] = timeyear。 buf[5] = timeweek。 buf[4] = timemon。 buf[3] = timeday。 buf[2] = timehour。 buf[1] = timemin。 buf[0] = timesec。 DS1302BurstWrite(buf)。 /* DS1302 初始化,如發(fā)生掉電則重新設(shè)置初始時(shí)間 */ void InitDS1302() { unsigned char dat。 struct sTime code InitTime[] = { //2020 年 10 月 8 日 12:30:00 星期二 0x2020,0x10,0x08, 0x12,0x30,0x00, 0x02 }。 DS1302_CE = 0。 //初始化 DS1302 通信引腳 DS1302_CK = 0。 dat = DS1302SingleRead(0)。 //讀取秒寄存器 if ((dat amp。 0x80) != 0) //由秒寄存器最高位 CH 的值判斷 DS1302 是否已停止 { DS1302SingleWrite(7, 0x00)。 //撤銷(xiāo)寫(xiě)保護(hù)以允許寫(xiě)入數(shù)據(jù) SetRealTime(amp。InitTime)。 //設(shè)置 DS1302 為默認(rèn)的初始時(shí)間 } } 鍵盤(pán)按鍵程序 include typedef unsigned char u8。 typedef unsigned int u16。 sbit KEY_IN_1 = P2^4。 sbit KEY_IN_2 = P2^5。 sbit KEY_IN_3 = P2^6。 sbit KEY_IN_4 = P2^7。 sbit KEY_OUT_1 = P2^3。 sbit KEY_OUT_2 = P2^2。 sbit KEY_OUT_3 = P2^1。 sbit KEY_OUT_4 = P2^0。 sbit KEY_IN_Point = P3^7。 sbit KEY_IN_Switch = P3^6。 unsigned char PointFlag=0。 unsigned char code KeyCodeMap[5][4] = { //矩陣按鍵編號(hào)到標(biāo)準(zhǔn)鍵盤(pán)鍵碼的映射表
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1