中易网

单片机程序 为什么闪烁时间比延时时间长了 程序就出错? 程序如下:

答案:2  悬赏:0  
解决时间 2021-03-21 23:29
while(1)
{
DataPort=WeiMa[i]; //取位码
LATCH2=1; //位锁存
LATCH2=0;
if(Flag) //判断是否是闪烁标志?
DataPort=DuanMa[i]; //取显示数据,
//段码正常显示
else
DataPort=0; //不显示
LATCH1=1; //段锁存
LATCH1=0;
Delay(200); //扫描间隙延时,时间太长会闪
//烁,太短会造成重影
i++;
if(8==i) //检测8位扫描完全结束?如扫描
//完成则从第一个开始再次扫描8位
i=0;
j++;
if(200==j) //延时闪烁时间
{
j=0;
Flag=!Flag;
}
最佳答案
仅供参考:

while(1) {
i = 0;
if(Flag) //判断是否是闪烁标志?
for (k = 0; k < 100; k++) {
DataPort = WeiMa[i]; LATCH2 = 1; LATCH2 = 0; //取位码 //位锁存
DataPort = DuanMa[i]; LATCH1 = 1; LATCH1 = 0; //取显示数据,//段锁存
Delay(20); //扫描间隙延时,时间太长会闪
i++;
if(i >= 8) i = 0; //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位
}
else
for (k = 0; k < 100; k++) {
DataPort = WeiMa[i]; LATCH2 = 1; LATCH2 = 0; //取位码 //位锁存
DataPort = 0 ; LATCH1 = 1; LATCH1 = 0; //不显示 //段锁存
Delay(20); //扫描间隙延时,时间太长会闪
i++;
if(i >= 8) i = 0; //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位
}
j++;
if(j >= 20) { //延时闪烁时间
j = 0;
Flag = !Flag;
}
}
全部回答
首先你的程序有这么几处错误、1)你定义p2=p2^1时应该在前面加上位定义指令sbit 2)你定义的无符号整型数unsigned int a;其中a的取值范围是 0~65535,而你的a=1000000;肯定是不对的。 如果你想控制多脚的话,可以对一个i/o直接赋值啊,比如让p0=0xff就是让p0的八个引脚全部为高电平,让p0=0x00就是让p0的八个引脚全部为低电平 看来你是对单片机刚刚入手吧,可以先多看看资料,再从编一些简单的小程序入手
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我现在的位置是在广州市白云区庆丰,,请问坐
ipodclassic连接电脑没反应是怎么回事
99年,为何这个年纪会有这么多顾虑?
广东江门新会户籍登记机关在哪里?
土耳其旅游大概需要多少钱?
在CAD2010中如何将图导成eps格式?具体的步骤
难道技术销售工程师就是打电话销售?
华为荣耀畅玩4×全网通金色为什么卡机
右手的生命线和健康线连在一起还是川子掌吗
309美甲店地址在什么地方,想过去办事
婴儿出生要不要戴帽子?婆婆说一定要戴的,但
女生,一个漂亮但身材不好,一个身材很好但长
为啥华为p6手机用茄子快传传文件找不到好友
合众人寿保险保险五年 存一万二能分到多少红
三星手机故障及维修地点
推荐资讯
陕西省的贫困地区的人都靠什么生活
佛像的挂坠佩戴有什么注意的啊,我带的是观音,
"茶马古道"翻译成英文是什么?
浊酒一杯思淑子,隐忍苦痛迎孺子是什么意思
我是个学生 现在微信里找个兼职 请问有没有推
衢州那家手机店能修iPhone4激活ID?多少钱?
请问使用苹果笔记本连接电视机需要哪些设备?
古代埃及人最早使用的文字是 A.象形文字
河北燕郊开蛋糕加盟店能赚钱吗??
想知道: 北京市 北京梧桐心餐饮有限公司 在哪
现在的买的车保险是不是只能报销百分之八十啊
(x 3)的平方等于39 x等于
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?