本帖最后由 香皂火箭q 于 2014-5-1 20:11 编辑 话说好久没来科创了
以前玩火箭,但最近搞起了51,买了块开发板。但出现了些问题,
求解
先上程序:
#include<reg52.h> //头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
uchar num,shi,ge,bai; //定义变量
sbit key1=P3^0;
sbit key2=P3^1; //位定义
sbit key3=P3^2;
sbit key4=P3^3;
sbit key5=P3^4;
sbit key6=P3^5;
sbit key7=P3^6;
sbit key8=P3^7;
sbit baiwei=P1^0;
sbit shiwei=P1^1;
sbit gewei=P1^2;
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管字符表{从0-9}
void delay(uint z); //延时程序(1代表1毫秒)
void key(); //声明按键子程序
void xianshi(); //声明百十个位分解子程序
void main() //主程序
{
num=100; //定义变量
while(1)
{
xianshi(); //显示百位然后清零
P2=table[bai];
baiwei=0;
delay(10);
baiwei=1;
P2=0x00;
P2=table[shi]; //显示十位
shiwei=0;
delay(10);
shiwei=1;
P2=0x00;
P2=table[ge]; //显示个位
gewei=0;
delay(10);
gewei=1;
P2=0x00;
key(); //检测按键
}
}
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void xianshi() //百十个位分离子程序
{
bai=num/100;
shi=num%100/10;
ge=num%10;
}
void key() //按键子程序
{
P3=0xff;
if(key1==0)
{ num=num-1;}
if(key2==0)
{ num=num-2;}
if(key3==0)
{ num=num-3;}
if(key4==0)
{ num=num-4;}
if(key5==0)
{ num=num-5;}
if(key6==0)
{ num=num-6;}
if(key7==0)
{ num=num-7;}
if(key8==0)
{ num=num-8;}
}
嗯......就这样我出现了一些问题.keil编译没错误,我开发板上用的是8位数码管,有锁存器.电路图是这样的
锁存器可以无视吧................
然后下载我就成了这样
求回答[s:332] [s:309]
200字以内,仅用于支线交流,主线讨论请采用回复功能。