一、实验名称 定时、计数器实验 二、实验目的及要求 1.掌握 51 单片机的定时/计数器工作原理。 2.编程实现定时和计数功能的控制。 三、实验主要仪器设备 PC机 单片机有 2 个 16 位的定时器/计数器,分别是 T0 和 T1。它们有两种工作状态,可以工作在定时方式和计数方式;定时是对内部的机器周期进行加法计数,计数是对外部输入的计数脉冲进行加法计数,T0 的外部计数脉冲从 P3.4 引脚输入,T1 的外部计数脉冲从 P3.5 引脚输入;计数满产生溢出,硬件使定时器/计数器 T0、T1 的中断请求标志 TF0、TF1 置位;如果定时器、计数器允许中断,则可以采用中断方式进行溢出处理,而如果定时器/计数器不允许中断,则可以采用查询方式进行溢出处理。 1.定时中断方式 2.计数器的应用 3.方波 4.蜂鸣器 六、实验步骤 - 在Keil uVision3中编译链接生成点阵.hex文件
源代码如下: #include<reg51.h> char i=100; void main(){ TMOD=0x01; TH0=0xee; TL0=0x00; P1=0x00; EA=1; ET0=1; TR0=1; while(1); { ;} } void time0() interrupt 1{ TH0=0xee; TL0=0x00; i--; if(i<=0){ P1=~P1; i=100; } } - 在Keil uVision3中编译链接生成点阵.hex文件
源代码如下: #include<reg51.h> #define uchar unsigned char #define uint unsigned int void delay(uint i){ uint j; for(;i>0;i--) ; } void main(){ TMOD=0X50; TH1=0XFF; TL1=0XFC; EA=1; ET1=1; TR1=1; while(1) ; } void T1_int(void) interrupt 3{ for(;;){ P1=0XFF; delay(500); P1=0; delay(500); } }
|