51单片机制作的电子时钟的proteus仿真

  • 格式:docx
  • 大小:69.18 KB
  • 文档页数:5

通过proteus仿真51单片机制作的电子钟
----------by lyz
这是一个利用proteus仿真简易电子钟的例子,通过c51单片机和一块1602液晶显示屏来工作,十分简单,这样的实践是初学者不错的练习。

第一步:
首先,点开isis.exe(切记不是ARES.EXE),如图1通过proteus把原理图布好。

单片机可以选用AT89c51,液晶显示可通过搜索关键字LM016L得到。

由于本电路选用P0口,因此加上了RP1排阻作为上拉电阻。

图1
第二步:
编写程序如下,时间略有误差(us级),可通过keil中的debug调试地更为精确:#include<reg52.h>
typedef unsigned char uchar;
typedef unsignedintuint;
sbitrs=P3^2;
sbitwr=P3^3;
sbitlcden=P3^4;
uchartimecount=0;
void delay(uinti)
{
uinta,b;
for(a=i;a>0;a--)
for(b=10;b>0;b--);
}
/********************1602*****************/ voidwrite_com(uchar com)
{
P0=com;
rs=0;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
voidwrite_date(uchar date)
{
P0=date;
rs=1;
lcden=0;
delay(10);
lcden=1;
delay(10);
lcden=0;
}
voidinit()
{
wr=0;
write_com(0x38);
delay(20);
write_com(0x0f);
delay(20);
write_com(0x06);
delay(20);
write_com(0x01);
delay(20);
}
/*********************************************************
主函数
**********************************************************/
void main()
{
uchara,second=0,minute=0,hour=0;
uchar table[8];
TMOD|=0x01; //定时/计数器0工作于定时器模式,方式1
TH0=(65536-5000)/256;
TL0=(65536-5000)%256; //50ms定时常数
EA=1; //开总中断
ET0=1; //允许定时/计数器0 中断
TR0=1; //启动定时/计数器0 中断
P0=0;
P2&=0x1F;
init();
while(1)
{
if(timecount>19) //*****20乘50为1000ms {
timecount=0;
second++;
}
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
table[0]=hour/10+48; //***数字加上48对应的它的ascll码,用来显示在液晶上
table[1]=hour%10+48;
table[2]=58; //***58对应冒号
table[3]=minute/10+48;
table[4]=minute%10+48;
table[5]=0;
table[6]=second/10+48;
table[7]=second%10+48;
write_com(0x80);
delay(20);
for(a=0;a<8;a++)
{
write_date(table[a]);
delay(20);
}
}
}
/*********************************************************
中断服务函数
**********************************************************/
void Time0(void) interrupt 1 // using 0
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256; //50ms定时常数
timecount++;
}
/*********************************************************/
第三步:
双击电路图中的单片机,如下添加hex文件。

在里面添加进去通
过keil生成的hex
文件
第四步:
通过右下角的按钮控制单片机的工作,仿真开始
结果如下:
Let’s make things much more better!。