标题:
设计24小时制定时器,下面是参考程序,但是秒和时位置反了,请问怎么改啊?
[打印本页]
作者:
hopeeeee
时间:
2021-6-2 21:46
标题:
设计24小时制定时器,下面是参考程序,但是秒和时位置反了,请问怎么改啊?
#include <reg52.h>
#include <delay.h>
int mypow(int x, int y);
void num_check(void);
code unsigned int segment_data[11]={ 0x3f,0x06,0x5b,0x4F,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x40};
code unsigned int ROW[8]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c};
unsigned int num[8];
unsigned char i,a=0,j;
void main()
{
TMOD=0x10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET1=1;
TR1=1;
num[2]=10;num[5]=10;
while(1)
{
if(a>=20) num_check();
for(j=0;j<=7;j++)
{
P2=~ROW[j];
P0=0;
P0=segment_data[num[j]];
delay(1);
}
}
}
void num_check(void)
{
if(a>=20){a=0;num[0]++;};
if(num[0]>=10){num[0]=0;num[1]++;};
if(num[1]>=6){num[1]=0;num[3]++;};
if(num[3]>=10){num[3]=0;num[4]++;};
if(num[4]>=6){num[4]=0;num[6]++;};
if(num[6]>=10){num[6]=0;num[7]++;};
if(num[7]>=3){num[7]=0;};
if((num[7]==2)&&(num[6]==4)){num[6]=0;num[7]=0;};
}
void TIME1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
a++;
}
作者:
飞云居士
时间:
2021-6-8 18:29
应该是内存大小端的问题。即高字节与低字节整反了
作者:
老董
时间:
2021-6-8 19:23
你连接P2的的数码管是用什么元件驱动的
作者:
无心法师III
时间:
2021-6-8 20:12
秒和时的位置反了,我觉的可能有这几种情况:1.写程序过程中,定义秒和时给定义反了,在要用秒这个变量的时候用了时这个变量,在要用时这个变量的时候用了秒这个变量;2.仿真或实际接线时,对应秒和时的数码管给接反了
作者:
xianfajushi
时间:
2021-6-9 09:01
可参
http://www.51hei.com/bbs/dpj-207097-1.html
动静皆宜
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1