打印
[国产单片机]

89c51单片机中的问题

[复制链接]
1247|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Kayla9|  楼主 | 2016-6-4 17:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
unsigned int a;
void main ()
{
        while(1)
        {
                a=50000;
                P1=0;
                while(a--);
                a=50000;
                P1=1;
                while(a--);
        }
}          //为什么只有第一个led灯闪烁,其余的led等为什么是全亮而不闪烁?

相关帖子

沙发
i7gly| | 2016-6-4 18:09 | 只看该作者
               a=50000;
                P1=0;
                while(a--);
                a=50000;
                P1=0xff;
                while(a--);

使用特权

评论回复
板凳
Dongfangyuxiao| | 2016-6-4 20:31 | 只看该作者
当初俺也使用51。

使用特权

评论回复
地板
Kayla9|  楼主 | 2016-6-4 21:12 | 只看该作者
i7gly 发表于 2016-6-4 18:09
a=50000;
                P1=0;
                while(a--);

我想请问当P1=1时不是显示为高点频吗?为什么这样写不行?

使用特权

评论回复
5
i7gly| | 2016-6-4 21:19 | 只看该作者
Kayla9 发表于 2016-6-4 21:12
我想请问当P1=1时不是显示为高点频吗?为什么这样写不行?

P1 = 1,只置位了P10,P11~P17为低电平.
写成P1 = 0xff;就全部为高电平,
具体自己去理解.

使用特权

评论回复
6
Kayla9|  楼主 | 2016-6-4 21:30 | 只看该作者
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay();
void main()
{
        while(1)
        {
        P1=0xaa;
        delay(500);
        P1=0x05;
        delay(500);
        }
}
void delay(uint z)
{
        uint x,y;
        for(x=100;x>0;x--)
                for(y=z;y>0;y--);
}   //非常感谢哦,请问你能告诉我这个是为什么吗?

使用特权

评论回复
7
Kayla9|  楼主 | 2016-6-5 15:35 | 只看该作者

我刚学,什么都不会!

使用特权

评论回复
8
丿沙漏丨| | 2016-6-5 17:20 | 只看该作者
是不是你的电路接线问题

使用特权

评论回复
9
Kayla9|  楼主 | 2016-6-6 20:17 | 只看该作者
丿沙漏丨 发表于 2016-6-5 17:20
是不是你的电路接线问题

不是是程序有问题!

使用特权

评论回复
10
刃影| | 2016-6-15 13:29 | 只看该作者
你把延时程序里的两个for函数换一下位置试试,你这样写每次执行y=z,会死循环的

使用特权

评论回复
11
依依不舍| | 2016-6-23 20:13 | 只看该作者
Kayla9 发表于 2016-6-4 21:12
我想请问当P1=1时不是显示为高点频吗?为什么这样写不行?

P1=1这样的写法是不规范的,应该写成P1=0x01,也就是二进制0000 0001B。只有P1.0为高电平。而0xff是1111 1111B,表示P1口全部为1。

使用特权

评论回复
12
Displky| | 2016-7-26 08:59 | 只看该作者
I/o口的用法不对啊,P1=0x00是全亮,0xff是全灭

使用特权

评论回复
13
shisizai| | 2016-7-27 21:53 | 只看该作者
单片机IO口幅值是按位幅值的  一共8位,一般用十六进制表示
学单片机 你可以看看51的寄存器 和 头文件里面的宏定义  好多东西就明白了

使用特权

评论回复
14
shisizai| | 2016-7-27 21:55 | 只看该作者
Displky 发表于 2016-7-26 08:59
I/o口的用法不对啊,P1=0x00是全亮,0xff是全灭

这个得看电路了 有的是低电平灭 有的的高电平灭

使用特权

评论回复
15
coody| | 2016-7-27 22:42 | 只看该作者
基础!基础!基础!重要的话要说三遍。

使用特权

评论回复
16
w1a2n3g4| | 2016-8-3 16:09 | 只看该作者
基础

使用特权

评论回复
17
woshixuhao01| | 2016-8-3 16:10 | 只看该作者
66666666666666

使用特权

评论回复
18
Kayla9|  楼主 | 2016-8-4 10:01 | 只看该作者

看来你和我是同一水平哦!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

18

帖子

1

粉丝