请高手指教,定时器出了点问题
下载到单片机时,什么也不显示。不知是什么情况?请高手指教,小妹感激不尽代码:#include<reg52.h>//STC89C52
#define uint unsigned int
#define uchar unsigned char
sbit v1=P1^1;
sbit v3=P1^3;
sbit v5=P1^5;
uint i,j,s;
uchar s1,s2;
uchar k1,k2,k3,k4;
uchar code a[]={0x02,0x9e,0x24,0x0c,0x98,
0x48,0x40,0x1e,0x00,0x08};//0到9
void delay(uint x); //延时
void xunhuan(); //4位数码管显示
void mian()
{
TMOD=0x11; //设置定时器0,定时器1
TH0=(65536-50000)/256; //装初值为12M晶振中断50ms
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1) //扫描4位数码管
{
xunhuan();
}
}
void xunhuan() //四位数码管动态显示
{
P2=0x10; //个位
P0=a;
delay(1);
P0=0xff;
P2=0x20; //十位
P0=a;
delay(1);
P0=0xff;
P2=0x40; //百位
P0=a;
delay(1);
P0=0xff;
P2=0x80; //千位
P0=a;
delay(1);
P0=0xff;
}
void ding1() interrupt 1 //定时器0的工作方式1
{
TH0=(65536-50000)/256;//重装初值
TL0=(65536-50000)%256;
s1++;
if(s1==4)//中断200ms
{
s1=0;
v1=~v1; //位取反
v3=~v3;
v5=~v5;
}
}
void ding2() interrupt 3//定时器1的工作方式3
{
TH1=(65536-50000)/256; //重装初值
TL1=(65536-50000)%256;
s2++;
if(s2==20)//中断1s
{
s2=0;
s++;
if(s==6000) //计数到5999就回到0
{
s=0;
}
k1=s/1000;//千位
k2=s%1000/100; //百位
k3=s%1000%100/10; //十位
k4=s%1000%100%10; //个位
}
}
void delay(uint x) //延时
{
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
有三个警告:*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MIAN?TEXT2
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL:MAIN
MODULE:C:\KEIL\C51\LIB\C51S.LIB (?C_INIT)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL:MAIN 小错误试试这个{:lol:}#include<reg52.h>//STC89C52
#define uint unsigned int
#define uchar unsigned char
sbit v1=P1^1;
sbit v3=P1^3;
sbit v5=P1^5;
uint i,j,s;
uchar s1,s2;
uchar k1,k2,k3,k4;
uchar code a[]={0x02,0x9e,0x24,0x0c,0x98,
0x48,0x40,0x1e,0x00,0x08};//0到9
void delay(uint x); //延时
void xunhuan(); //4位数码管显示
void main()
{
TMOD=0x11; //设置定时器0,定时器1
TH0=(65536-50000)/256; //装初值为12M晶振中断50ms
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1) //扫描4位数码管
{
xunhuan();
}
}
void xunhuan() //四位数码管动态显示
{
P2=0x10; //个位
P0=a;
delay(1);
P0=0xff;
P2=0x20; //十位
P0=a;
delay(1);
P0=0xff;
P2=0x40; //百位
P0=a;
delay(1);
P0=0xff;
P2=0x80; //千位
P0=a;
delay(1);
P0=0xff;
}
void ding1() interrupt 1 //定时器0的工作方式1
{
TH0=(65536-50000)/256;//重装初值
TL0=(65536-50000)%256;
s1++;
if(s1==4)//中断200ms
{
s1=0;
v1=~v1; //位取反
v3=~v3;
v5=~v5;
}
}
void ding2() interrupt 3//定时器1的工作方式3
{
TH1=(65536-50000)/256; //重装初值
TL1=(65536-50000)%256;
s2++;
if(s2==20)//中断1s
{
s2=0;
s++;
if(s==6000) //计数到5999就回到0
{
s=0;
}
k1=s/1000;//千位
k2=s%1000/100; //百位
k3=s%1000%100/10; //十位
k4=s%1000%100%10; //个位
}
}
void delay(uint x) //延时
{
for(i=x;i>0;i--)
for(j=120;j>0;j--);
} dingshidong214 发表于 2012-12-1 18:01 static/image/common/back.gif
小错误试试这个
高手!真的可以了,小妹感激不尽!奇怪了,是什么原因呢?我都看了好几篇了,一样啊 李鸿鸿 发表于 2012-12-1 18:44 static/image/common/back.gif
高手!真的可以了,小妹感激不尽!奇怪了,是什么原因呢?我都看了好几篇了,一样啊 ...
{:lol:} 你再仔细看看 •﹏•我是来看美女的 dingshidong214 发表于 2012-12-1 20:04 static/image/common/back.gif
你再仔细看看
我看了十几次了,都一样啊!{:sweat:} ,什么情况啊 李鸿鸿 发表于 2012-12-2 11:50 static/image/common/back.gif
我看了十几次了,都一样啊! ,什么情况啊
楼主你的main 》 mian了 哎~还说女孩子比较细心。 李鸿鸿 发表于 2012-12-2 11:50 static/image/common/back.gif
我看了十几次了,都一样啊! ,什么情况啊
记忆深刻 永生难忘{:lol:} 女孩子搞单片机,表示崇敬{:handshake:},高单片机之前先学会C语言,搞起来会容易点;支持女孩搞单片机;LZ不错,为什么不用595串口移位芯片,省I/0口,方便 要是男女一起学就动力很大啊,学啥有劲{:titter:} 原来是这样啊!{:tongue:} 多谢大家 我之前搞懂单片机内部硬件,编程遇到很多困难;所以现在在自学C语言程序设计;把这个搞懂了;单片机就自然的会了;LZ学单片机有多久了{:handshake:} 酷爱diy 发表于 2012-12-2 15:44 static/image/common/back.gif
女孩子搞单片机,表示崇敬,高单片机之前先学会C语言,搞起来会容易点;支持女孩搞单片机;LZ ...
不会啊,正在学呢! LZ学了多长时间了?程序写的很好{:lol:}
页:
[1]