欢迎来到天天文库
浏览记录
ID:41590661
大小:75.82 KB
页数:6页
时间:2019-08-28
《北理工pic实验三定时器中断》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、PIC单片机在电子设计系统中的运用实验报告实验三定时器中断实验班级:姓名:学号:实验三定时器中断实验一、实验目的:1.学习使用PIC定时器模块和中断功能2.学习对PIC18F452的编程二、实验原理:TIMER2模块工作原理:Timer2模块定吋器冇以下特性:•8位定时器(TMR2寄存器)•8位周期寄存器(PR2)•可读写(TMR2和PR2寄存器均可)•可软件编程的预分频器(1:1、1:4和1:16)•可软件编程的后分频器(1:1到1:16)•TMR2与PR2匹配时中断Timer2模块利用8位定时器
2、(TMR2寄存器)对单片机指令周期(16MHz,4us)AO开始进行计数,当计数值与预先存在PR2寄存器中的数值相等时,TMR2寄存器自动归0,同吋产生一个小断。若预分频器设为1:16,后分频器设为1:10,PR2设为199,则Timer2模块的定时时间为4/16x16x10x200=8ms三、程序设计内容:1.用Timer2控制LED点亮,点亮持续时间为8mS。将Timer2模块设定为中断模式,每8mS中断一次。2.LED间隔48mS向左移7bit后再向右移7bit3.LED重复左、右移动(跑马灯
3、)四、实验步骤:根据实验要求,需要修改程序1・首先需要设置中断优先级位RCONbifs.IPEN二1;2.Timer2设为高优先级,对应的中断向量地址地址为0x08HIPRlbits.TMR2IP=l;3.允许高优先级屮断INTCONbits.GIEH二1;4.预分频器设为1:16,后分频器设为1:10,PR2设为199OpenTimer2(TIMER_INT_ON&T2_PS_1_16&T2_POST丄10);PR2二199;五、调试用ICD2编程、调试:建立好新项目后,设置好项目设置,把源程序加
4、入项目,再编译完成Z后把程序烧写进单片机。运行后,单片机红色的LED灯从左至右然后从右至左依次亮起、熄灭。正好与实验要求一致,实验成功。六、实验心得这次实验比较容易,在熟悉示例代码后,根据函数库以及变量说明,发现了需要完善的地方。设置屮断,设置预分频器后,最终成功运行。这次试验熟悉了中断的使用以及分频器的设定。附:实验代码#include#includc#include#pragmaconfigWDT=OFF#pragmaconfigOS
5、C二HS#pragmaconfigLVP=OFFvoidisr_high(void);volatileunsignedcharLong^Count;volatileunsignedcharDircct_LED;volatileunsignedcharDir_Count;voidmain(void){TRISD二0x00;PORTD二()b()()()()0()()l;//SetoutputportforLEDdriver//SetbOofLEDisOn//Exercise//EnableTimcr2
6、interruptwithhighPriority////(Refer18fxx2_cn(39564b)ofPage75-84)RCONbits.IPEN二1;//EnableInterruptPrioritybitIPRlbits.TMR2IP=l;INTCONbits.GIEH=1;//SetTimer2forHighPriority//EnableHighPriorityInteiruptJ•»■>•»//•>^P•>•卜
^Prp♦>•卜■卜t/*IntenuptTime*
7、//*(4/16Mhz)[16*10*(199+1)]=8mS*///(ReferMPLABC18函数库ofPage50)Timcr2withInlcn-uptOpenTimer2(TIMERJNT_0N&T2_PS丄16&T2_POST_1_10);PR2=199;//TurnOnthe//(4/16Mhz)[16*10*(199+1)]=8mSLong_Count=0;Direct_LED=0;Dir_Count=0;whilc(l);//LoopHere!/f}f■土wxwx■土■土wxwx
8、ffZ7^^7^Z7^"卜Z7^^7^Zj^^1%Z7^^7^^T%^T%^1%Z7^//*#pragmaInterruptDeclarations*〃*//*Function:isr_high_direct//*・Directexecutiontotheactual//*high-priorityintenuptcode./«»V%V%V/f■卜•卜
此文档下载收益归作者所有