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

正文內(nèi)容

基于51單片機電子鬧鐘或萬年歷的設(shè)計課程設(shè)計(編輯修改稿)

2025-04-08 06:56 本頁面
 

【文章內(nèi)容簡介】 片機原理與應(yīng)用課程設(shè)計》 21 通過自己的 不懈努力,我終于完成了畢業(yè)設(shè)計任務(wù)書上的任務(wù)要求。功能上基本達標:時鐘的顯示 、 調(diào)時功能 、 鬧鈴功能。其精確度完全可以滿足日常生活顯示時間的需要;調(diào)時功能,方便快捷;校時功能保證了時鐘準確和可靠性 。硬件設(shè)施合乎要求,軟件設(shè)計可以配合硬件實現(xiàn)要求的功能。但是由于時間比較短,前期設(shè)計出現(xiàn)部分不足:如位選閃爍功能不能實現(xiàn)、鬧鐘的開啟與關(guān)閉、間斷蜂鳴聲等。這些只是軟件設(shè)計時相應(yīng)功能部分還不完善造成。不過經(jīng)仔細思考和程序的完善,最終將軟件設(shè)計改進,并完全可以很好實現(xiàn)所有要求的功能。 可見技術(shù)在不斷進步,機械式時鐘已經(jīng)被淘 汰,取而代之的是具有高度準確性和直觀性且無機械裝置,具有更長的使用壽命等優(yōu)點的數(shù)字時鐘。數(shù)字時鐘更具人性化,更能提高人們的生活質(zhì)量,更受人們歡迎。 無可否認機械時代已經(jīng)過去,電子時代已經(jīng)到來。做為新時代的我們,更應(yīng)該提高自身能力,適應(yīng)新時代的發(fā)展。知識來自實踐,多去生活中探詢所需要的。對于上述所提到的研究課題,我們應(yīng)盡量考慮到人的因素,增強時鐘的實用性和操作性,為使用者提供切實的方便,營造一種舒適的生活氛圍。所以,在設(shè)計的時候,應(yīng)該從多方面、多角度去考慮問題,而且應(yīng)該進一步提高時鐘的質(zhì)量。 另外,在 本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前沒有做過這樣的設(shè)計但通過這次設(shè)計我學(xué)會了很多東西,單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,比如寫一個程序看其功能很少認為編寫程序簡單,但到編程的時候才發(fā)現(xiàn)一些細微的知識或低級錯誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。 從這次的課程設(shè)計中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論 知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我在這次課程設(shè)計中的最大收獲。 武漢理工大學(xué)《單片機原理與應(yīng)用課程設(shè)計》 22 參考文獻 [1] 張友德,趙志英,涂時亮 .《單片微型機原理、應(yīng)用與實驗》 [M].上海:復(fù)旦大學(xué)出版社, 2021. [2] 趙亮,侯國銳 .《單片機 C 語言編程與實例》 [M].北京:人民郵電出版社, 2021. [3] 高鵬,安濤,寇懷成 .《電路設(shè)計與制版 ——protel99 入門與提高》 [M].北京:人民郵電出版社, 2021. [4] 譚浩強 .《 C 程序設(shè)計 (第三版)》 [M].北京:清華大學(xué)出版社 ,2021. [5] 李朝青 .《單片機原理及接口技術(shù)》 [M].北京:北京航空航天大學(xué)出版社, 2021. [6] 康光華,《電子技術(shù)基礎(chǔ) — 模擬部分(第五版)》 [M].北京:高等教育出版社, 2021. 武漢理工大學(xué)《單片機原理與應(yīng)用課程設(shè)計》 23 附錄一 系統(tǒng)原理圖 武漢理工大學(xué)《單片機原理與應(yīng)用課程設(shè)計》 24 附錄二 系統(tǒng)程序 include //包含單片機寄存器的頭文件 include //包含 _nop_()函數(shù)定義的頭文件 unsigned char code digit[10]={0123456789}。 //定義字符數(shù)組顯示數(shù)字 sbit SCLK=P1^0。 //位定義 1302 芯片的接口,時鐘輸出端口定義在 引腳 sbit DATA=P1^1。 //位定義 1302 芯片的接口,數(shù)據(jù)輸出端定義在 引腳 sbit RST=P1^2。 //位定義 1302 芯片的接口,復(fù)位端口定義在 引腳 sbit K1=P3^2。 //定義按鍵 1 觸發(fā)中斷 0,調(diào)整時間按鈕 sbit K4=P3^3。 //定義按鍵 1 觸發(fā)中斷 1,設(shè)置鬧鐘按鈕 sbit K2=P1^4。 //定義按鍵 2, + sbit K3=P1^5。 //定義按鍵 3, sbit BEEP=P3^6。 //蜂鳴器 unsigned char miao,fen,shi,tian,yue,nian。//分別儲存苗、分、小時,日,月,年 unsigned char settime=0。 unsigned char setclock=0。 unsigned char clock_hour,clock_min,clock_sec。 /***************************************************** 函數(shù)功能:延時若干微秒 入口參數(shù): n ***************************************************/ void delaynus(unsigned char n) { unsigned char i。 for(i=0。in。i++)。 } /***************************************************** 函數(shù)功能:向 1302 寫一個字節(jié)數(shù)據(jù) 入口參數(shù): x ***************************************************/ void Write1302(unsigned char dat) { unsigned char i。 SCLK=0。 //拉低 SCLK,為脈沖上升沿寫入數(shù)據(jù)做好準備 delaynus(10)。 //稍微等待,使硬件做好準備 for(i=0。i8。i++) //連續(xù)寫 8 個二進制位數(shù)據(jù) { DATA=datamp。0x01。 //取出 dat 的第 0 位數(shù)據(jù)寫入 1302 低位在前,高位在后 delaynus(10)。 //稍微等待,使硬件做好準備 SCLK=1。 //上升沿寫入數(shù)據(jù) delaynus(10)。 //稍微等待,使硬件做好準備 SCLK=0。 //重新拉低 SCLK,形成脈沖 dat=1。 //將 dat 的各數(shù)據(jù)位右移 1 位,準備寫入下一個數(shù)據(jù)位 } } /***************************************************** 函數(shù)功能:根據(jù)命令字,向 1302 寫一個字節(jié)數(shù)據(jù) 入口參數(shù): Cmd,儲存命令字; dat,儲存待寫的數(shù)據(jù) ***************************************************/ 武漢理工大學(xué)《單片機原理與應(yīng)用課程設(shè)計》 25 void WriteSet1302(unsigned char Cmd,unsigned char dat) { RST=0。 //禁止數(shù)據(jù)傳遞 SCLK=0。 //確保 寫數(shù)居前 SCLK 被拉低 RST=1。 //啟動數(shù)據(jù)傳輸 delaynus(10)。 //稍微等待,使硬件做好準備 Write1302(Cmd)。 //寫入命令字 Write1302(dat)。 //寫數(shù)據(jù) SCLK=1。 //將時鐘電平置于高電平狀態(tài) RST=0。 //禁止數(shù)據(jù)傳遞 } /***************************************************** 函數(shù)功能:從 1302 讀一個字節(jié)數(shù)據(jù) 入口參數(shù): x ***************************************************/ unsigned char Read1302(void) { unsigned char i,dat。 delaynus(10)。 //稍微等待,使硬件做好準備 for(i=0。i8。i++) //連續(xù)讀 8 個二進制位數(shù)據(jù) { dat=1。 if(DATA==1) //如果讀出的數(shù) 據(jù)是 1 dat|=0x80。 //將 1 取出,寫在 dat 的最高位 SCLK=1。 //將 SCLK 置于高電平,為下降沿讀出 delaynus(10)。 //稍微等待 SCLK=0。 //拉低 SCLK,形成脈沖下降沿 delaynus(10)。 //稍微等待 } return dat。 //將讀出的數(shù)據(jù)返回 } /***************************************************** 函數(shù)功能:根據(jù)命令字,從 1302 讀取一個字節(jié)數(shù)據(jù) 入口參數(shù): Cmd ***************************************************/ unsigned char ReadSet1302(unsigned char Cmd) { unsigned char dat。 RST=0。 //拉低 RST SCLK=0。 //確保寫數(shù)居前 SCLK 被拉低 RST=1。 //啟動數(shù)據(jù)傳輸 Write1302(Cmd)。 //寫入命令字 dat=Read1302()。 //讀出數(shù)據(jù) SCLK=1。 //將時鐘電平置于已知狀態(tài) RST=0。 //禁止數(shù)據(jù)傳遞 return dat。 //將讀出的數(shù)據(jù)返回 } /***************************************************** 函數(shù)功能: 1302 進行初始化設(shè)置 ***************************************************/ void Init_DS1302(unsigned char year,unsigned char mon,unsigned char dt, unsigned char hour,unsigned char min,unsigned char sec) { /* unsigned char flag。 武漢理工大學(xué)《單片機原理與應(yīng)用課程設(shè)計》 26 flag= ReadSet1302(0x81)。 if(flagamp。0x80) { //判斷時鐘芯片是否關(guān)閉 WriteSet1302(0x8E,0x00)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護指令 WriteSet1302(0x80,((55/10)4|(55%10)))。 //根據(jù)寫秒寄存器命令字,寫入秒的初始值 WriteSet1302(0x82,((59/10)4|(59%10)))。 //根據(jù)寫分寄存器命令字,寫入分的初始值 WriteSet1302(0x84,((23/10)4|(23%10)))。 //根據(jù)寫小時寄存器命令字,寫入小時的初始值 WriteSet1302(0x86,((18/10)4|(18%10)))。 //根據(jù)寫日寄存器命令字,寫入日的初始值 WriteSet1302(0x88,((6/10)4|(6%10)))。 //根據(jù)寫月寄存器命令字,寫入月的初始值 WriteSet1302(0x8c,((14/10)4|(9%10)))。 //根據(jù)寫年寄存器命令字,寫入年的初始值 WriteSet1302(0x90,0xa5)。 //打開充電功能 選擇 2K 電阻充電方式 WriteSet1302(0x8E,0x80)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入保護指令 } }*/ //如果不想每次都初始化時間,也就是掉電后還想讓時鐘繼續(xù)走時的話 就用上面的語句 /*這是每次都初始化的語句 */ //2021017 Tue 22:36:55 WriteSet1302(0x8E,0x00)。 //根據(jù)寫狀態(tài)寄存器命令字,寫入不保護指令 WriteSet1302(0x80,((sec/10)4|(sec%10)))。 //根據(jù)寫秒寄存器命令字,寫入秒的初始值 WriteSet1302(0x82,((min/10)4|(min%10)))。 //根據(jù)寫分寄存器命令字,寫入分的初始值 Wr
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1