单片机原理及其应用技术课程设计任务书

来源:百度知道 编辑:UC知道 时间:2024/06/05 00:56:32
课程设计题目:计时器设计
课程设计要求:用AT89C51单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加一,秒计数到60时,自动从0开始。单片机晶振频率为12MHZ。
要源程序,谢谢~~~

因为是才申请的号,平时不用这东西,所以分有点少 帮个忙````急用
不要C程序。 要汇编语言~~~~~谢谢

随便翻一本单片机的书都会有这个秒中断的例子,毛主席教导过我们,自己动手,丰衣足食。

/*硬件调试通过,你只需将端口稍作修改即可*/
#include <reg51.H>
sbit wx=P2^7;
#define uchar unsigned char
uchar second;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9

void display(uchar x,y) //第1 个形参设定延时单位时间,第2 个形参设定延时总时间
{
uchar a,b,c;
for(a=x;a!=0;a--)
{
wx=1;
P0=0x20; //点亮第一个数码管
wx=0;
P0=table[y%10]; //显示个位数
for(b=10;b!=0;b--) //延时5ms
for(c=248;c!=0;c--);

wx=1;
P0=0x10;//点亮第二个数码管
wx=0;
P0=table[y/10]; //显示十位数
for(b=10;b!=0;b--) //延时5ms
for(c=248;c!=0;c--);

}
}

void main()
{
while(1)
{
display(100,second);//设为100 是因为完成一个完整的的扫描要近10ms,要延时1s 则1/0.01=100
second++;
if(second==60)
{
second=0;
}
}
}