1.实验目的及要求
1、熟悉proteus仿真软件,掌握单片机原理图的绘图方法;
2、掌握定时器/计数器原理,学会使用中断方式进行定时器程序设计;
3、区分定时器中中断方式与查询方式的区别。
实验要求:
1.能够正确绘制proteus原理图;
2.用定时器0实现电子秒表的预期功能;
3.使用两种编程方式得到预期功能:(1)中断控制方式;(2)查询方式;
2.实验原理
电子秒表显示器电路原理图。图中两位七段共阴极数码管分别外接于P0口和P2口,此外P0口还外接7只上拉电阻,为简化图形,改用电阻排RP1代替。此外,还包括时钟电路和复位电路。
3.实验内容
点击仿真软件开始时,数码管开始计秒显示0~60。当显示达到60后再次按压按键,显示值将从0重新开始,以此无限循环。
4.实验代码
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code suzi[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0;
uchar miao=0;
void init()
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
}
void timer0 (void) interrupt 1
{
TR0=0;
TH0=0x3c;
TL0=0xb0;
if (++time==20)
{ time=0;
miao++;
if (miao==61) miao=0;
}
else
{ P2=suzi[miao%10];
P0=suzi[miao/10];
}
TR0=1;
}
void main()
{
init();
while (1);
}