程序做好之后运行就这样了,有什么解决方法吗?
以下是程序:
#include<reg51.h>
#include<intrins.h> //包含库文件
sbit smg1=P3^0; //定义南北方向数码管低位
sbit smg2=P3^1; //定义南北方向数码管高位
sbit SN_green=P2^0; //定义南北向绿灯端口
sbit SN_red=P2^1; //定义南北向红灯端口
sbit SN_yellow=P2^2; //定义南北向黄灯端口
sbit EW_green=P1^0; //定义东西向绿灯端口
sbit EW_red=P1^1; //定义东西向红灯端口
sbit EW_yellow=P1^2; //定义东西向黄灯端口
sbit k1=P3^5;
sbit k2=P3^6;
sbit k3=P3^7;
int js=0,djs=30; //初始倒计时时间
int table[lbk][rbk]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40}; //共阴极数码管段值
/************以下为函数声明*************/
void jtd();
void jtda();
void jtdb();
void djsxs();
void jtday();
void jtdby();
void key();
/*****************************************************/
/* 函数名:delayms */
/* 功能:产生毫秒级延时 */
/*****************************************************/
void delayms(int x)
{
char i;
while(x--)
{
for(i=150;i>0;i--);
}
}
/*****************************************************/
/* 函数名:Timer0_init() */
/* 功能:定时器0初始化 */
/*****************************************************/
void Timer0_init()
{
js=0;
TMOD=0x01; //定义定时器0工作模式
TH0=0x3c;//赋初值高位
TL0=0xb0;//赋初值低位
TR0=1;//启动定时器
ET0=1;//开中断
EA=1;//开全局中断
}
/*****************************************************/
/* 函数名:timer0() interrupt 1 using 1 */
/* 功能:定时器0中断服务函数 */
/*****************************************************/
void timer0() interrupt 1 using 1
{
TF0=0;
TH0=0x3c;
TL0=0xb0; //重新赋高地位初值
js++;
if(js==20)
{ js=0;
djs--;
}
}
/*****************************************************/
/* 函数名:djsxs() */
/* 功能:数码管动态显示 */
/*****************************************************/
void djsxs() //此 函数注视同djsxs()
{int b1,b2;
b1=djs/10; //将倒计时时间的高位赋予b1
b2=djs%10; //将倒计时时间的低位赋予b2
P0=table[lbk]b1[rbk];
smg1=0;
delayms(3);
smg1=1; //显示b1
以下是程序:
#include<reg51.h>
#include<intrins.h> //包含库文件
sbit smg1=P3^0; //定义南北方向数码管低位
sbit smg2=P3^1; //定义南北方向数码管高位
sbit SN_green=P2^0; //定义南北向绿灯端口
sbit SN_red=P2^1; //定义南北向红灯端口
sbit SN_yellow=P2^2; //定义南北向黄灯端口
sbit EW_green=P1^0; //定义东西向绿灯端口
sbit EW_red=P1^1; //定义东西向红灯端口
sbit EW_yellow=P1^2; //定义东西向黄灯端口
sbit k1=P3^5;
sbit k2=P3^6;
sbit k3=P3^7;
int js=0,djs=30; //初始倒计时时间
int table[lbk][rbk]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40}; //共阴极数码管段值
/************以下为函数声明*************/
void jtd();
void jtda();
void jtdb();
void djsxs();
void jtday();
void jtdby();
void key();
/*****************************************************/
/* 函数名:delayms */
/* 功能:产生毫秒级延时 */
/*****************************************************/
void delayms(int x)
{
char i;
while(x--)
{
for(i=150;i>0;i--);
}
}
/*****************************************************/
/* 函数名:Timer0_init() */
/* 功能:定时器0初始化 */
/*****************************************************/
void Timer0_init()
{
js=0;
TMOD=0x01; //定义定时器0工作模式
TH0=0x3c;//赋初值高位
TL0=0xb0;//赋初值低位
TR0=1;//启动定时器
ET0=1;//开中断
EA=1;//开全局中断
}
/*****************************************************/
/* 函数名:timer0() interrupt 1 using 1 */
/* 功能:定时器0中断服务函数 */
/*****************************************************/
void timer0() interrupt 1 using 1
{
TF0=0;
TH0=0x3c;
TL0=0xb0; //重新赋高地位初值
js++;
if(js==20)
{ js=0;
djs--;
}
}
/*****************************************************/
/* 函数名:djsxs() */
/* 功能:数码管动态显示 */
/*****************************************************/
void djsxs() //此 函数注视同djsxs()
{int b1,b2;
b1=djs/10; //将倒计时时间的高位赋予b1
b2=djs%10; //将倒计时时间的低位赋予b2
P0=table[lbk]b1[rbk];
smg1=0;
delayms(3);
smg1=1; //显示b1