实验3 定时器中断实验
一、 实验目的
掌握MCS-51定时器的使用方法
二、 实验设备
AT89c51基本实验单元、计算机设备系统
三、 实验原理
(一) 实验说明
(1) 利用定时器中断方式,做一个显示0~9的秒钟。
(2) 利用定时器中断方式,做一个显示00~99的秒钟,每一秒增加1.
(二) 程序流程图
(i )
(ii )
(三) 参考程序
内容(1):只需要将内容2的代码中十位显示那一部分删除,并令D24=0即可。
内容(2):
#include
unsigned char sum1=0,sum2=0;
sbit D24=P2^4;
sbit D25=P2^5;
static unsigned char t;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int);
void main()
{
TMOD=0x10;
TL1=0xf0;
TH1=0xd8;
EA=1;
ET1=1;
TR1=1;
while(1)
{
P0=0xff;
D24=1;
D25=0;
P0=table[sum2]; //十位
delay(50);
P0=0xff;
D24=0;
D25=1;
P0=table[sum1]; //个位
delay(50);
}
}
void delay(unsigned int m)
{
unsigned int i,j;
for(i=0;i for(j=0;j<110;j++) {;} } void timer0() interrupt 3 { TL1=0xf0; TH1=0xd8; t++; if(t==100) { t=0; sum1++; if(sum1>9) { sum1=0; sum2++; if(sum2>9) sum2=0; } } } 四、实验步骤: 1.根据实验原理图编写程序,用“Keil uVision4”编译软件进行编译,如未通过,修改 程序,直至通过。 2.用STC-ISP.EXE软件将所编程序的“hex”码下载到试验板子的STC89C52芯片 中。 3.运行程序,观察实验板上LED数码管是否是每个1秒出现0~9的显示变化。如果不 符合要求,修改程序,按照步骤1开始重新做实验,直至成功。 4.按同样的方法调试编写实验内容2中的程序,直至调试成功。 五、思考题 写出用LED完成实验内容2的程序,并进行调试。 代码见前面参考程序 六、实验原理图