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

正文內(nèi)容

基于51單片機lcd1602數(shù)字鐘(編輯修改稿)

2025-07-25 00:46 本頁面
 

【文章內(nèi)容簡介】 成和特點、單片機時鐘、顯示模塊的構(gòu)建與運用、電源電路的設(shè)計制作。基本上是完成了作為單片機所需的硬件結(jié)構(gòu)。同時也顯示了對軟件支持的強烈要求。4 數(shù)字式時鐘的軟件設(shè)計 系統(tǒng)軟件設(shè)計內(nèi)容本設(shè)計的軟件程序包括主程序、中斷子程序、時鐘顯示程序以及延時子程序等。該設(shè)計有三個彈性小按鍵組成的小鍵盤,這些鍵盤可以修改時鐘的顯示狀態(tài)。按功能移位鍵一次,表示當(dāng)前要校對的是 “秒”位;按兩次,表示當(dāng)前校對的是“分”位;按三下,表示當(dāng)前要校對的是“時”位;而當(dāng)移位功能正在調(diào)整時,可以使用“+”鍵、“”鍵對當(dāng)前校對位的數(shù)字進行增加1或者減去1運算。系統(tǒng)軟件采用C語言編寫。時鐘的最小計時單位是秒,但是使用定時器的方式1,最大的定時時間也只能達到131ms。我們可以把定時器的設(shè)定時間定為50ms。這樣,計數(shù)溢出20次即可得到時鐘的最小計時單位:秒。而計時20次可以用軟件實現(xiàn)。秒計時是采用中斷方式進行溢出次數(shù)的累積,記滿20次,即可得到秒計時。從秒到分,分到時都是通過軟件累加并進行比較的方法來實現(xiàn)的。要求每滿1秒,則“秒”單元中的內(nèi)容加1;“秒”單元滿60,則“分”單元中的內(nèi)容加1;“分”單元滿60,則“時”單元中的內(nèi)容加1;“時”單元滿24,同時將時、分、秒的內(nèi)容全部清零;依此類推,實時時鐘程序設(shè)計步驟:(1)選擇工作方式,計算初值;(2)采用中斷方式進行溢出次數(shù)累計;(3)從秒—分—時是通過累加和數(shù)值比較實現(xiàn)的;(4)時鐘顯示緩沖區(qū):時鐘時間在LCD液晶顯示器上進行顯示,為此在內(nèi)部RAM中要設(shè)置顯示緩沖區(qū),共6個地址單元。顯示緩沖區(qū)從左到右依次存放時、分、秒數(shù)值;(5)主程序:主要進行定時器/計數(shù)器的初始化編程,然后反復(fù)調(diào)用顯示子程序的方法等待中斷的到來;(6)中斷服務(wù)程序:進行計時操作;(7)加1子程序:用于完成對時、分、秒等的加操作,中斷服務(wù)程序在秒、分、時等加1時調(diào)用加1子程序。(8)減1子程序:用于完成對時、分、秒等的減操作,中斷服務(wù)程序在秒、分、時等減1時調(diào)用減1子程序主程序主要有main()組成通過對相關(guān)子程序的調(diào)用,實現(xiàn)對時間的設(shè)置與修改、LCD顯示等主要功能。相關(guān)的調(diào)整是靠對功能鍵的判斷來實現(xiàn)的。我們用流程框圖來表示,如下圖41所示:圖41 主程序流程主程序段如下:includeincludedefine uchar unsigned chardefine uint unsigned intsbit lcdrs=P3^5。 //數(shù)據(jù)/命令選擇端sbit lcdrw=P3^6。 //讀/寫選擇端sbit lcded=P3^7。 //液晶使能端sbit s1=P2^5。 //功能鍵sbit s2=P2^6。 //數(shù)字加1鍵sbit s3=P2^7。 //數(shù)字減1鍵uchar num,tt,i,j。uchar keycount。char shi,fen,miao。 uint nian,yue,ri。 main() //主函數(shù){ init()。//初始化 while(1) { keysanf()。 //讀鍵 }}void init()//初始化函數(shù){ shi=12。 fen=0。 miao=0。//起始時間為12:00:00 nian=2012。 yue=5。 ri=28。 keycount=0。//按鍵標(biāo)志清零 P1=0x0f。//按鍵接口高電平 TMOD=0x01。//計時器初始化 tt=0。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 TR0=1。//開定時器 EA=1。//開中斷 ET0=1。 //開定時器中斷 lcdrw=0。 lcded=0。 write_(0x38)。//顯示器初始化 write_(0x0c)。//開顯示,關(guān)光標(biāo),關(guān)光標(biāo)閃爍 write_(0x06)。//讀寫字符后地址加一 write_(0x01)。//清屏 write_nyr(nian,yue,ri)。 write_sfm(shi,fen,miao)。}時鐘的修改首先要按功能鍵并停止時間的輸出顯示,否則系統(tǒng)繼續(xù)刷新時間則無法修改,所以時間是不輸出到LCD的。修改的部分以修改的為準(zhǔn),沒有修改的通過中斷保護起來,等修改成功后繼續(xù)顯示。主要流程圖如圖42所示。時鐘修改程序中,首先將時鐘年份單元設(shè)為顯示首地址,然后,以年份,月份,日期,時,分,秒為順序進行相對應(yīng)的修改。而年份,月份,日期,時,分,秒的功能子程序都相同,所以我們就以秒位功能修改子程序為例,如下:if(s1==0) //功能鍵被按下{ delay(5)。 if(s1==0) { while(!s1)。 keycount++ 。 } } if(keycount==1) //秒位調(diào)整 { TR0=0。//計時器關(guān) 時間停止走動 write_(0x80+0x40+10)。//光標(biāo)移到秒位上 write_(0x0d)。//光標(biāo)閃爍 }而在時間修改功能中,我們要用到1個數(shù)字加減的問題,加1和減1的程序大體相同,故我們以加1程序為例,把它作為一個子程序,流程方框圖如43所示。通過判斷功能鍵的狀態(tài),也就是紀(jì)錄值來確定,然后在相應(yīng)位上進行數(shù)字的增減,由于年份,月份,日期,時,分,秒的加1,減1程序類似,我們就以秒位修改程序為例。if(s2==0) //加1鍵 { delay(5)。 if(s2==0) { while(!s2)。 miao++。 if(miao==60) { miao=0。 } } write_(0x0c)。//光標(biāo)停止閃爍 write_sfm(shi,fen,miao)。//將調(diào)解后是時間顯示 write_(0x80+0x40+12)。//光標(biāo)再次移到秒位 write_(0x0d)。//光標(biāo)繼續(xù)閃爍 } if(s3==0) //減1鍵 { delay(5)。 if(s3==0) { while(!s3)。 miao。 if(miao==1) { miao=59。 } } write_(0x0c)。 write_sfm(shi,fen,miao)。 write_(0x80+0x40+12)。 write_(0x0d)。 }MCS51系列單片機有5個中斷源,中斷分為2個中斷優(yōu)先級,即高優(yōu)先級和低優(yōu)先級,每個中斷源的優(yōu)先級都可以有軟件來設(shè)定。 中斷地址表5個中斷源入口地址外部中斷0(/INT0)0003HT0溢出中斷000BH外部中斷1(/INT1)0013HT1溢出中斷001BH串口中斷0023Hvoid time0()interrupt 1 //中斷程序{ TH0=(6553645872)/256。 TL0=(6553645872)%256。 tt++。 if(tt==20) { tt=0。}}圖42 功能鍵子程序流程框 LCD顯示子程序LCD顯示子程序可對1602液晶上面的字符進行設(shè)置和時間的修改,程序如下:uchar code table2[]= 。 //顯示空格void delay(uint s) //延時函數(shù){ uchar a, b。 for(a=0。as。a++) for(b=0。b110。b++)。}void write_(uchar ) //寫命令函數(shù){ lcdrs=0。 //選擇寫命令方式 lcdrw=0。 P1=。 delay(6)。 lcded=1。 //開啟使能端 delay(6)。 lcded=0。}void write_date(uchar date) //寫數(shù)據(jù)函數(shù){ lcdrs=1。 //選擇寫數(shù)據(jù)方式 lcdrw=0。 P1=date。 delay(6)。 lcded=1。 //開啟使能端 delay(6)。 lcded=0。}void write_nyr(uint nian,uint yue,uint ri){void write_sfm(uchar shi,uchar fen,uchar miao){ uchar shi,ge。 shi=date/10。//分解一個2位數(shù)的十位和個位 ge=date%10。 LCD_Write_Cmd(one+add)。//設(shè)置顯示位置 LCD_Write_Data(0x30+shi)。//送去液晶顯示十位 LCD_Write_Data(0x30+ge)。 //送去液晶顯示個位write_(0x80+0x40)。 //第二行輸入TIME字符 write_(0x80+0x40+4)。//從第二行第四位開始寫時冒號分冒號秒 write_date(shi/10+0x30)。//時 的十位 數(shù)字的代碼為代碼加0X30 write_date(shi%10+0x30)。//時個位 write_date(0x3a)。//冒號的字符代碼為3a write_date(fen/10+0x30)。 //分 write_date(fen%10+0x30)。 write_date(0x3a)。 write_date(miao/10+0x30)。 //秒 write_date(miao%10+0x30)。 write_(0x80+0x40+13)。 for(i=0。i2。i++) { write_date(table2[i])。 //輸入空格 } } 本章小結(jié)本章介紹了本設(shè)計的軟件設(shè)計,所有的功能在流程圖里清晰的表現(xiàn)力出來,包括主程序流程圖、時鐘及鬧鐘修改流程圖等,并附有相關(guān)程序的主要部分。在軟件的設(shè)計中模塊化設(shè)計很重要,顯示很直觀不會發(fā)生混亂現(xiàn)象,容易上手。5 數(shù)字式時鐘的Protues軟件仿真 Protues軟件的概述Protues軟件是英國Labcenter electronics公司出版EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持805HC1PIC10/12/16/18/24/30/DsPIC3AVR、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR和MPLAB等多種編譯。 Protues軟件的功能特點Protues軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是: (1)原理布圖 (2)PCB自動或人工布線 (3)SPICE電路仿真  革命性的特點: (1)互動的電路仿真。用戶甚至可以實時采用諸如RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真處理器及其外圍電路??梢苑抡?1系列、AVR、PIC、ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Protues建立了完備的電子設(shè)計開發(fā)環(huán)境。 Protues軟件具有4大功能模塊(1)智能原理圖設(shè)計(ISIS)豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件。智能的器件搜索:通過模糊搜索可以快速定位所需要的器件。智能化的連線功能:自動連線功能使連接導(dǎo)線簡單快捷,大大縮短繪圖時間。支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計簡明清晰??奢敵龈哔|(zhì)量圖紙:通過個性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。(2)完善的電路仿真功能(Prospice)ProSPICE混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實現(xiàn)數(shù)字/模擬電路的混合仿真;超過27000個仿真器件:可以通過內(nèi)部原型或使用廠家的SPICE文件自行設(shè)計仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件。多樣的激勵源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號、單頻FM、數(shù)字時鐘和碼流,還支持文件形式的信號輸入。豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計/計數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、I2C調(diào)試器等。生動的仿真顯示:用色點顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對地電壓大小,結(jié)合動態(tài)器件(如電機、顯示器件、按鈕)的使用可以使仿真更加直觀、生動。 高級圖形仿真功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1