P2=0
P1=display_code[display_data[i]]
P2=k
k=k>>1
不懂。
不过感觉问题不大。先把main里的i的上限从250改到216.
在display()里做3个判断(可能会要做个全局变量,或者加个参数,记录当前是多少。)
判断是否是0,大于10,大于100
另外,站长团上有产品团购,便宜有保证
7SEG-COM-CATHODE 为共阴管
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar num=60,shi,ge
uchar code TAB[]={
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
}
void T0INTinit()
{
TMOD=0x01
TH0=(65536-50000)/256
TL0=(65536-50000)%256
EA=1
ET0=1
TR0=1
}
void main()
{
T0INTinit()
while(1)
{
shi=num/10
ge=num%10
P0=TAB[shi]
P2=TAB[ge]
}
}
void T0INT() interrupt 1
{
uchar i
TH0=(65536-50000)/256
TL0=(65536-50000)%256
i++
if(i==20)
{
i=0
num--
if(num==0)
num=60
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)