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

正文內(nèi)容

定時(shí)打鈴器的設(shè)計(jì) 課程設(shè)計(jì)(文件)

 

【正文】 { start()。 respond()。 } uchar read_add(uchar address) //讀地址 { uchar date。 write_byte(address)。 respond()。 } 32 void delay1(uchar x) { uchar a,b。 for(b=100。 //讀時(shí) hour1=read_add(0)。 delay1(50)。 init()。 //讀分 minute1=read_add(1)。 delay1(50)。 init()。 //讀秒 second1=read_add(2)。 delay1(50)。 33 init()。 F=0。 //存時(shí) delay1(100)。 init()。 write_add(9,hour4)。 delay1(100)。 init()。 write_add(10,minute4)。 //存秒 delay1(100)。 34 init()。 write_add(11,second4)。} //一秒計(jì)時(shí) if(second59) {second=0。} //時(shí)進(jìn)位 if(hour23) {hour=0。 if(a==3) discalendar3()。hour==hour1)||(second==second2amp。hour==hour3)||(second==second4amp。l0。 minute++。 //日進(jìn)位 } delay(1000)。 write7279(DECODE0,second%10)。 } /*MCU 初始化函數(shù) */ void Mcu_Init(void) { 36 Set_Bit(ET0)。 //工作在方式一 TH0=0x3C。 //HD7279 復(fù)位指令 } /*按鍵操作 */ void HD7279key(void) {Key_number=read7279(CMD_READ)。} if(Key_number==0x1d) {a=3。write7279(DECODE0+1,second/10)。write7279(DECODE0+4,minute/10)。write7279(DECODE0+7,hour/10)。write7279(DECODE0+1,second/10)。write7279(DECODE0+4,minute/10)。write7279(DECODE0+7,hour/10)。 case 0x1c: F=1。 case 0x1e: F=1。 case 0x0f: write7279(HD7279_FLASH,0xff)。write7279(DECODE0,(second1+=1)%10)。write7279(DECODE0+3,(minute1+=1)%10)。write7279(DECODE0+6,(hour1+=1)%10)。write7279(DECODE0,(second1=1)%10)。write7279(DECODE0+3,(minute1=1)%10)。write7279(DECODE0+6,(hour1=1)%10)。break。break。break。break。break。 default : break。 case 0x1f: F=1。 case 0x1d: F=1。 //調(diào)節(jié)時(shí) case 0x07: F=1。 //調(diào)節(jié)分 case 0x0E: write7279(HD7279_FLASH,0x3f)。 //調(diào)節(jié)秒 case 0x0D: 37 write7279(HD7279_FLASH,0xe7)。 //調(diào)節(jié)時(shí) case 0x0C: write7279(HD7279_FLASH,0xfc)。 //調(diào)節(jié)分 case 0x06: write7279(HD7279_FLASH,0x3f)。 //調(diào)節(jié)秒 case 0x05: write7279(HD7279_FLASH,0xe7)。} if(F==0) { switch(Key_number) { case 0x04: write7279(HD7279_FLASH,0xfc)。 { if(Key_number==0x1f) {a=1。 HD7279_CS=0。 Set_Bit(EA)。 } else { gate=ledon。 } gate=ledon。 hour++。 second++。hour==hour4)) { gate= ledoff。hour==hour2)||(second==second3amp。 } if((second==second1amp。} if(F==1) //顯示定時(shí) { if(a==1) discalendar1()。} //分進(jìn)位 if(minute59) {minute=0。 } if(clock19) { clock=0。 delay1(100)。 write_add(5,second2)。 init()。 delay1(100)。 write_add(4,minute2)。 init()。 delay1(100)。 write_add(3,hour2)。 init()。 delay1(50)。 second3=read_add(8)。 init()。 delay1(50)。 minute3=read_add(7)。 init()。 delay1(50)。 hour3=read_add(6)。 init()。b)。a0。 stop()。 start()。 write_byte(0xa0)。 respond()。 respond()。 delay24c02()。i++) { scl=1。 sda=1。 delay24c02()。 delay24c02()。 delay24c02()。 for(i=0。 scl=1。 scl=0。 delay24c02()。 sda=1。 } void stop() //停止信號(hào) { sda=0。 scl=1。j110。} void delayms(uint z) //延時(shí)程序 { uint i,j。 //片選 sbit gate=P1^3。//年月日等變量 sbit key=P1^7。 //按鍵控制 BYTE Key_number。 //顯示日歷 void discalendar2(void)。 //定義短延時(shí)函數(shù) void Long_Delay(void)。 //定義 HD7279 寫(xiě)函數(shù) BYTE read7279(BYTE)。 2021 北京 雖然本系統(tǒng)有諸如此類不足之處需要改進(jìn) ,但該系統(tǒng)在未來(lái)仍然具有很大的參考價(jià)值,作為實(shí)踐應(yīng)用的雛形,在各種形式的定時(shí)打鈴系統(tǒng)或者更高級(jí)龐大的儀器中可充當(dāng)不可或缺的模塊,為實(shí)現(xiàn)重要功能做貢獻(xiàn)??梢哉f(shuō),本次設(shè)計(jì)讓自我心靈帶有了一次質(zhì)的提升的過(guò)程。 ( 3)定時(shí)時(shí)間到,打鈴一分鐘,打鈴結(jié)束后自動(dòng)關(guān)閉打。最終調(diào)試結(jié)果如下圖: (到達(dá)定時(shí)點(diǎn) 打鈴圖) (斷電保存數(shù)據(jù)圖) 25 (上電恢復(fù)定時(shí)點(diǎn)數(shù)據(jù)圖) 軟件調(diào)試過(guò)程難度遠(yuǎn)大于硬件的調(diào)試,期間遇到很多復(fù)雜的問(wèn)題,比如響鈴一分鐘未能精確實(shí)現(xiàn),經(jīng)排查,由于程序過(guò)長(zhǎng),響鈴過(guò)程執(zhí)行其他子程序或者循環(huán)程序帶來(lái)很大的時(shí)間上的誤差,需通過(guò)對(duì)變量值的修改來(lái)進(jìn)行調(diào)整;程序必須嚴(yán)格根據(jù)硬件的特點(diǎn)(時(shí)序圖、與單片機(jī)的連接等)來(lái)編寫(xiě),否則數(shù)據(jù)不能正確的傳輸,比如掉電保護(hù)功能對(duì)應(yīng)的子程序,由于保存數(shù)據(jù)地址的設(shè)置不合 理,上電時(shí)不能正確的恢復(fù)個(gè)定時(shí)點(diǎn)保存的數(shù)據(jù)。 24 軟件調(diào)試 由 C語(yǔ)言編寫(xiě)的程序具有可讀性強(qiáng)、可移植性好的特點(diǎn)。正確連接電路各模塊觀擦進(jìn)行整體調(diào)試,排除整個(gè)硬件系統(tǒng)的問(wèn)題,如下圖: 經(jīng)過(guò)根據(jù)部分到整體的調(diào)試原則進(jìn)行硬件調(diào)試過(guò)程,排除了很多問(wèn)題。 AT89C51 構(gòu)成的單片機(jī)最小系統(tǒng)和 HD72279 為核心的鍵盤(pán)顯示電路集成在開(kāi)發(fā)板中,如下圖所示: 因此在調(diào)試的過(guò)程中元件之間的連接未出現(xiàn)連接不通等問(wèn)題,但是需注意的是,由于種種操作不當(dāng)或者程序的錯(cuò)誤,很容易造成短路芯片發(fā)熱燒壞等現(xiàn)象,應(yīng)先檢查芯片的供電電源是否是 +5V,在未寫(xiě)入程序的時(shí)候檢查 I/O口的電壓是否正常,檢查復(fù)位鍵的按下前后復(fù)位引腳的電壓是否正常,檢查晶振電 路在復(fù)位狀態(tài)下晶振引腳是否是高電平判斷晶振是否完好無(wú)缺,進(jìn)而繼續(xù)進(jìn)行其他調(diào)試實(shí)驗(yàn)。程序流程圖如下圖所示: (存數(shù)據(jù)流程圖 ) (讀數(shù)據(jù)流程圖) 開(kāi) 始 AT24C02初始化 達(dá) 8 次? N Y 結(jié) 束 結(jié) 束 開(kāi) 始 啟動(dòng) 寫(xiě)入控制命令字 做出應(yīng)答 寫(xiě)入存數(shù)據(jù)地址 做出應(yīng)答 存數(shù)據(jù)的 1 位 停止 AT24C02初始化 啟 動(dòng) 寫(xiě)讀控制命令字 作出應(yīng)答 寫(xiě)入讀數(shù)據(jù)地址 做出應(yīng)答 從地址中讀 1 位 達(dá) 8 次? 停 止 N Y 21 第五章 系統(tǒng)的安裝及調(diào)試 定時(shí)打鈴器是硬件電路與軟件高度結(jié)合的小型系統(tǒng),是通過(guò) C 語(yǔ)言編寫(xiě)的程序控制單片機(jī)、 HD7279 鍵盤(pán)顯示模塊、掉電保護(hù)電路、打鈴電路幾大硬件部分而實(shí)功能的。程序流程圖如下圖所示: 開(kāi) 始 讀取鍵值 定時(shí)點(diǎn) 1 a = 1 定時(shí)點(diǎn) 2 a = 2 定時(shí)點(diǎn) 3 定時(shí)點(diǎn) 4 F=0? a = 3 a = 4 時(shí)鐘信息設(shè)置 結(jié) 束 定時(shí)點(diǎn)信息設(shè)置 N N N N N Y Y Y Y Y 18 定時(shí)中斷服務(wù)子程序 定時(shí)中服務(wù)子程序?qū)嵸|(zhì)是實(shí)現(xiàn)對(duì)時(shí)分秒的范圍的控制, AT89C51 采用定時(shí)器 1,工作方式為方式 1,晶振 12MHZ,定時(shí)時(shí)間 50ms,1s 需要進(jìn)入中斷 20次,程序中初值的設(shè)置是 ( 2 ^16- X) *1μ s=50ms, 得 X= 3CB0H. 即 TH0=3CH, TL0=B0H,每 20 次中斷后秒鐘自加一,秒鐘到 59 后,清零且分鐘自加一,分鐘到 59 后,分鐘清零時(shí)鐘加一,時(shí)鐘到 23 后,時(shí)鐘清零,如此實(shí)現(xiàn)時(shí)鐘的 功能。 Keil 4 的開(kāi)發(fā)環(huán)境如下圖所示: 15 主程序設(shè)計(jì) 本次軟件設(shè)計(jì)中主程序部分先進(jìn)入對(duì)相關(guān)芯片的初始化過(guò)程,為實(shí)現(xiàn)掉電保護(hù)功能,先對(duì) AT24C02
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1