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

正文內(nèi)容

基于at89s51單片機(jī)的多功能電子萬年歷的設(shè)計(已修改)

2025-07-09 17:05 本頁面
 

【正文】 單片機(jī)應(yīng)用系統(tǒng)設(shè)計課 題:基于AT89S51單片機(jī)的多功能 電子萬年歷的設(shè)計 姓 名: 班 級: 學(xué) 號: 指導(dǎo)老師: 日 期: 一、緒論:現(xiàn)在是一個知識爆炸的新時代,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢院敛豢鋸埖恼f,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。近些年,隨著科技的發(fā)展和社會的進(jìn)步,人們對電子萬年歷的要求也越來越高,傳統(tǒng)的電子萬年歷已不能滿足人們的需求。人們對多功能電子萬年歷的功能及工作順序都非常熟悉,但是卻很少知道它的內(nèi)部結(jié)構(gòu)以及工作原理。由于單片機(jī)具有靈活性強(qiáng)、成本低、功耗低、保密性好等特點(diǎn),還有,單片機(jī)是微型計算機(jī)的一個重要分枝,單片機(jī)是把中央處理器、隨機(jī)存儲器、只讀存儲器、定時器/計數(shù)器、并行接口接口、串行接口、A/D轉(zhuǎn)換器等主要計算機(jī)部件,集中在一塊集成電路芯片上。雖然只是一個芯片,但從功能上它就相當(dāng)于一臺完整的微機(jī)。隨著科學(xué)技術(shù)的迅猛發(fā)展,單片計集成度高、體積小、運(yùn)算速度快、功耗低、運(yùn)行可靠、價格低廉等諸多優(yōu)點(diǎn),越來越顯現(xiàn)出來。在日常生活方面,我們使用彩電、錄放機(jī)、VCD、照相機(jī)、手機(jī)等等可以說舉不勝舉。所以多功能電子萬年歷一般都以單片機(jī)為核心,外加一些外圍設(shè)備來實現(xiàn)。由單片機(jī)作為多功能電子萬年歷的核心控制器,通過按鍵可以進(jìn)行定時、校時功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管顯示技術(shù)。意義:電子萬年歷作為電子類小設(shè)計不僅是市場上的寵兒,也是是單片機(jī)實驗中一個很常用的題目。因為它的有很好的開放性和可發(fā)揮性,因此對作者的要求比較高,不僅考察了對單片機(jī)的掌握能力更加強(qiáng)調(diào)了對單片機(jī)擴(kuò)展的應(yīng)用。而且在操作的設(shè)計上要力求簡潔,功能上盡量齊全,顯示界面也要出色。所以,電子萬年歷無論作為比賽題目還是練習(xí)題目都是很有價值。二、系統(tǒng)總體方案設(shè)計:共具備兩個功能:(1)顯示年月日及分秒信息(2)具有可調(diào)整日期和時間功能。硬件電路的總體框圖: 輔助電路power開關(guān)電路顯示CPU按鍵及按鈕電路圖1總體硬件框圖所用芯片圖2 三、硬件系統(tǒng)設(shè)計:硬件原理圖:圖3 硬件原理硬件原理:在硬件電路中采用P0口作為6位液晶顯示電路的驅(qū)動接口,這是由于P0口輸出驅(qū)動電路工作處于開漏狀態(tài),它的驅(qū)動能力強(qiáng),故只需外接上拉電阻便可以把LED數(shù)碼管點(diǎn)亮。因為共陰的LED數(shù)碼管它的驅(qū)動電流是分開的,在單片機(jī)進(jìn)行動態(tài)掃描的時候不會影響彼此的電流,故該電路中的8位LED數(shù)碼管均用共陽陰極的數(shù)碼管。8位LED數(shù)碼管的位選線分別由相應(yīng)的P2. 0~P2. 5控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個8位的I/O口控制,即P0口。P3口與八個校時按鍵相連,以成功實現(xiàn)萬年歷校時的功能。四、系統(tǒng)軟件設(shè)計: 程序流程框圖: BEGIN初始化設(shè)置數(shù)字刷新取數(shù)據(jù)轉(zhuǎn)換為字符顯示RETURN圖4 程序流程框圖年調(diào)整程序流程圖,月、日調(diào)整程序流程圖類似。開始控制鍵有效,進(jìn)入年調(diào)整程序等待按鍵程序加鍵有效減鍵有效年加1年減1圖5 年調(diào)整程序流程圖源程序代碼:include include //include //include define uint unsigned intdefine uchar unsigned charchar hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year。 //秒,分,時到日,月,年位閃的計數(shù)char done,count,temp,flag,Up_Key_flag,down_flag。uchar temp_value。 //溫度值uchar TempBuffer[5],week_value[2]。sbit DS1302_CLK = P1^7。 //實時時鐘時鐘線引腳 sbit DS1302_IO = P1^6。 //實時時鐘數(shù)據(jù)線引腳 sbit DS1302_RST = P1^5。 //實時時鐘復(fù)位線引腳sbit port01 = P3^0。sbit port02 = P3^1。sbit port03 = P3^2。sbit port04 = P3^3。sbit ACC0 = ACC^0。sbit ACC7 = ACC^7。sbit Set_Key = P2^0。 //模式切換鍵sbit Up_Key = P2^1。 //加法按鈕sbit Down_Key = P2^2。 //減法按鈕sbit out_Key_Key= P2^3。 //立刻跳出調(diào)整模式按鈕sbit DQ = P1^0。 //溫度傳送數(shù)據(jù)IO口void show_time()。 //液晶顯示程序/***********1602液晶顯示部分子程序****************///Port Definitions**********************************************************sbit LcdRs = P2^5。sbit LcdRw = P2^6。sbit LcdEn = P2^7。sfr DBPort = 0x80。 //P0=0x80,P1=0x90,P2=0xA0,P3=內(nèi)部等待函數(shù)**************************************************************************unsigned char LCD_Wait(void){ LcdRs=0。 LcdRw=1。 _nop_()。//延時一個時鐘周期 LcdEn=1。 _nop_()。 LcdEn=0。 return DBPort。 }//向LCD寫入命令或數(shù)據(jù)************************************************************define LCD_COMMAND 0 // Commanddefine LCD_DATA 1 // Datadefine LCD_CLEAR_SCREEN 0x01 // 清屏define LCD_HOMING 0x02 // 光標(biāo)返回原點(diǎn)void LCD_Write(bit style, unsigned char input){ LcdEn=0。 LcdRs=style。 LcdRw=0。 _nop_()。 DBPort=input。 _nop_()。//注意順序 LcdEn=1。 _nop_()。//注意順序 LcdEn=0。 _nop_()。 LCD_Wait()。 }//設(shè)置顯示模式************************************************************define LCD_SHOW 0x04 //顯示開define LCD_HIDE 0x00 //顯示關(guān) define LCD_CURSOR 0x02 //顯示光標(biāo)define LCD_NO_CURSOR 0x00 //無光標(biāo) define LCD_FLASH 0x01 //光標(biāo)閃動define LCD_NO_FLASH 0x00 //光標(biāo)不閃動void LCD_Set_KeyDisplay(unsigned char DisplayMode){ LCD_Write(LCD_COMMAND, 0x08|DisplayMode)。 }//設(shè)置輸入模式************************************************************define LCD_AC_UP_KEY 0x02define LCD_AC_DOWN 0x00 // defaultdefine LCD_MOVE 0x01 // 畫面可平移define LCD_NO_MOVE 0x00 //defaultvoid LCD_Set_KeyInput(unsigned char InputMode){ LCD_Write(LCD_COMMAND, 0x04|InputMode)。}//初始化LCD************************************************************void LCD_Initial(){ LcdEn=0。 LCD_Write(LCD_COMMAND,0x38)。 //8位數(shù)據(jù)端口,2行顯示,5*7點(diǎn)陣 LCD_Write(LCD_COMMAND,0x38)。 LCD_Set_KeyDisplay(LCD_SHOW|LCD_NO_CURSOR)。 //開啟顯示, 無光標(biāo) LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN)。 //清屏 LCD_Set_KeyInput(LCD_AC_UP_KEY|LCD_NO_MOVE)。 //AC遞增, 畫面不動}//液晶字符輸入的位置************************void GotoXY(unsigned char x, unsigned char y){ if(y==0) LCD_Write(LCD_COMMAND,0x80|x)。 if(y==1) LCD_Write(LCD_COMMAND,0x
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1