第一篇:AVR單片機(jī)定時(shí)器輸出PWM的設(shè)計(jì)及注意問題
一、定時(shí)/計(jì)數(shù)器PWM設(shè)計(jì)要點(diǎn)
根據(jù)PWM的特點(diǎn),在使用ATmega128的定時(shí)/計(jì)數(shù)器設(shè)計(jì)輸出PWM時(shí)應(yīng)注意以下幾點(diǎn):
1.首先應(yīng)根據(jù)實(shí)際的情況,確定需要輸出的PWM頻率范圍,這個(gè)頻率與控制的對(duì)象有關(guān)。如輸出PWM波用于控制燈的亮度,由于人眼不能分辨42Hz以上的頻率,所以PWM的頻率應(yīng)高于42Hz,否則人眼會(huì)察覺到燈的閃爍。
2.然后根據(jù)需要PWM的頻率范圍確定ATmega128定時(shí)/計(jì)數(shù)器的PWM工作方式。AVR定時(shí)/計(jì)數(shù)器的PWM模式可以分成快速PWM和頻率(相位)調(diào)整PWM兩大類。
3.快速PWM可以的到比較高頻率的PWM輸出,但占空比的調(diào)節(jié)精度稍微差一些。此時(shí)計(jì)數(shù)器僅工作在單程正向計(jì)數(shù)方式,計(jì)數(shù)器的上限值決定PWM的頻率,而比較匹配寄存器的值決定了占空比的大小。PWM頻率的計(jì)算公式為:
PWM頻率 = 系統(tǒng)時(shí)鐘頻率/(分頻系數(shù)*(1+計(jì)數(shù)器上限值))
4.快速PWM模式適合要求輸出PWM頻率較高,但頻率固定,占空比調(diào)節(jié)精度要求不高的應(yīng)用。
5.頻率(相位)調(diào)整PWM模式的占空比調(diào)節(jié)精度高,但輸出頻率比較低,因?yàn)榇藭r(shí)計(jì)數(shù)器僅工作在雙向計(jì)數(shù)方式。同樣計(jì)數(shù)器的上限值決定了PWM的頻率,比較匹配寄存器的值決定了占空比的大小。PWM頻率的計(jì)算公式為:
PWM頻率 = 系統(tǒng)時(shí)鐘頻率/(分頻系數(shù)*2*計(jì)數(shù)器上限值))
6.相位調(diào)整PWM模式適合要求輸出PWM頻率較低,但頻率固定,占空比調(diào)節(jié)精度要求高的應(yīng)用。當(dāng)調(diào)整占空比時(shí),PWM的相位也相應(yīng)的跟著變化(Phase Correct)。
7.頻率和相位調(diào)整PWM模式適合要求輸出PWM頻率較低,輸出頻率需要變化,占空比調(diào)節(jié)精度要求高的應(yīng)用。此時(shí)應(yīng)注意:不僅調(diào)整占空比時(shí),PWM的相位會(huì)相應(yīng)的跟著變化;而一但改變計(jì)數(shù)器上限值,即改變PWM的輸出頻率時(shí),會(huì)使PWM的占空比和相位都相應(yīng)的跟著變化(Phase And Frequency Correct)。
8.在PWM方式中,計(jì)數(shù)器的上限值有固定的0xFF(8位T/C);0xFF、0x1FF、0x3FF(16位T/C)?;蛴捎脩粼O(shè)定的0x0000-0xFFFF,設(shè)定值在16位T/C的ICP或OCRA寄存器中。而比較匹配寄存器的值與計(jì)數(shù)器上限值之比即為占空比。
二、PWM應(yīng)用參考設(shè)計(jì)
下面給出一個(gè)設(shè)計(jì)示例,在示例中使用PWM方式來產(chǎn)生一個(gè)1KHz左右的正弦波,幅度為0-Vcc/2。
首先按照下面的公式建立一個(gè)正弦波樣本表,樣本表將一個(gè)正弦波周期分為128個(gè)點(diǎn),每點(diǎn)按7位量化(127對(duì)應(yīng)最高幅值Vcc/2):
F(X)= 64 + 63 * Sin(2πx/180)X∈[0…127]
如果在一個(gè)正弦波周期中采用128個(gè)樣點(diǎn),那么對(duì)應(yīng)1KHz的正弦波PWM的頻率為
128KHz。實(shí)際上,按照采樣頻率至少為信號(hào)頻率的2倍的取樣定理來計(jì)算,PWM的頻率的理論值為2KHz即可。考慮盡量提高PWM的輸出精度,實(shí)際設(shè)計(jì)使用PWM的頻率為16KHz,即一個(gè)正弦波周期(1KHz)中輸出16個(gè)正弦波樣本值。這意味著在128點(diǎn)的正弦波樣本表中,每隔8點(diǎn)取出一點(diǎn)作為PWM的輸出。
程序中使用ATmega128的8位T/C0,工作模式為相位調(diào)整PWM模式輸出,系統(tǒng)時(shí)鐘為8MHz,分頻系數(shù)為1,其可以產(chǎn)生最高PWM頻率為: 8000000Hz / 510 = 15686Hz。每16次輸出構(gòu)成一個(gè)周期正弦波,正弦波的頻率為980.4Hz。PWM由OC0(PB4)引腳輸出。參考程序如下(ICCAVR)。
//ICC-AVR Application Builder : 2004-08
// Target : M128
// Crystal: 8.0000Mhz
#Include
#Include
#Pragma Data:code
// 128點(diǎn)正弦波樣本表
Const Unsigned Char Auc_SinParam[128] = {
64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106,109,111,113,115,117,118,120,121,123,124,125,126,126,127,127,127,127,127,127,127,126,126,125,124,123,121,120,118,117,115,113,111,109,106,104,102,99,96,94,91,88,85,82,79,76,73,70,67,64,60,57,54,51,48,45,42,39,36,33,31,28,25,23,21,18,16,14,12,10,9,7,6,4,3,2,1,1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,18,21,23,25,28,31,33,36,39,42,45,48,51,54,57,60};#Pragma Data:data
Unsigned Char X_SW = 8,X_LUT = 0;
#Pragma Interrupt_handler Timer0_ovf_isr:17
Void Timer0_ovf_isr(Void)
{
X_LUT += X_SW;// 新樣點(diǎn)指針
If(X_LUT > 127)X_LUT-= 128;// 樣點(diǎn)指針調(diào)整
OCR0 = Auc_SinParam[X_LUT];// 取樣點(diǎn)指針到比較匹配寄存器
}
Void Main(Void)
{
DDRB |= 0x10;// PB4(OC0)輸出
TCCR0 = 0x71;// 相位調(diào)整PWM模式,分頻系數(shù)=1,正向控制OC0
TIMSK = 0x01;// T/C0溢出中斷允許
SEI();// 使能全局中斷
While(1)
{……};
}
每次計(jì)數(shù)器溢出中斷的服務(wù)中取出一個(gè)正弦波的樣點(diǎn)值到比較匹配寄存器中,用于調(diào)整下一個(gè)PWM的脈沖寬度,這樣在PB4引腳上輸出了按正弦波調(diào)制的PWM方波。當(dāng)PB4的輸出通過一個(gè)低通濾波器后,便得到一個(gè)980.4Hz的正弦波了。如要得到更精確的1KHz的正弦波,可使用定時(shí)/計(jì)數(shù)器T/C1,選擇工作模式10,設(shè)置ICR1=250為計(jì)數(shù)器的上限值。
第二篇:AVR單片機(jī)定時(shí)器TC0定時(shí)操作過程
定時(shí)器T/C0定時(shí)功能實(shí)現(xiàn)過程
一、中斷總使能:SREG=0X80;
二、使能定時(shí)器溢出中斷,TIMSK的TOIE0置1
三、選擇定時(shí)器時(shí)鐘分頻系數(shù),由TCCR0的CS01,CS01,CS00決定。
四、定時(shí)器計(jì)數(shù)器付初始值,TCNT0=61,TCNT0位8位寄存器,計(jì)數(shù)范圍為0-255,付初始值61后,從61開始計(jì)數(shù)到255時(shí)產(chǎn)生溢出中斷
付初值后定時(shí)就開始工作。
定時(shí)時(shí)間計(jì)算:每個(gè)計(jì)數(shù)時(shí)鐘脈沖的時(shí)間T=1/f,f=晶振頻率/分頻系數(shù),如晶振為8MHZ,分頻系數(shù)為1024,則定時(shí)器器時(shí)鐘
頻率為f=8000000HZ/1024=7812.5HZ,單個(gè)時(shí)鐘脈沖時(shí)間:T=1/f=1/7812.5=0.128ms(毫秒),T/C0最大的計(jì)數(shù)值 為256,最大計(jì)時(shí)時(shí)間為256*0.128ms=32.768ms。
定時(shí)器初值計(jì)算公式:定時(shí)器初值=256-定時(shí)時(shí)間/單個(gè)時(shí)鐘脈沖時(shí)間: 如定時(shí)25ms,初值=256-25ms/0.128ms=256-195=61
注:1MHZ=1000KHZ=1000000HZ,1s(秒)=1000ms(毫秒)
/***************************************************************************************
函數(shù)功能:定時(shí)器T/C0實(shí)現(xiàn)1秒鐘定時(shí),控制發(fā)光二極管周期性亮滅,晶振8MHZ
***************************************************************************************/
#include
char Counter = 0;// 1S計(jì)數(shù)變量清零,變量聲明
/********端口初始化********/
void port_init()//端口初始化子函數(shù)
{
PORTA=0xFF;//PA口配置為輸出
DDRA=0xFF;//PA口初始值為“1”
}
/********定時(shí)器0初始化********/
void timer0_init()//因?yàn)槎〞r(shí)時(shí)間太短,看不到燈的變化
{
SREG = 0x80;//使能全局中斷
TIMSK|=(1< TCCR0|=(1< TCNT0 = 61;//定時(shí)初值設(shè)置,定時(shí)時(shí)間 =(256-61)/7812.5=25ms } /********主函數(shù)********/ void main() { port_init(); timer0_init(); while(1); } /********定時(shí)器0中斷服務(wù)函數(shù)********/ #pragma interrupt_handler timer0_ovf:10 void timer0_ovf(void) { TCNT0 =61;//重裝計(jì)數(shù)初值 if(++Counter >= 40)//定時(shí)時(shí)間到1S嗎?定時(shí)中斷溢出40次為1S,25ms*40=1000ms=1s(秒){ PORTA^=BIT(0);//,將PA口的第0位取反操作。 Counter = 0;//1S計(jì)時(shí)變量清零 } } 小企鵝diy科學(xué)探究學(xué)習(xí)網(wǎng) 更多相關(guān)文章轉(zhuǎn)到: http://hi.baidu.com/wqb_lmkj/blog文章分類下的單片機(jī) 實(shí)現(xiàn)功能:通過鍵盤(BUTTON)控制蜂鳴器發(fā)生,鍵盤按下,通過RC2/CCP1接口輸出PWM信號(hào)(頻率880Hz,脈寬50)驅(qū)動(dòng)蜂鳴器發(fā)聲。 實(shí)驗(yàn)環(huán)境: Proteus 編程語(yǔ)言: 匯編 編程環(huán)境: MPLAB 單片機(jī): 晶振: PIC16F877 20MHz Proteus仿真電路如圖。 實(shí)驗(yàn)源程序: LIST P=16F877;設(shè)置pwm為880Hz,50%占空比 INCLUDE P16F877.INC ORG 0000H START BANKSEL TRISC;進(jìn)入TRISC所在BANK BCF TRISC,2;清零TRIC的bit2,以使CCP1引腳成為輸出 MOVLW D'70' MOVWF PR2;將70寫入PR2以設(shè)置PWM周期 BANKSEL CCPR1L MOVLW D'35' MOVWF CCPR1L MOVLW 0X06 MOVWF T2CON;bit2=1,使能Timer2,bit1-1,預(yù)分頻值為16 CHECKBUTTON BTFSC GOTO PORTA,4 BUTTONOFF BUTTONON MOVLW H'0C' MOVWF CCP1CON;設(shè)置CCP1為PWM模式 GOTO CHECKBUTTON BUTTONOFF CLRF CCP1CON GOTO END CHECKBUTTON 基于AVR單片機(jī)Mega16的時(shí)鐘設(shè)計(jì)報(bào)告 1摘 要 近年來隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此越來越廣泛地應(yīng)用各個(gè)領(lǐng)域.本文的電子鐘系統(tǒng)是以單片機(jī)(ATmega16)為核心,時(shí)鐘芯片、數(shù)碼管顯示驅(qū)動(dòng)芯片等元器件組成。具體介紹應(yīng)用Proteus的ISIS軟件進(jìn)行單片機(jī)系統(tǒng)的電子鐘設(shè)計(jì)與仿真的實(shí)現(xiàn)方法。該方法既能準(zhǔn)確驗(yàn)證所設(shè)計(jì)的系統(tǒng)是否滿足技術(shù)要求,又能提高系統(tǒng)設(shè)計(jì)的效率和質(zhì)量,降低開發(fā)成本,具有推廣價(jià)值。 關(guān)鍵詞:?jiǎn)纹瑱C(jī); 時(shí)鐘芯片 ;數(shù)碼管顯示驅(qū)動(dòng)芯片 ;電子鐘 2引 言 單片機(jī)電子時(shí)鐘系統(tǒng)可以用多種技術(shù)手段實(shí)現(xiàn)。本文借助于Proteus仿真系統(tǒng)進(jìn)行系統(tǒng)虛擬開發(fā)成功之后再進(jìn)行實(shí)際操作,可以節(jié)約開發(fā)時(shí)間,降低開發(fā)成本,具有很大的靈活性和可擴(kuò)展性。在國(guó)外有包括斯坦福、劍橋等在內(nèi)的幾千家高校將Proteus作為電子工程學(xué)位的教學(xué)和實(shí)驗(yàn)平臺(tái);在國(guó)內(nèi)也有眾多大學(xué)正在體驗(yàn)Proteus的獨(dú)一無二的功能并申報(bào)大學(xué)計(jì)劃。該方法具有普遍意義。通過實(shí)際應(yīng)用發(fā)現(xiàn),采用該方法可以大大簡(jiǎn)化硬件電路測(cè)試和系統(tǒng)調(diào)試過程中電路板制作、元器件安裝、焊接等過程。很明顯,使用該方法可以提高開發(fā)效率、降低開發(fā)成本、提升開發(fā)… AVR系列的單片機(jī)不僅具有良好的集成性能,而且都具備在線編程接口,其中的系列還具備仿真和下載功能;含有片內(nèi)看門狗電路、片內(nèi)程序FLASH、同步串行接口SPI;多數(shù)AVR單片機(jī)還內(nèi)嵌了A/D轉(zhuǎn)換器、EEPROM、模擬比較器、PWM定時(shí)計(jì)數(shù)器等多種功能;AVR單片機(jī)的I/O接口具有很強(qiáng)的驅(qū)動(dòng)能力,灌人電流可直接驅(qū)動(dòng)繼電器、LED等元件,從而省去驅(qū)動(dòng)電路,節(jié)約系統(tǒng)成本。 3設(shè)計(jì)思路 利用單片機(jī)(ATmega16)制作簡(jiǎn)易電子時(shí)鐘,由六個(gè)LED數(shù)碼管分別顯示小時(shí)十位、小時(shí)個(gè)位、分鐘十位、分鐘個(gè)位、秒鐘十位、秒鐘個(gè)位。6個(gè)PNP管分別控制六個(gè)數(shù)碼管的亮滅,此外還可以實(shí)現(xiàn)時(shí)間調(diào)整、等多種實(shí)用功能。整個(gè)設(shè)計(jì)分硬件和軟件兩大部分。硬件部分采用MEGA16單片機(jī)作為可編程芯片,字符液晶作為信號(hào)顯示;軟件部分利用C語(yǔ)言作為設(shè)計(jì)語(yǔ)言,對(duì)MEGA16進(jìn)行編程實(shí)現(xiàn)各種功能。 硬件設(shè)計(jì)電路分解為單片機(jī)、晶體振蕩器和數(shù)碼管3個(gè)部分,其結(jié)構(gòu)簡(jiǎn)單,經(jīng)濟(jì)實(shí)惠。單片機(jī)內(nèi)部晶體振蕩器的外接電路。由兩個(gè)電容和晶體振蕩器構(gòu)成,其電路如圖1所示。圖中X1和X2分別接MEGA16的兩個(gè)脈沖控制端,使得MEGA16的內(nèi)部脈沖電路為電子時(shí)鐘和整個(gè)系統(tǒng)時(shí)鐘提供脈沖。 圖1所示給出了采用單片機(jī)外加電源及晶體振蕩器構(gòu)成最小單片機(jī)系統(tǒng)。配合單片機(jī)開發(fā)的設(shè)計(jì)、調(diào)試和下載,最終將時(shí)鐘信息從端口輸出到字符液晶顯示。 圖26位模式與單片機(jī)的端口相連。 4軟件設(shè)計(jì)及調(diào)試過程 軟件設(shè)計(jì)包括Proteus的ISIS軟件、Code Vision AVR編輯軟件和AVRStudio4調(diào)試。利用ISP將生成程序timer.cof 下載到目標(biāo)板。其主要程序如下: void display(void)// 6 位LED 數(shù)碼管動(dòng)態(tài)掃描函數(shù) { PORTC = 0xff; PORTA = led_7[dis_buff[posit]]; if(point_on &&(posit==2||posit==4))PORTA |= 0x80; PORTC = position[posit]; if(++posit >=6)posit = 0; } // Timer 0 比較匹配中斷服務(wù) interrupt [TIM0_COMP] void timer0_comp_isr(void) { display();// 調(diào)用LED 掃描顯示 if(++time_counter>=100) { time_counter = 0; time_1s_ok = 1; } } void time_to_disbuffer(void)// 時(shí)鐘時(shí)間送顯示緩沖區(qū)函數(shù) { char i,j=0; for(i=0;i<=2;i++) { dis_buff[j++] = time[i] % 10; dis_buff[j++] = time[i] / 10; } } // INT0 中斷服務(wù)程序 interrupt [EXT_INT0] void ext_int0_isr(void) { if(++time[2]>=24)time[2] = 0; } // INT1 中斷服務(wù)程序 interrupt [EXT_INT1] void ext_int1_isr(void) { if(++time[1]>=60)time[1]=0; } void main(void) { PORTA=0x00;// 顯示控制I/O 端口初始化 DDRA=0xFF; PORTC=0x3F; DDRC=0x3F;// T/C0 初始化 PORTA=0xFF; DDRA=0xFF; GICR|=0xC0;// 允許INT0、INT1 中斷 MCUCR=0x0A;// INT0、INT1 下降沿觸發(fā) GIFR=0xC0;// 清除INT0、INT1 中斷標(biāo)志位 TCCR0=0x0B;// 內(nèi)部時(shí)鐘,64 分頻(4M/64=62.5KHz),CTC 模式 TCNT0=0x00; OCR0=0x7C;// OCR0 = 0x7C(124),(124+1)/62.5=2ms TIMSK=0x02;// 允許T/C0 比較匹配中斷 time[2] = 14;time[1] = 01;time[0] = 55;// 設(shè)時(shí)間初值23:58:5 5posit = 0; time_to_disbuffer(); #asm(“sei”)// 開放全局中斷 while(1) { if(time_1s_ok)// 1 秒到 { time_1s_ok = 0; point_on = ~point_on; if(++time[0] >= 60)// 以下時(shí)間調(diào)整 { time[0] = 0; if(++time[1] >= 60) { time[1] = 0; if(++time[2] >= 24)time[2] = 0; } } time_to_disbuffer();// 新調(diào)整好的時(shí)間送顯示緩沖區(qū) 5總結(jié)心得 這次設(shè)計(jì)報(bào)告培養(yǎng)了學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。 回顧起此次單片機(jī)設(shè)計(jì),我仍感慨頗多,的確,從選題到定稿,從理論到仿真,在這些日子里,我學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會(huì)遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對(duì)單片機(jī)匯編語(yǔ)言掌握得不好……通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識(shí)重新溫故。 這次設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問題,最后在老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在老師那里我學(xué)得到很多實(shí)用的知識(shí),在次我表示感謝!同時(shí),對(duì)給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝! }結(jié)束語(yǔ) 單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格低廉、可靠性高、靈活性好、開發(fā)較為容易。尤其是AVR單片機(jī)可以用高級(jí)語(yǔ)言編程,極容易地實(shí)現(xiàn)系統(tǒng)移植,并且加快了軟件的開發(fā)過程。這次設(shè)計(jì)通過對(duì)它的學(xué)習(xí)、應(yīng)用,以Mage16單片機(jī)為核心,輔以必要的電路,采用高級(jí)C語(yǔ)言編程,設(shè)汁了一個(gè)簡(jiǎn)易的電子時(shí)鐘,由 4.5 V直流電源供電,通過數(shù)碼管能夠準(zhǔn)確顯示時(shí)間。 引言 定時(shí)器根據(jù)其發(fā)展歷程可以分為:一種是基于模擬技術(shù)的定時(shí)器,目前這種產(chǎn)品已經(jīng)退出市場(chǎng)中;另一種是基于數(shù)據(jù)技術(shù)的產(chǎn)品,其具有強(qiáng)大的產(chǎn)品功能,但是這種產(chǎn)品主要應(yīng)用于較大的設(shè)備中。隨著單片機(jī)技術(shù)的不斷發(fā)展,基于單片機(jī)的多用途定時(shí)器被越來越多的行業(yè)所應(yīng)用,因此本文通過單片機(jī)多用途定時(shí)器的設(shè)計(jì)進(jìn)行深入的分析,讓人們更加了解基于單片機(jī)的多用途定時(shí)器的設(shè)計(jì)體系。 1基于單片機(jī)的多用途定時(shí)器的設(shè)計(jì)需求 通過單片機(jī)多用途定時(shí)器可以在LED顯示器中顯示預(yù)定的時(shí)間以及當(dāng)前的時(shí)間,進(jìn)而讓人們可以清楚地知道定時(shí)器工作的狀態(tài)等。同時(shí)基于單片機(jī)多用途定時(shí)器所具有的報(bào)警功能也可以及時(shí)提醒人們,進(jìn)而為人們的生活、生產(chǎn)提供便利。當(dāng)單片機(jī)定時(shí)器達(dá)到預(yù)定的時(shí)間后,該系統(tǒng)就會(huì)發(fā)出警報(bào),給人以提醒,因此單片機(jī)多用途定時(shí)器的便利性為設(shè)計(jì)該產(chǎn)品提供了廣泛的市場(chǎng)需求。 2單片機(jī)多用途定時(shí)器的設(shè)計(jì)原理 單片機(jī)多用途定時(shí)器主要采取了M SP430系列單片機(jī)、鍵盤、鐘芯片DS1302以及電源等電子模塊而實(shí)現(xiàn)的,由于其性價(jià)比比較高,因此其具有廣泛的市場(chǎng)應(yīng)用前景。結(jié)合多年的經(jīng)驗(yàn),該產(chǎn)品的設(shè)計(jì)原理主要如下: 2.1 M SP430系列單片機(jī)的結(jié)構(gòu) M SP430系列單片機(jī)主要包括CPU、存儲(chǔ)器以及外圍模塊等組成:CPU主要是用來處理程序指令,存儲(chǔ)系統(tǒng)的相關(guān)數(shù)據(jù)與程序,并且進(jìn)行位、字、字節(jié)的操作。外圍模塊主要是將單片機(jī)與外圍的相關(guān)設(shè)備進(jìn)行鏈接,并且實(shí)現(xiàn)通道的采樣轉(zhuǎn)換。 2.2單片機(jī)多用途定時(shí)器的設(shè)計(jì)原理 該設(shè)計(jì)主要是將M SP430單片機(jī)的各個(gè)端口與時(shí)鐘電路、鍵盤電路以及顯示電路進(jìn)行連接,通過軟件程序?qū)崿F(xiàn)與硬件電路的連接,進(jìn)而實(shí)現(xiàn)定時(shí)器的定時(shí)、報(bào)警功能??v觀整個(gè)單片機(jī)定時(shí)器設(shè)計(jì)過程,軟件系統(tǒng)中的中斷系統(tǒng)程序是設(shè)計(jì)的關(guān)鍵,在預(yù)定設(shè)計(jì)好定時(shí)信息后要注意將各個(gè)端口的自動(dòng)中斷處理,鍵盤的程序設(shè)計(jì)主要是采取掃描法,通過判斷行與列的鍵盤輸入信號(hào)來確定鍵入數(shù)字。 3基于單片機(jī)的多用途定時(shí)器的實(shí)現(xiàn) 3.1硬件設(shè)計(jì) 定時(shí)器的硬件設(shè)計(jì)主要包括:時(shí)鐘電路、M SP430單片機(jī)、顯示器以及鍵盤電路,其設(shè)計(jì)原理就是將單片機(jī)與各個(gè)硬件設(shè)備相連,實(shí)現(xiàn)電壓與電平之間的轉(zhuǎn)變,因此在電路設(shè)計(jì)時(shí)要充分考慮各個(gè)器件引腳的功能,對(duì)于重點(diǎn)電路可以先進(jìn)行理論探討后再進(jìn)行搭建。 在硬件設(shè)計(jì)中時(shí)鐘模塊是設(shè)計(jì)中比較復(fù)雜的,其主要是時(shí)鐘中的實(shí)時(shí)時(shí)鐘與RAM,利用串行接口與單片機(jī)進(jìn)行通信,給電路提供實(shí)時(shí)的時(shí)間信息。時(shí)鐘操作可通過AM h'M指示采用12/24小時(shí)格式。用RES(復(fù)位),SCLK(串行時(shí)鐘)、功(數(shù)據(jù)線)、三個(gè)口線與單片機(jī)之間進(jìn)行同步串行通信。時(shí)鐘電路部分是整個(gè)系統(tǒng)設(shè)計(jì)的難點(diǎn),電路搭建的正確與否直接關(guān)系著定時(shí)器時(shí)鐘系統(tǒng)是否能夠正常運(yùn)行。 其次是鍵盤模塊主要采用掃描方式進(jìn)行。鍵盤的工作方式也是分為兩種,編程控制方和中斷控制方式,一般是采用矩陣式鍵盤設(shè)計(jì)。首先設(shè)置各個(gè)口線為輸入模式,通過中斷的方式或者軟件查詢的方式,獲取信息,從而知道各個(gè)口線是否有鍵按下,如果有鍵按下,則口線端口為高電平,否則為低電平。在按下設(shè)置鍵對(duì)時(shí)間進(jìn)行調(diào)整之前可以通過+、一按鍵進(jìn)行調(diào)節(jié)。掃描鍵盤一般由行和列組成,在鍵盤上的某條行線上輸入低電平,如果鍵盤中某個(gè)鍵被按下則某個(gè)列線變?yōu)榈碗娖健?/p> 3.2軟件設(shè)計(jì) 本文定時(shí)器的軟件設(shè)計(jì),用于軟件程序的調(diào)試與仿真所使用的是TARSystem s公司開發(fā)的軟件,其包含C/C++編譯器和調(diào)試器的集成開發(fā)環(huán)境。結(jié)合本次的定時(shí)器產(chǎn)品設(shè)計(jì)主要采取的是THREW 430軟件程序。首先,在程序編寫之前要打開TAR Em bedded W oxRbench,注意單擊菜單Project,Add file test出現(xiàn)需要的加載源文件界面,選擇相應(yīng)的界面類型,編譯時(shí)注意對(duì)430單片機(jī)型號(hào)進(jìn)行選擇;其次,在程序運(yùn)行時(shí)要對(duì)DS1302進(jìn)行設(shè)置,并對(duì)D S 1302系統(tǒng)進(jìn)行初始化優(yōu)化,并將系統(tǒng)的時(shí)間設(shè)置為0。在確保上述程序完成后,再進(jìn)行時(shí)間上傳,進(jìn)而將有效的信息存儲(chǔ)在EPROM中,并且將其上傳給管理層,管理層在接收到相關(guān)知識(shí)后再進(jìn)行相應(yīng)的修改,最后顯示出具體的時(shí)間;最后,LED數(shù)碼管在顯示之前,要對(duì)串口的工作方式進(jìn)行設(shè)置,然后設(shè)置對(duì)應(yīng)的地址指針,然后選擇數(shù)段碼,通過傳送過來的脈沖來顯示。 參考文獻(xiàn): [1 ]胡立群,陳敦軍,吳凡超.基于單片機(jī)的多通道控制器的設(shè)計(jì)[U].電子測(cè)量技術(shù),2014(01).[2 ]羅大軍.基于單片機(jī)定時(shí)器的研究田科技致富向?qū)В?011(09).[3 ]哲豪.新版多用途定時(shí)器的硬件設(shè)計(jì)田.機(jī)電信息,201002).第三篇:PIC單片機(jī)學(xué)習(xí)筆記之PWM信號(hào)輸出
第四篇:AVR單片機(jī)的時(shí)鐘設(shè)計(jì)(范文)
第五篇:基于單片機(jī)的多用途定時(shí)器的設(shè)計(jì)分析論文