《单片机定时器及外部中断实验报告》由会员分享,可在线阅读,更多相关《单片机定时器及外部中断实验报告(5页珍藏版)》请在金锄头文库上搜索。
1、单片机实验报告(二)实验名称: 定时器及外部中断姓 名: 张昊学 号: 110404247班 级: 通信 2班时 间: 2013.11南京理工大学紫金学院电光系一、 实验目的1、学习定时/计数器的应用;2、学习外部中断技术的基本使用方法;3、学习中断处理程序的编程方法。二、 实验原理(1)以 P1 口作为输出口,定时器实现 1s 定时,实现显示数的 1s 加 1,外部中断 0键盘外接 BUTTON,实现对显示数快速加 1 的控制。(2)系统板上硬件连线把“单片机系统”A2 区的 J61 接口的 P1.0P1.6 端口与 D1 区的 J52 接口相连。把“单片机系统”A2 区的 INT0 端口用
2、导线连接到 D1 区的 KEY1 端口上;三、 实验内容利用定时器中断控制 1s 的输出,使用外部中断 0 使得显示的数加 1.程序如下:#include#define uchar unsigned char#define uint unsigned intvoid delay()uint x,y;for(x=100;x0;x-)for(y=110;y0;y-);uchar m,flag;void main()uchar a,b;TMOD=0x01;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EX0=1; EX1=1; PX1=1; ET0=1; E
3、A=1; 中断开启TR0=1;m=0; P1=0;while(1)while(flag=0); flag=0;if(m=100) m=0;m+;a=m/10;b=m+a*6;P1=b;void timer0() interrupt 1 using 0uchar t;TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(t20) t+;else flag=1; t=0; void exter0() interrupt 0 using 1if(INT0=0) delay();if(INT0=0) flag=1;void exter1() interrupt 2 using 2if(INT1=0) delay();if(INT1=0) m=0;将编译好的程序下载到仿真电路中 四、 小结与体会通过本次定时器中断实验,我对定时器的工作原理有了更加深入的理解,这也是建立在向同学请教的基础上。对于目前的我来说,学习不论过程,只看结果。当然,这次的实验也给了我很多启发,集思广益才是最好的。