我写了个简单的程序,
#include "reg52.h"
mian()
{
P2=0x00;
while(1)
}
这个下载到单片机中,运行的话P2口不会置0;
#include "reg52.h"
mian()
{
P2=0;
while(1)
}
这个下载里面就可以把P2口置0;
为什么?为什么?为什么?为什么?为什么?
球高手给我解释解释,用的是STC89c52rc先谢谢了
忘了,while(1);后面有分号。输入错了;不好意思
求51单片机的程序问题
答案:4 悬赏:10
解决时间 2021-03-14 19:21
- 提问者网友:相思瘸子
- 2021-03-14 09:55
最佳答案
- 二级知识专家网友:浪者不回头
- 2021-03-14 10:06
P2口通常作为数据高8位,但是应该置0的话应该没问题的啊,你确定程序下进去了嘛
全部回答
- 1楼网友:迷人小乖乖
- 2021-03-14 12:22
应该没问题啊
- 2楼网友:一场云烟
- 2021-03-14 11:09
我以2ms为例说明一下: 单片机的晶振周期为12hz,则执行一条代码为一个机器周期,为1微妙(ua),所以2ms=10*200(ua), 对r2赋值200(4位二进制数最大值为256,所以只能取到200)即#c8h。再对r2循环20次就实现了2ms延时。至于100ms、 200ms、 1s等等方法类似,只是调整相应的初值。多设置几次循环就行。 程序代码如下: delay: mov r1,#0ah ;赋值r1为10次 delay1: mov r2,#c8h ;赋值r2为200次 delay2: djnz r2,$ ;r2自减到0,不到0继续等待 djnz r1,delay1 ;r2减到0后r1自减1,重新给r2赋初值后继续循环,直到r1到0为止,延时结束 ret
- 3楼网友:偏爱自由
- 2021-03-14 10:37
不是mian()啊 ,是main() 字母都打错了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯