飞思卡尔mc9s12单片机实验程序

飞思卡尔mc9s12单片机实验程序

ID:9848383

大小:37.00 KB

页数:6页

时间:2018-05-12

飞思卡尔mc9s12单片机实验程序_第1页
飞思卡尔mc9s12单片机实验程序_第2页
飞思卡尔mc9s12单片机实验程序_第3页
飞思卡尔mc9s12单片机实验程序_第4页
飞思卡尔mc9s12单片机实验程序_第5页
资源描述:

《飞思卡尔mc9s12单片机实验程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、定时器模块1:输出比较定时器延时,中断点亮led灯#include/*commondefinesandmacros*/#include/*derivativeinformation*///voidinterrupt8aabreak(void);//此行可以注释掉*******unsignedintflag=0;voidmain(void){EnableInterrupts;TFLG1=0x01;//清中断标志位DDRB=0xff;PORTB=0xff;//将B口定义为输出,首先输出全0TSCR1=0x80;//定时

2、器使能,正常工作TSCR2=0x01;//将定时器进行128分频最高位不要开********TIE=0x01;//定时器0的中断使能TIOS=0x01;//将定时器设置为输出比较状态TCTL2=0x00;//定时器与引脚断开TFLG1=0x01;//清中断标志位TC0=0x00f0;//给定时器赋值for(;;);}#pragmaCODE_SEGNON_BANKEDvoidinterrupt8aabreak(void)//中断号要正确,是中断8(从0通道开始算起的){TFLG1=0x01;//清中断标志位if(flag==0){PORTB=0xaa;flag=1

3、;}else{PORTB=0x55;flag=0;}TC0=0x00f0;//给定时器赋值}2:输入捕捉PORTA输出脉冲,有定时器通道0对脉冲进行计数,结果从PORTB输出。#include/*commondefinesandmacros*/#include/*derivativeinformation*/unsignedintnumber=0;//脉冲计数初值为0/***********初始化**********/voidinit(){EnableInterrupts;DDRA=0xff;//将A口定义为输出,

4、用于输出脉冲DDRB=0xff;//B口用于输出脉冲值PORTB=0xff;//led灯全暗TIOS=0x00;//设置定时器通道0为输入捕捉TSCR1=0x80;//定时器使能TSCR2=0x01;//设置自由计数器2分频,且禁止定时器溢出中断TCTL4=0x02;//捕捉器仅下降沿捕捉TIE=0x01;//允许定时器通道0的中断TFLG1=0x01;//清除中断标志位}/*********用于产生脉冲*******/voidpulse(){unsignedinti,j;PORTA=0xff;//将A口输出高电平for(i=0;i<10000;i++)for(

5、j=0;j<100;j++);//延时PORTA=0x00;//使A口输出低电平}/********主函数*********/voidmain(void){init();for(;;){pulse();}}/*******中断子函数******/#pragmaCODE_SEGNON_BANKEDvoidinterrupt8count(){TFLG1=0x01;//中断标志位清0number++;//计数值加1PORTB=~(number);//B口输出计数值}模数转换模块(硬件未完成,以后补充。。。。)PWM模块#include/*common

6、definesandmacros*/#include/*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12db128b"voidinit(){DDRB=0xff;//定义B口为输出状态PORTB=0x00;//led灯全部为暗DDRA=0x00;//定义A口为接受状态PWME=0x00;//首先禁止pwm输出PWMCTL=0x00;//PWM不级联PWMPRCLK=0x77;//CLOCKA,CLOCKB分频PWMCLK=0xff;//都选择CLOCKSA和CLOCKSB

7、作为时钟源PWMSCLA=0xff;PWMSCLB=0xff;//再次分频、PWMPOL=0xff;//设置pwm周期开始为高电平PWMCAE=0x00;//选择左对齐方式PWMPER0=0xfe;//选择周期PWMDTY0=0xfe;//占空比PWME=0x01;//启动通道0的pwm输出}voidfun(){if(PORTA_BIT5==1){PORTB=0x00;//如果此时pwm输出高电平,则点亮led灯}else{PORTB=0xff;//如果此时pwm输出低电平,则熄灭led灯}}voidmain(void){DDRB=0xff;PORTB=0x00

8、;for(;;){fun

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。