找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1609|回复: 0
收起左侧

利用单片机和8155设计时钟,有谁会么,求仿真图

[复制链接]
ID:460237 发表于 2019-1-2 17:15 | 显示全部楼层 |阅读模式
利用单片机和8155设计时钟,有谁会么,程序对么????怎么画仿真图
#include <reg51.h>
#define char unsigned char
char code dis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0xb2,0xf8,0x80,0x90,0xff,0xbf};
char code scan_con[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
char data dis[8]={0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00};
char data timedata[3]={0x00,0x00,0x00};
char data ms50=0x00,con=0x00,con1=0x00,con2=0x00;

sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;

//1ms延时函数
delay1ms(int t)
{
int i,j;
for (i=0;i<t;i++)
for(j=0;j<120;j++)
;
}

//按键处理函数
keyscan()
{
EA=0;
if (key0==0)
{
delay1ms(10);
while (key0==0);
con++;TR0=0;ET0=0;
if (con>=3)
{con=0;TR0=1;ET0=1;}
}
if (con!=0)
{
if (key1==0)
{
delay1ms(10);
while (key1==0);
timedata[con]++;
if (con==2) con2=24;else con1=60;
if (timedata[con]>=con1)
{timedata[con]=0;}
}
}
if (con!=0)
{
if (key2==0)
{
delay1ms(10);
while (key2==0);
timedata[con]--;
if (con==2) con2=23;else con1=59;
if (timedata[con]<=0)
{timedata[con]=con2;}
}
}
EA=1;
}

//数码管显示函数
scan()
{
char k;
dis [0]=timedata[0]%10;dis[1]=timedata[0]/10;
dis [3]=timedata[1]%10;dis[4]=timedata[1]/10;
dis [6]=timedata[2]%10;dis[7]=timedata[2]/10;
for (k=0;k<8;k++)
{
P0=dis_7[dis[k]];P2=scan_con[k];delay1ms(1);P2=0xff;

}

}

//主函数
main()
{
TH0=0x3c;TL0=0xb0;
TMOD=0x01;ET0=1;TR0=1;EA=1;
while (1)
{
scan();
keyscan();
}
}

//定时器/计数器T0中断服务函数
void time_intt0(void) interrupt 1
{
ET0=0;TR0=0;TH0=0x3c;TL0=0xb0;TR0=1;
ms50++;
if (ms50==20)
{
ms50=0x00;timedata[0]++;
if (timedata[0]==60)
{
timedata[0]=0;timedata[1]++;
if (timedata[1]==60)
{
timedata[1]=0;timedata[2]++;
if (timedata[2]==24)
{
timedata[2]=0;
}
}
}
}
ET0=1;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表