欢迎来到天天文库
浏览记录
ID:21334258
大小:81.00 KB
页数:6页
时间:2018-10-21
《定时器1控制实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验报告21.实验名称:定时器1控制实验2.实验原理:其屮T1CTL为Timerl定时器控制状态寄存器,通过该寄存器来设置定时器的模式和预分频系数。IRCON寄存器为中断标志位寄存器,通过该寄存器可以判断相应控制器Timerl的中断状态。3.实验原理4.实验结果:LED灯交替闪烁5.实验改进需求:1.对位进行操作(原实验中IRCON是对整个寄存器进行操作)2.修改频率为32分频,原来是128分频3.LED2的灯闪烁频率耍比LED1灯闪烁频率慢一倍6.代码:原始代码:#include#defineuintunsign
2、edint#defineucharunsignedchar//定义控制LED灯端口//defineLED1P1_O#defineLED2Pl_luintcounter=0;//统计溢出次数uintTempFlag;//用来标志是否要闪烁voidDelay(uint);voidInitial(void);"延时voidDelay(uintn){uinti,t;for(i=0;i<5;i++);for(t=0;t3、TlCTL=OxOd;//中断无效,128分频,自动重装模式}voidmain(){Initial。;LED1=O;while(l){if(IRCON〉0){IRCON=0;TempFlag=!TempFlag;}if(TempFlag){LED2=LED1;LED1=!LED1;Delay(6000);}}}改进后代码:#include#defineuintunsignedint#defineucharunsignedchar//定义控制LED灯端口#defineLED1P1_O//defineLED2Pl_lu4、intcounter=0;uintTempFlag;voidDelay(uint);voidInitial(void);"延时voidDelay(uintn){uinti,t;for(i=0;i<5;i++);for(t=0;t5、T11F在第二位//判断TIIF是否在中断标忐位置{IRCON&=OxOc;//11000000TempFlag=!TempFlag;}if(TempFlag){LED2=LED1;Delay(lOOOO);}7.更改代码之后的结果:蓝灯一直在闪,红灯闪得比蓝灯慢。实验成功。
3、TlCTL=OxOd;//中断无效,128分频,自动重装模式}voidmain(){Initial。;LED1=O;while(l){if(IRCON〉0){IRCON=0;TempFlag=!TempFlag;}if(TempFlag){LED2=LED1;LED1=!LED1;Delay(6000);}}}改进后代码:#include#defineuintunsignedint#defineucharunsignedchar//定义控制LED灯端口#defineLED1P1_O//defineLED2Pl_lu
4、intcounter=0;uintTempFlag;voidDelay(uint);voidInitial(void);"延时voidDelay(uintn){uinti,t;for(i=0;i<5;i++);for(t=0;t5、T11F在第二位//判断TIIF是否在中断标忐位置{IRCON&=OxOc;//11000000TempFlag=!TempFlag;}if(TempFlag){LED2=LED1;Delay(lOOOO);}7.更改代码之后的结果:蓝灯一直在闪,红灯闪得比蓝灯慢。实验成功。
5、T11F在第二位//判断TIIF是否在中断标忐位置{IRCON&=OxOc;//11000000TempFlag=!TempFlag;}if(TempFlag){LED2=LED1;Delay(lOOOO);}7.更改代码之后的结果:蓝灯一直在闪,红灯闪得比蓝灯慢。实验成功。
此文档下载收益归作者所有