




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、河南理工大學(xué)單片機應(yīng)用與仿真訓(xùn)練設(shè)計報告四路定時控制器姓 名: 范鵬超 學(xué) 號: 311108001309 專業(yè)班級: 電儀12- 2班 指導(dǎo)老師: 荊鵬輝 所在學(xué)院:電氣工程與自動化學(xué)院 2015年1月13日 目錄目錄1摘要21 概述31.1 單片機的電子技術(shù)特征31.2 四路定時控制器基本功能31.3 系統(tǒng)原理31.4 實際應(yīng)用32 系統(tǒng)總體方案及硬件設(shè)計32.1 系統(tǒng)總體設(shè)計框架結(jié)構(gòu)32.2系統(tǒng)硬件電路42.3 系統(tǒng)硬件總電路63軟件設(shè)計64 proteus軟件仿真75課程設(shè)計體會7參考文獻:8附1:源程序代碼9摘要 近年來,科學(xué)技術(shù)發(fā)展很快,單片機的使用也越來越多。我們在大學(xué)也學(xué)到了很
2、多關(guān)于單片機的知識,也做了很多單片機實驗。單片計算機即單片微型計算機。(single-chip microcomputer),是集cpu,ram,rom,定時,計數(shù)和多種接接口于一體的微控制器。它體積小,成本低,功能強,廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動化上。而c語言已成為當前舉世公認的高效簡潔又貼近硬件的編程語言之一。c語言現(xiàn)已成為專業(yè)化的單片機上的實用高級語言。而且由于開發(fā)速度、軟件質(zhì)量結(jié)構(gòu)化、可維護性方面的原因,使c語言漸漸有取代匯編的趨勢。這次我們做四路定時控制器作為微機原理與單片機的課程設(shè)計。 四路定時控制器主要應(yīng)用于定時控制四個回路的電源通斷。四路定時器的設(shè)計背景是單片機的電子技術(shù)特征以
3、及應(yīng)用。本系統(tǒng)采用的是stc10f08xe為中心器件來設(shè)計四路定時器的。系統(tǒng)使用性強,操作簡單,擴展性強。設(shè)計主要包括硬件的設(shè)計和軟件的設(shè)計。一個完整的四路定時器相當于一個簡單的單片機系統(tǒng),該系統(tǒng)由四路定時器設(shè)置電路,單片機,顯示電路等構(gòu)成。單片機是集成ic芯片,只需要根據(jù)實際設(shè)計要求選型。其他部分都需要根據(jù)應(yīng)用要求和性能指標自行設(shè)計。設(shè)計時,首先設(shè)置時間和線路,然后開始計時,在達到設(shè)定時間的時候指示燈閃爍。 該四路定時控制器實現(xiàn)的功能是以當前時間為基準,以24小時為周期,可以任意設(shè)定哪個回路于某時刻開,到某時刻關(guān)。如可以設(shè)置第一個回路在8:30-11:30開,14:30-18:00開,其他時
4、間段為關(guān)。能夠通過按鍵任意設(shè)置某回路某時間段的開關(guān)狀態(tài),可以利用數(shù)碼管直接顯示。整個系統(tǒng)通過軟硬件的協(xié)調(diào)工作,具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉、操作安全等諸多優(yōu)點,具有廣闊的市場前景,尤其在智能化家用電器和辦公自動化設(shè)備等領(lǐng)域。1 概述1.1 單片機的電子技術(shù)特征單片機是將cpu、ramrom定時器/計數(shù)器以及輸入輸出(i/o)接口等計算機的主要部件集成在一塊的集成電路芯片,作為微機系統(tǒng)它還可以實現(xiàn)模/數(shù)轉(zhuǎn)換、脈寬調(diào)制、計數(shù)器捕獲/比較邏輯、高速i/o口和wdt各種控制功能。1.2 四路定時控制器基本功能 四路定時控制器是指應(yīng)用定時器的功能控制四個回路的通斷狀況,同時可以用
5、按鍵來設(shè)置每個通路的通斷以及通斷的時間和周期,利用定時器來控制單片機io口的高低電平來間接控制繼電器的通斷。1.3 系統(tǒng)原理采用stc10f08xe單片機為控制核心,基于stc10f08xe單片機所具備的的計數(shù)功能,達到實時時鐘的制作,并通過四位共陰極數(shù)碼管將時間直觀的顯示出來。可以利用按鍵輸入功能對顯示時間進行調(diào)整。其共設(shè)置了四個定時通道,每個定時通道都是相互獨立的。四個定時通道可以分別設(shè)置多個時間段的開關(guān)狀態(tài),每個通道都可以通過i/o口輸出信號對電磁繼電器進行控制,通過控制電磁繼電器的通斷進一步控制繼電器所連接的其他電路的開關(guān)狀態(tài)。充分利用了弱電控制強電的效果。1.4 實際應(yīng)用被廣泛地應(yīng)用
6、在各種領(lǐng)域。例如,用來作家用電器的定時控制器;在辦公室中用作磁盤驅(qū)動、打印機、復(fù)印機、電話的控制;它還可以作為電子秤、收款機、倉儲安全檢測系統(tǒng)、空氣調(diào)節(jié)系統(tǒng)等冷凍保鮮系統(tǒng)等的專用系統(tǒng)的控制器;在工業(yè)中,像工業(yè)過程控制、過程監(jiān)制以及機電一體化等控制系統(tǒng);它還可以構(gòu)成一些智能儀表與集成智能傳感器傳統(tǒng)的控制器等。2 系統(tǒng)總體方案及硬件設(shè)計2.1 系統(tǒng)總體設(shè)計框架結(jié)構(gòu)數(shù)碼管電路按鍵電路繼電器電路圖1 系統(tǒng)總體設(shè)計框架四路定時控制系統(tǒng)總體設(shè)計框架結(jié)構(gòu)如圖1所示。2.2系統(tǒng)硬件電路1) 時鐘電路設(shè)計圖2 時鐘的電路時鐘電路由振蕩器及定時發(fā)生器和地址鎖存允許信號ale組成,如圖2所示。所用的時鐘電路用的是1
7、1.0592mhz的晶振,它的振蕩周期約為0.0833s,時鐘周期是1/6s,機器周期是1s2)按鍵電路設(shè)計圖3 按鍵電路原理圖采用2x3鍵盤掃描,如圖3所示,使用每一個按鍵。3)數(shù)碼管顯示電路 圖4 數(shù)碼管顯示電路 顯示塊是由若干發(fā)光二極管組合而成的,一般的“8”字型顯示塊由a、b、c、d、e、f、g、h8個發(fā)光二極管組成,gnd接1時均不亮,字位輸出口和字形輸出口采用高電壓驅(qū)動,如圖4所示。4)繼電器電路1. 繼電器的基本工作原理:繼電器(是一種電控制器件,是當輸入量(激勵量)的變化達到規(guī)定要求時,在電氣輸出電路中使被控量發(fā)生預(yù)定的階躍變化的一種電器。它具有控制系統(tǒng)(又稱輸入回路)和被控制
8、系統(tǒng)(又稱輸出回路)之間的互動關(guān)系。通常應(yīng)用于自動化的控制電路中,它實際上是用小電流去控制大電流運作的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護等作用。 圖5 繼電器工作原理圖本次試驗使用了電磁繼電器,原理圖如圖5所示,電磁繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而生生電磁效應(yīng),銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在
9、電路中的導(dǎo)通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區(qū)分:繼電器線圈未通電時處于斷開狀態(tài)的靜觸點,稱為“常開觸點”;處于接通狀態(tài)的靜觸點稱為“常閉觸點”。繼電器一般有兩股電路,為低壓控制電路和高壓工作電路。2.3 系統(tǒng)硬件總電路圖6 系統(tǒng)硬件仿真電路圖3軟件設(shè)計圖7 系統(tǒng)軟件設(shè)計的步驟4 proteus軟件仿真圖8 proteus軟件仿真5課程設(shè)計體會 本次課程設(shè)計基本結(jié)束,回想這一過程,真是困難重重,但是也學(xué)到很多。首先是實驗程序,剛開始一片茫然,不知道該如何開始。在網(wǎng)上搜到部分資料后,經(jīng)過和宿舍同學(xué)探討學(xué)習(xí)后開始有點眉目,最后參考部分材料后得出了最終程序。其次,在焊接電路板
10、時,出現(xiàn)了元器件焊反的情況,但在同學(xué)的幫助下成功了。最后,在protues仿真實驗中有出現(xiàn)數(shù)碼管顯示數(shù)字成零不斷跳動,而且led燈自動跳變,相當于是中斷不停執(zhí)行、判斷鍵值,特別不穩(wěn)定的情況。但經(jīng)過大量的修正最終正常。 雖然這次實驗沒有創(chuàng)新,但是也是自己動手查資料,修改程序,達到了實驗要求。通過本次課程設(shè)計,學(xué)到了很多關(guān)于單片機的知識,我也懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。有時,只有經(jīng)過自己親手試驗,才能更深層次的懂得實驗原理和每部分電路的功能。我也很
11、感謝教育過我的老師和周圍同學(xué),在遇到困難的時熱情的幫助我度過難關(guān),并讓我學(xué)到了很多。 此次課程設(shè)計,我學(xué)到了很多,對以后的學(xué)習(xí)生活都有很大幫助。今后我也會更加注重理論與實際相結(jié)合,多動手,多思考,全面提高自己的能力。參考文獻:1余發(fā)山,王福忠,楊凌霄,王莉。微機原理與單片機接口技術(shù).北京:煤炭工業(yè)出版社。2013.8.2 左金生.電子與模擬電子技術(shù)m.北京:電子工業(yè)出版社.2004:105-131.3 尹勇.單片機開發(fā)環(huán)境vision2的開發(fā)指南m. 北京:北京航空航天大學(xué)出版社,2004:173-199.4 張俊謨.單片機中級教程-原理與應(yīng)用. 北京:北京航空航天大學(xué),2006.5 霍孟友.
12、單片機原理與應(yīng)用.北京:機械工業(yè)出版社,2003.附1:源程序代碼#include#include#define uint unsigned int/*0216-1*/#define uchar unsigned char /*028-1*/#define n 46080/*n=50000*f0/12,定時50ms*/#define m 20/* 定時m*0.05s */uint shi,fen;#define num3(x2) (x2)/10)#define num2(x2) (x2)%10)#define num1(x1) (x1)/10)#define num0(x1) (x1)%10)
13、sbit w1=p03;sbit w2=p02;sbit w3=p01;sbit w4=p00;sbit led=p35;sbit h1=p36;sbit h2=p37;sbit huilua=p20;sbit huilub=p21;sbit huiluc=p22;sbit huilud=p23;sfr p1m1=0x91;/和后面的main函數(shù)中的 sfr p1m0=0x92;/p1m1 p1m0合在一起增加亮度sfr p2m1=0x95;sfr p2m0=0x96;uint num/*t0_timer*/,num0/*t0_timer*/,num1,key/*matrixkeyscan*/
14、; /定義全局變量uchar k2=0,k3=0,k5=1,k6=0;/按鍵計數(shù)uchar a0_shi=12,a0_fen=30,a1_shi=13,a1_fen=30,b0_shi=12,b0_fen=30,b1_shi=13,b1_fen=30,c0_shi=12,c0_fen=30,c1_shi=13,c1_fen=30,d0_shi=12,d0_fen=30,d1_shi=13,d1_fen=30;/繼電器定時起點、終點uchar code duanxuan=0x3f,/*顯示0*/0x06,/*顯示1*/0x5b,/*顯示2*/0x4f,/*顯示3*/0x66,/*顯示4*/0x6
15、d,/*顯示5*/0x7d,/*顯示6*/0x07,/*顯示7*/0x7f,/*顯示8*/0x6f,/*顯示9*/0x77,/*顯示a*/0x7c,/*顯示b*/0x39,/*顯示c*/0x5e,/*顯示d*/0x79,/*顯示e*/0x71/*顯示f*/;void delay_ms(uint xms) /*延時子函數(shù)程序*/ uint i,j;for(i=xms;i0;i-) for(j=250;j0;j-);/*該層循環(huán)延時約1ms*/*/typedef unsigned char byte;typedef unsigned int word;/*declare sfr associate
16、d with the iap*/sfr iap_data= 0xc2;/flash data registersfr iap_addrh= 0xc3;/flash address highsfr iap_addrl= 0xc4;/flash address lowsfr iap_cmd= 0xc5;/flash command registersfr iap_trig= 0xc6;/flash commandtriggersfr iap_contr= 0xc7;/flash control register/*define isp/iap/eeprom command*/#define cmd
17、_idle0/stand-by#define cmd_read1/byte-read#define cmd_program2/byte-program#define cmd_erase3/sector-erase/*define isp/iap/eeprom operation const for iap_contr*/#define enable_iap0x80/sysclk30mhz/#define enable_iap0x81/sysclk24mhz/#define enable_iap0x82/sysclk20mhz #define enable_iap0x83/sysclk12mhz
18、/#define enable_iap0x84/sysclk 6mhz/#define enable_iap0x85/sysclk 3mhz/#define enable_iap0x86/sysclk 2mhz/#define enable_iap0x87/sysclk8;/set isp/iap/eeprom address highiap_trig = 0x5a;/send trigger command1(0x5a)iap_trig = 0xa5;/send trigger command2(0xa5)_nop_();/mcu will hold here until isp/iap/e
19、eprom/operation completedat = iap_data;/read isp/iap/eeprom dataiapidle();/close isp/iap/eeprom functionreturn dat;/return flash data/*-programe one byte to isp/iap/eeprom areainput: addr(isp/iap/eeprom address)dat(isp/iap/eeprom data)output:-*/void iapprogrambyte(word addr, byte dat)iap_contr = ena
20、ble_iap;/open iap function,and set wait timeiap_cmd= cmd_program;/set isp/iap/eeprom program commandiap_addrl = addr;/set isp/iap/eeprom address lowiap_addrh = addr8;/set isp/iap/eeprom address highiap_data = dat;/write isp/iap/eeprom dataiap_trig = 0x5a;/send trigger command1(0x5a)iap_trig = 0xa5;/
21、send trigger command2(0xa5)_nop_();/mcu will hold here until isp/iap/eeprom/operation completeiapidle();/*-erase one sector areainput: addr (isp/iap/eeprom address)output:-*/void iaperasesector(word addr)iap_contr = enable_iap;/open iap function,and set wait timeiap_cmd= cmd_erase;/set isp/iap/eepro
22、m erase commandiap_addrl = addr;/set isp/iap/eeprom address lowiap_addrh = addr8;/set isp/iap/eeprom address highiap_trig = 0x5a;/send trigger command1(0x5a)iap_trig = 0xa5;/send trigger command2(0xa5)_nop_();/mcu will hold here until isp/iap/eeprom/operation completeiapidle();/*數(shù)碼管顯示函數(shù)*/void displa
23、ys(uchar x2,x1) w1=0;p1=duanxuannum0(x1);delay_ms(5);w1=1;p1=0x00;/消影 w2=0;p1=duanxuannum1(x1);delay_ms(5);w2=1;p1=0x00; w3=0;p1=duanxuannum2(x2)|0x80;delay_ms(5);w3=1;p1=0x00; w4=0;p1=duanxuannum3(x2);delay_ms(5);w4=1;p1=0x00;/*定時器初始化*/void t_initialize()/ ea=1; /開放all中斷允許enable et0=1; /開放t0中斷允許ena
24、ble*/ tmod=0x11; /定時器0、1,工作方式1,僅受tcon中tr控制*/ th0=(65536-n)/256; tl0=(65536-n)%256; et1=1; /開放t1中斷允許enable*/ th1=(65536-n)/256; tl1=(65536-n)%256; tr0=1; /定時器計時開始/*/*時鐘實時時間、定時段設(shè)置(顯示放后邊)*/void clk_weixuan()/switch(k5)case 1:switch(k2)case 0:;break;case 1:if(key=1)a0_shi+;if(a0_shi=24)a0_shi=0;/*shi=02
25、3*/ if(key=4)if(a0_shi=0)a0_shi=24;a0_shi-;/*shi=230*/break; case 2:if(key=1)a0_fen+;if(a0_fen=60)a0_fen=0;/*fen=059*/ if(key=4)if(a0_fen=0)a0_fen=60;a0_fen-;/*fen=059*/break;case 3:if(key=1)a1_shi+;if(a1_shi=24)a1_shi=0;/*shi=023*/ if(key=4)if(a1_shi=0)a1_shi=24;a1_shi-;/*shi=230*/break;case 4:if(k
26、ey=1)a1_fen+;if(a1_fen=60)a1_fen=0;/*fen=059*/ if(key=4)if(a1_fen=0)a1_fen=60;a1_fen-;/*fen=059*/break;case 5:iaperasesector(0x0000);iapprogrambyte(0x0000,a0_shi);iapprogrambyte(0x0001,a0_fen);iapprogrambyte(0x0002,a1_shi);iapprogrambyte(0x0003,a1_fen);k2=0;break;break;case 2:switch(k2)case 0:;break
27、;case 1:if(key=1)b0_shi+;if(b0_shi=24)b0_shi=0;/*shi=023*/ if(key=4)if(b0_shi=0)b0_shi=24;b0_shi-;/*shi=230*/break; case 2:if(key=1)b0_fen+;if(b0_fen=60)b0_fen=0;/*fen=059*/ if(key=4)if(b0_fen=0)b0_fen=60;b0_fen-;/*fen=590*/break;case 3:if(key=1)b1_shi+;if(b1_shi=24)b1_shi=0;/*shi=023*/ if(key=4)if(
28、b1_shi=0)b1_shi=24;b1_shi-;/*shi=230*/break;case 4:if(key=1)b1_fen+;if(b1_fen=60)b1_fen=0;/*fen=059*/ if(key=4)if(b1_fen=0)b1_fen=60;b1_fen-;/*fen=059*/break;case 5:iaperasesector(0x0200);iapprogrambyte(0x0200,b0_shi);iapprogrambyte(0x0201,b0_fen);iapprogrambyte(0x0202,b1_shi);iapprogrambyte(0x0203,
29、b1_fen);k2=0;break;break;case 3:switch(k2)case 0:;break;case 1:if(key=1)c0_shi+;if(c0_shi=24)c0_shi=0;/*shi=023*/ if(key=4)if(c0_shi=0)c0_shi=24;c0_shi-;/*shi=230*/break; case 2:if(key=1)c0_fen+;if(c0_fen=60)c0_fen=0;/*fen=059*/ if(key=4)if(c0_fen=0)c0_fen=60;c0_fen-;/*fen=590*/break;case 3:if(key=1
30、)c1_shi+;if(c1_shi=24)c1_shi=0;/*shi=023*/ if(key=4)if(c1_shi=0)c1_shi=24;c1_shi-;/*shi=230*/break;case 4:if(key=1)c1_fen+;if(c1_fen=60)c1_fen=0;/*fen=059*/ if(key=4)if(c1_fen=0)c1_fen=60;c1_fen-;/*fen=059*/break;case 5:iaperasesector(0x0400);iapprogrambyte(0x0400,c0_shi);iapprogrambyte(0x0401,c0_fe
31、n);iapprogrambyte(0x0402,c1_shi);iapprogrambyte(0x0403,c1_fen);k2=0;break;break;case 4:switch(k2)case 0:;break;case 1:if(key=1)d0_shi+;if(d0_shi=24)d0_shi=0;/*shi=023*/ if(key=4)if(d0_shi=0)d0_shi=24;d0_shi-;/*shi=230*/break; case 2:if(key=1)d0_fen+;if(d0_fen=60)d0_fen=0;/*fen=059*/ if(key=4)if(d0_f
32、en=0)d0_fen=60;d0_fen-;/*fen=590*/break;case 3:if(key=1)d1_shi+;if(d1_shi=24)d1_shi=0;/*shi=023*/ if(key=4)if(d1_shi=0)d1_shi=24;d1_shi-;/*shi=230*/break;case 4:if(key=1)d1_fen+;if(d1_fen=60)d1_fen=0;/*fen=059*/ if(key=4)if(d1_fen=0)d1_fen=60;d1_fen-;/*fen=059*/break;case 5:iaperasesector(0x0600);ia
33、pprogrambyte(0x0600,d0_shi);iapprogrambyte(0x0601,d0_fen);iapprogrambyte(0x0602,d1_shi);iapprogrambyte(0x0603,d1_fen);k2=0;break;break;if(k2=0)switch(k3)case 0:tr0=1;break; case 1:if(key=1)shi+;if(shi=24)shi=0;/*shi=023*/ if(key=4)if(shi=0)shi=24;shi-;/*shi=230*/;break; case 2:if(key=1)fen+;if(fen=6
34、0)fen=0;/*fen=059*/ if(key=4)if(fen=0)fen=60;fen-;/*fen=590*/;break;/*矩陣鍵盤掃描,同時可進行數(shù)碼管各位的+- */void matrixkeyscan()/如何確定時間設(shè)定時數(shù)碼管顯示的數(shù)字是否會自動+1 /*當兩行h1、h2重新賦值時存在沖突,解決辦法為:h1=1時h2=0,h2=1時h1=0或者對p3口進行整體賦值*/ uchar temp; /*掃描第一行*/ h1=0;h2=1;/掃描第一行 temp=p0; temp=temp|0x1f;/讀取l1、l2、l3的狀態(tài)/*判斷哪個鍵摁下*/ if(temp!=0xf
35、f)/判斷是否有鍵摁下 delay_ms(10);/延時 h1=0;h2=1;/掃描第一行/重新讀取 temp=p0; temp=temp|0x1f;/讀取l1、l2、l3的狀態(tài) if(temp!=0xff)/消抖 switch(temp)/判斷哪個鍵摁下 case 0x7f:key=3;k3+;k3=k3%3/*k=02*/; tr0=0/*時間設(shè)定時定時器停止*/;break; case 0xbf:key=2;k3=0;k2+;if(k2=1)num1=0;tr1=1;break; case 0xdf:key=1;break; /鍵1 2 3 分別摁下clk_weixuan();while
36、(temp!=0xff)/按鍵釋放才會跳出循環(huán) h1=0;h2=1;/掃描第一行/重新讀取 temp=p0; temp=temp|0x1f;/讀取l1、l2、l3的狀態(tài) /*掃描第二行*/ h2=0;h1=1;/掃描第二行 temp=p0; temp=temp|0x1f;/讀取l1、l2、l3的狀態(tài)/*判斷哪個鍵摁下*/ if(temp!=0xff)/判斷是否有鍵摁下 delay_ms(10);/延時 h2=0;h1=1;/掃描第二行/重新讀取 temp=p0; temp=temp|0x1f;/讀取l1、l2、l3的狀態(tài) if(temp!=0xff)/消抖 switch(temp)/判斷哪個鍵
37、摁下 case 0x7f:key=6;k6+;if(k6=2)k6=0;break; case 0xbf:key=5;k5+;/*1 2 3 4 */if(k5=5)k5=1;num1=0;tr1=1;/*內(nèi)次按下k5 都會顯示2s的回路(a/b/c/d),故需要打開定時器且計數(shù)清零*/break; case 0xdf:key=4;break; /鍵 4 5 6 分別摁下clk_weixuan();while(temp!=0xff)/按鍵釋放才會跳出循環(huán) h2=0;h1=1;/掃描第二行/重新讀取 temp=p0; temp=temp|0x1f;/讀取l1、l2、l3的狀態(tài) void disp
38、lays_hui() w1=0;p1=duanxuank5+9;delay_ms(5);w1=1;p1=0x00;/消影 w2=0;p1=duanxuank5+9;delay_ms(5);w2=1;p1=0x00; w3=0;p1=duanxuank5+9;delay_ms(5);w3=1;p1=0x00; w4=0;p1=duanxuank5+9;delay_ms(5);w4=1;p1=0x00;void displays_set() w1=0;p1=0x40;delay_ms(5);w1=1;p1=0x00;/消影 w2=0;p1=0x40;delay_ms(5);w2=1;p1=0x00
39、; w3=0;p1=duanxuank5+9;delay_ms(5);w3=1;p1=0x00; w4=0;p1=duanxuank5+9;delay_ms(5);w4=1;p1=0x00;void displays_all()/先優(yōu)先處理k5 k2按下時的顯示問題,再進行正常顯示 if(key=5) while(num140)displays_hui();tr1=0;/*只顯示2s的回路,然后恢復(fù)正常時鐘顯示*/ if(k2!=0)/正常調(diào)時k3!=0,此時按下k2不能調(diào)整定時的時間段if(k3=0)while(num140)displays_set()/*a0- 2s*/;tr1=0; s
40、witch(k5) case 1:if(k2=2)displays(a0_shi,a0_fen);else displays(a1_shi,a1_fen);break; case 2:if(k2=2)displays(b0_shi,b0_fen);else displays(b1_shi,b1_fen);break; case 3:if(k2=2)displays(c0_shi,c0_fen);else displays(c1_shi,c1_fen);break; case 4:if(k2(a0_shi*100+a0_fen)&(shi*100+fen)(b0_shi*100+b0_fen)&
41、(shi*100+fen)(c0_shi*100+c0_fen)&(shi*100+fen)(d0_shi*100+d0_fen)&(shi*100+fen)(d1_shi*100+d1_fen) huilud=0;else huilud=1;break; void main() p1m1=0x00; p1m0=0xff; p2m1=0x00; p2m0=0xff; t_initialize(); /定時器t0、t1初始化 a0_shi=iapreadbyte(0x0000);/讀取eeprom中存儲的參數(shù) a0_fen=iapreadbyte(0x0001); a1_shi=iapreadb
42、yte(0x0002); a1_fen=iapreadbyte(0x0003); b0_shi=iapreadbyte(0x0200); b0_fen=iapreadbyte(0x0201); b1_shi=iapreadbyte(0x0202); b1_fen=iapreadbyte(0x0203); c0_shi=iapreadbyte(0x0400); c0_fen=iapreadbyte(0x0401); c1_shi=iapreadbyte(0x0402); c1_fen=iapreadbyte(0x0403); d0_shi=iapreadbyte(0x0600); d0_fen=
43、iapreadbyte(0x0601); d1_shi=iapreadbyte(0x0602); d1_fen=iapreadbyte(0x0603); while(1) /開始行走 matrixkeyscan();/進行一次鍵盤檢測,可進行數(shù)碼管各位的+-設(shè)置 displays_all(); void t0_timer()interrupt 1 th0=(65536-n)/256;/*/ tl0=(65536-n)%256; num+; /*全局變量,不賦初值時,默認初值為0*/ if(num=10)led=led;num=0;num0+;/*0.5s改變一次狀態(tài),閃爍一次1s*/ if(num0=120) num0=0;fen+; if(fen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公寓代理銷售合同范本
- 冰淇淋套餐合同范本
- 出售文明公寓合同范本
- 中藥加工合同范本
- 公寓閣樓買賣合同范本
- cps推廣合同范本
- 農(nóng)戶斗雞養(yǎng)殖合同范本
- 事業(yè)物業(yè)合同范本
- 住家阿姨用工合同范本
- 與單位停車合同范例
- 中央2024年中國建設(shè)報社招聘應(yīng)屆生筆試上岸歷年典型考題與考點剖析附帶答案詳解
- 阻燃更要消煙一文讓你掌握無煙阻燃改性技術(shù)的方方面面
- 2024入贅協(xié)議書范本
- 2024屆江蘇省蘇北七市(南通)高三二模考試英語試題讀后續(xù)寫思路分析My best examination 講義
- 2024年益陽醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)技能測試題庫及答案解析
- 2023年人教版七年級歷史下冊《全冊課件》
- 新大象版科學(xué)三年級下冊全冊知識點 (復(fù)習(xí)用)
- 《提案與方案優(yōu)化設(shè)計》課件-第二部分 平面布局方案設(shè)計
- 2024年黑龍江省專升本考試生理學(xué)護理學(xué)專業(yè)測試題含解析
- 奧特康唑膠囊-臨床用藥解讀
- 認識統(tǒng)計年報基本概念與作用
評論
0/150
提交評論