本人网上找的程序,还是写不了
#include <reg52.h>
#include<hong.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit RUN=P1^4;
uint t,n,c;
uchar high,low,w;
uchar SData0,SData1;
void display();
bit t_sign=0;
uchar i,j;
uint d[5];
uchar code led[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极数码管10个数字的七段代码表.
//==============================================
//通用延时子程序
void delay(unsigned int n)
{
unsigned int i;
for(i=0;i<n;i++); //65536*2*0.54253472uS=71111us(71ms)
} //6*8*200=9600;
void T0_Initial(void)
{
TMOD|=0x0d;
TH0=0; //门控的16位计数器.
TL0=0;
ET0=1;
EA=1;
}
//==============================================
char code DX516[3] _at_ 0x3b;
void main(void)
{
RUN=1;
IT0=1; //外部中断负跳变触发;
EX0=1; //开外部中断0;
TR0=1; //开定时器0;
EA=1;
T0_Initial();
while(1)
{
display();
if (t_sign)
{
uint temp;
temp=SData1; //高8位放入temp
temp<<=8; //左移8位,进入高8位
temp+=SData0; //低8位放入temp
temp-=10001; //减掉正向积分期间的10001个计数值.
t=temp; //赋值到t
// t=temp();
d[4]=t/10000;
d[3]=(t%10000)/1000;
d[2]=(t%1000)/100;
d[1]=(t%100)/100;
d[0]=(t%10);
P2=0xff;
P0=0xff;
for (i=0;i<50;i++)
{
{
for(j=0;j<5;j++)
if(j==2)
P0=led[d[j]]&0x7f;
else
P0=led[d[j]];
P2=pos[j];
delay(500);
}
}
P2=0xff; P0=0xff;
t_sign=0;
}
//else {RUN=0; RUN=1;delay(500);RUN=0; };//t=temp();//
//delay(35000);
}
}
Int0 () interrupt 0 using 1
{
SData0=TL0;
SData1=TH0; //读取转换数据
TL0=0; //关闭定时器0,并清除;
TH0=0;
t_sign=1;
}
void display()
{
seg1=led[d[0]];
delay(20);
seg2=led[d[1]];
delay(20);
seg3=led[d[2]];
delay(20);
seg4=led[d[3]];
delay(20);
seg5=led[d[4]];
delay(20);
}
//这是宏定义
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define off 0xff
//这是键盘的地址宏定义
#define key1 XBYTE[0X9F80]
#define key2 XBYTE[0X9F40]
#define key3 XBYTE[0X9F20]
#define key4 XBYTE[0X9F10]
#define key5 XBYTE[0X9F08]
#define key6 XBYTE[0X9F04]
#define key7 XBYTE[0X9F02]
#define key8 XBYTE[0X9F01]
//这是数码管的宏定义?
#define seg1 XBYTE[0X9F01]
#define seg2 XBYTE[0X9F02]
#define seg3 XBYTE[0X9F04]
#define seg4 XBYTE[0X9F08]
#define seg5 XBYTE[0X9F10]
#define seg6 XBYTE[0X9F20]
#define seg7 XBYTE[0X9F40]
#define seg8 XBYTE[0X9F80]
|