飛思卡爾MC9S12單片機(jī)實(shí)驗(yàn)程序_第1頁(yè)
飛思卡爾MC9S12單片機(jī)實(shí)驗(yàn)程序_第2頁(yè)
飛思卡爾MC9S12單片機(jī)實(shí)驗(yàn)程序_第3頁(yè)
飛思卡爾MC9S12單片機(jī)實(shí)驗(yàn)程序_第4頁(yè)
飛思卡爾MC9S12單片機(jī)實(shí)驗(yàn)程序_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、定時(shí)器模塊1:輸出比較定時(shí)器延時(shí),中斷點(diǎn)亮led燈#include <hidef.h> /* common defines and macros */#include <mc9s12db128.h> /* derivative information */void interrupt 8 aabreak(void); /此行可以注釋掉*unsigned int flag=0;void main(void) EnableInterrupts; TFLG1=0x01; /清中斷標(biāo)志位 DDRB=0xff; PORTB=0xff; /將B口定義為輸出,首先輸出全0 TSCR1

2、=0x80; /定時(shí)器使能,正常工作 TSCR2=0x01; /將定時(shí)器進(jìn)行128分頻 最高位不要開(kāi)* TIE=0x01; /定時(shí)器0的中斷使能 TIOS=0x01; /將定時(shí)器設(shè)置為輸出比較狀態(tài) TCTL2=0x00; /定時(shí)器與引腳斷開(kāi) TFLG1=0x01; /清中斷標(biāo)志位 TC0=0x00f0; /給定時(shí)器賦值 for(;);#pragma CODE_SEG NON_BANKEDvoid interrupt 8 aabreak(void)/中斷號(hào)要正確,是中斷8 (從0通道開(kāi)始算起的) TFLG1=0x01; /清中斷標(biāo)志位 if(flag=0) PORTB=0xaa; flag=1;

3、 else PORTB=0x55; flag=0; TC0=0x00f0; /給定時(shí)器賦值 2:輸入捕捉PORTA輸出脈沖,有定時(shí)器通道0對(duì)脈沖進(jìn)行計(jì)數(shù),結(jié)果從PORTB輸出。#include <hidef.h> /* common defines and macros */#include <mc9s12db128.h> /* derivative information */unsigned int number=0; /脈沖計(jì)數(shù)初值為0/*初始化*/void init()EnableInterrupts; DDRA=0xff; /將A口定義為輸出,用于輸出脈沖DD

4、RB=0xff; /B口用于輸出脈沖值PORTB=0xff; /led燈全暗TIOS=0x00; /設(shè)置定時(shí)器通道0為輸入捕捉TSCR1=0x80; /定時(shí)器使能TSCR2=0x01; /設(shè)置自由計(jì)數(shù)器2分頻,且禁止定時(shí)器溢出中斷TCTL4=0x02; /捕捉器僅下降沿捕捉TIE=0x01; /允許定時(shí)器通道0的中斷TFLG1=0x01; /清除中斷標(biāo)志位/*用于產(chǎn)生脈沖*/void pulse() unsigned int i,j; PORTA=0xff; /將A口輸出高電平 for(i=0;i<10000;i+) for(j=0;j<100;j+) ; /延時(shí) PORTA=0x

5、00; /使A口輸出低電平 /*主函數(shù)*/void main(void) init(); for(;) pulse(); /*中斷子函數(shù)*/#pragma CODE_SEG NON_BANKEDvoid interrupt 8 count() TFLG1=0x01; /中斷標(biāo)志位清0number+; /計(jì)數(shù)值加1PORTB=(number); /B口輸出計(jì)數(shù)值模數(shù)轉(zhuǎn)換模塊(硬件未完成,以后補(bǔ)充。)PWM模塊#include <hidef.h> /* common defines and macros */#include <mc9s12db128.h> /* deriv

6、ative information */#pragma LINK_INFO DERIVATIVE "mc9s12db128b" void init() DDRB=0xff; /定義B口為輸出狀態(tài) PORTB=0x00; /led燈全部為暗 DDRA=0x00; /定義A口為接受狀態(tài) PWME=0x00; /首先禁止pwm輸出 PWMCTL=0x00; /PWM不級(jí)聯(lián) PWMPRCLK=0x77; /CLOCKA,CLOCKB分頻 PWMCLK=0xff; /都選擇CLOCKSA和CLOCKSB作為時(shí)鐘源 PWMSCLA=0xff; PWMSCLB=0xff; /再次分頻、

7、PWMPOL=0xff; /設(shè)置pwm周期開(kāi)始為高電平 PWMCAE=0x00; /選擇左對(duì)齊方式 PWMPER0=0xfe; /選擇周期 PWMDTY0=0xfe; /占空比 PWME=0x01; /啟動(dòng)通道0的pwm輸出 void fun() if(PORTA_BIT5=1)PORTB=0x00; /如果此時(shí)pwm輸出高電平,則點(diǎn)亮led燈 else PORTB=0xff; /如果此時(shí)pwm輸出低電平,則熄滅led燈void main(void) DDRB=0xff;PORTB=0x00; for(;) fun(); SCI模塊#include <hidef.h> #inclu

8、de <mc9s12db128.h> #pragma LINK_INFO DERIVATIVE "mc9s12db128b"unsigned char pp=0xf0; /欲發(fā)送的數(shù)字/* 串口初始化*/void init() DDRB=0xff; PORTB=0xff; /開(kāi)始led燈暗,即數(shù)據(jù)尚未接收 SCI0BD=52; /初始化波特率為9600 SCI0CR1=0x00; /八位無(wú)奇偶校驗(yàn)?zāi)J?SCI0CR2=0x2c; /接收中斷允許 /*寫(xiě)數(shù)據(jù)*/void write(unsigned char n) SCI0SR1_TDRE=1; /數(shù)據(jù)傳輸?shù)捷敵?/p>

9、寄存器 SCI0DRL=n; while(SCI0SR1_TC=0); /等待發(fā)送完畢 /*讀數(shù)據(jù)*/unsigned char read() if(SCI0SR1_RDRF=1) /如果數(shù)據(jù)有效,那么將讀到的數(shù)據(jù)返回 return(SCI0DRL); /*主函數(shù)*/void main(void) EnableInterrupts; init(); write(pp); for(;); /等待中斷/*中斷子程序*/#pragma CODE_SEG NON_BANKEDvoid interrupt 20 funck() unsigned char k; k=read(); PORTB=k; SP

10、I模塊不會(huì),以后補(bǔ)充。LED驅(qū)動(dòng)#include <hidef.h> /* common defines and macros */#include <mc9s12db128.h> /* derivative information */#pragma LINK_INFO DERIVATIVE "mc9s12db128b"unsigned char num4=0xC0,0xF9,0xF8,0xF9; / 四位顯示數(shù)字:0171unsigned char k,kk; /*初始化函數(shù)*/void init() DDRB=0xff; PORTB=0xff; DDRA=0xff; /將A,B口都定義為輸出模式 k=0; kk=0x01;/*延時(shí)程序*/void delay() unsigned int i; for(i=0;i<500;i+);/*顯示程序*/void show() PORTB

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論