文号
t65059
阅读
10268
回复
11
收藏
5
【香皂火箭】最近学51遇到些问题
2014/05/01
IP:山东
本帖最后由 香皂火箭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位数码管,有锁存器.电路图是这样的
QQ截图20140509200306.png
锁存器可以无视吧................
然后下载我就成了这样
DSCI0013.jpg
求回答[s:332] [s:309]
12年8个月前IP:未同步
685824
1楼
问题出在哪啦?~~还没好好看看你们就乱了~
不由自主地唱起来
引用
评论
12年8个月前IP:未同步
685840
2楼
人呢??[s:285][s:318]
引用
评论
12年8个月前IP:未同步
685852
3楼
你把key()函数注释掉,再试试。
引用
评论
12年8个月前IP:未同步
685868
4楼
why1gz 发表于 2014-5-1 21:17
你把key()函数注释掉,再试试。


好的。注释掉后能稳定地显示100三位数,但一加上函数就又乱了。刚刚发现是我把线接反了,现在是就像计时器一样,第一位最慢然后第二位第二块第三位最快
引用
评论
12年8个月前IP:未同步
685886
5楼
按键去抖
引用
评论
12年8个月前IP:未同步
686019
6楼
why1gz 发表于 2014-5-1 23:08
按键去抖


在对按键不进行任何操作时还是在变化。看来不是去不去抖的问题
引用
评论
12年8个月前IP:未同步
686050
7楼
没人么??那我水水[s:7]
引用
评论
11年7个月前IP:广东
769517
8楼
程序里面,你段选位选是哪个?
引用
评论
11年6个月前IP:湖南
773217
9楼
加油
引用
评论
11年6个月前IP:山东
774146
10楼
你看郭天祥的《新概念51单片机》学习就行,他讲的很清楚。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的