隔一秒依次点亮八个共阳极四位数码管定时器程序,点亮的保持不变,用定时器。我写的程序哪里有问题?

&&&&单片机c语言源程序(51定时器
八个按键控制八个LED
单按键控制数码管加1
点亮P0口所有LED
流水灯暗点流动
流水灯亮点流动 闪烁P0口所有LED
数码管动态扫描加1
数码管动态扫描显示
数组流水灯
双按键控制数码管加减1)
&单片机c语言源程序(51定时器
八个按键控制八个LED
单按键控制数码管加1
点亮P0口所有LED
流水灯暗点流动
流水灯亮点流动 闪烁P0口所有LED
数码管动态扫描加1
数码管动态扫描显示
数组流水灯
双按键控制数码管加减1)
八个按键控制八个LED
单按键控制数码管加1
点亮P0口所有LED
流水灯暗点流动
流水灯亮点流动 闪烁P0口所有LED
数码管动态扫描加1
数码管动态扫描显示
数组流水灯
双按键控制数码管加减1
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
单片机c语言源程序(51定时器
八个按键控制八个LED
单按键控制数码管加1
点亮P0口所有LED
流水灯暗点流动
流水灯亮点流动 闪烁P0口所有LED
数码管动态扫描加1
数码管动态扫描显示
数组流水灯
双按键控制数码管加减1)
所需积分:1
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
单片机c语言源程序(51定时器
八个按键控制八个LED
单按键控制数码管加1
点亮P0口所有LED
流水灯暗点流动
流水灯亮点流动 闪烁P0口所有LED
数码管动态扫描加1
数码管动态扫描显示
数组流水灯
双按键控制数码管加减1)
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员利用单片机、1个开关、8个LED发光二极管(水平排列)和定时器,实现开关控制循环右移流水灯效果要求:(1)开关合上时,8个LED从左到右以1秒间隔依次点亮(即任一时刻只能有1个LED亮),如此循环;(2)开关断开时,所有LED全部点亮.
█★暧昧★█涅
代码不想写,说说思路吧:单片机每秒采集一次开关状态,断开设变量F为0,否则为1.用P0口联8个LED,置P0为,循环每秒检测"F"的值,如为1,循环左移一位;如为0,置P0为0.
求大神代为写下汇编程序吧!急用!谢谢了!
为您推荐:
其他类似问题
扫描下载二维码跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从左向右移动,时间间隔0.5秒。 最好加上_百度知道
跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从左向右移动,时间间隔0.5秒。 最好加上
好人一生平安:8只发光二极管依次点亮.5秒,从左向右移动,急用,时间间隔0。 最好加上注释每一步在做什么跪求单片机c51用汇编语言写的程序,功能为
*****************************************************************************************
DELAY;*****************************************************************************************LED_CTRL
P1:DELAY;*****************************************************************************************
R6;返回;参数;说明.4
程序开始START;左移发光管显示码
说明;程序首地址 PC=0000H
发光管显示有效
A;发光管控制引脚(0:无效)LED_STATUS
*****************************************************************************************:
R6:程序开始 :
LED_STATUS, #0FFHDELAY_1;循环, A
: 无,1: 无;发光管L1至L8状态引脚(0;程序跳转至START PC=0030H
:程序延时 ,1:无效);说明;*****************************************************************************************
;发光管显示码送发光管状态引脚
说明, DELAY_1
RET, #0FEH
LED_CTRL*****************************************************************************************
:有效:程序预定义 ;*****************************************************************************************;发光管显示码初始值
L1;*****************************************************************************************
:程序结束 :有效
其他类似问题
为您推荐:
发光二极管的相关知识
其他2条回答
while(--n)
delay_nus(900),同时进行补偿}
void main(){/#include &
P1=~0x20#include&
P1=~0x04;intrins,一端连电阻再连5v;iostream&//0.h&/i&
delay_nms(500);
P1=~0x80,下面依次是P1_1到P1_7(电路连接时二极管一端连P1_0; void delay_nms(unsigned int n)
/P1_0所接二极管亮;/
&#47,低电平的时候亮;i--)
P1=~0x01;延时 1 while(1) {
P1=~0x10;延时n ms{
n=n+1;/延时0,因此加取反“~”)
兄弟用C语言不行吗,那样更方便吧
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁后使用快捷导航没有帐号?
查看: 5855|回复: 7
基础的LED灯和数码管同时点亮的问题
在线时间49 小时
威望291 分
芯币279 枚
TA的帖子TA的资源
一粒金砂(高级), 积分 291, 距离下一级还需 209 积分
一粒金砂(高级), 积分 291, 距离下一级还需 209 积分
如题,我在练习的时候遇到了一个可能比较基本的问题:不通过定时器,只写一个delay函数来实现LED灯的闪烁和数码管的点亮。
我自己用这种方式写的(8个LED闪烁,点亮2个数码管),无法实现上述功能。LED能闪烁,但是两位数码管中的第一位不能稳定显示,第一位数码管是在闪烁,和LED灯的闪烁频率差不多一致。如果只点亮一个数码管,在下面的程序中删掉一个点亮数码管的程序后,剩下的1个数码管能够正常点亮(不闪烁),如果增加点亮数码管的数量至6个,前5个数码管是闪烁着显示的,频率与LED灯差不多,最后一个数码管正常显示。
我想问问产生这种现象的原因是什么,还有如何只用一个delay函数,不用定时器,来完成这样的功能。
&#include&reg52.h&
sbit dula=P2^6;
sbit wela=P2^7;
void delay(unsigned int z) //延时程序
{ unsigned int x,y;
for(x=z;x&0;x--)
for(y=110;y&0;y--); }
&void main()
P0=0&&&&&& //点亮第一个数码管,显示0
wela=1;&&&&&&&&&&&& //点亮第二个数码管,显示0
delay(100);&&&&&& //LED灯闪烁
用的是共阴极数码管,郭天祥教程的板子。我自己分析了这个程序,按理说应该两个数码管都是闪烁的状态,但是板子上的结果是第一个闪烁,第二个稳定显示.....
[ 本帖最后由 qrswll 于
16:40 编辑 ]
在线时间1082 小时
威望11118 分
芯币18998 枚
E金币179 枚
TA的帖子TA的资源
用delay肯定不合适,因为你把时间都浪费到了delay里面,数码管显示当然就不能稳定了,闪烁和稳定是个矛盾,要CPU同时完成用delay不好吧。当然这样的要求是可以满足的,那就是你一直跑着显示的函数,然后用一个计数标志计数,每显示多少遍之后把LED取反就可以了!
在线时间1246 小时
威望6083 分
芯币18471 枚
E金币300 枚
TA的帖子TA的资源
楼上说的极是,资源全部浪费了。另外你一旦使用中断delay的时间就不好控制了。
在线时间49 小时
威望291 分
芯币279 枚
TA的帖子TA的资源
一粒金砂(高级), 积分 291, 距离下一级还需 209 积分
一粒金砂(高级), 积分 291, 距离下一级还需 209 积分
原帖由 jishuaihu 于
19:41 发表
用delay肯定不合适,因为你把时间都浪费到了delay里面,数码管显示当然就不能稳定了,闪烁和稳定是个矛盾,要CPU同时完成用delay不好吧。当然这样的要求是可以满足的,那就是你一直跑着显示的函数,然后用一个计数标 ...
斑竹前辈大好人=。=给我提示了一个很好的思路,明天我就去试验一下。
还有,我的一个疑问是,在我的问题中,为什么数码管总有一位是稳定的呢?我理解自己的程序,好像delay(100)干扰到每个数码管的显示了,但是总会有一位显示是稳定的(比如像点亮4个数码管,这样的程序前3个数码管是闪烁的,但是最后一个数码管是稳定显示的)。
在线时间10 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
数码管是扫描显示,第一个数码管的显示时间占1/(1+1+100);接近0
而第二个数码管的显示时间占(1+100)/(1+1+100),接近1
如果你把100改为10的话,可能不会闪烁,不过第二个数码管的亮度肯定大于第一个数码管的亮度
改的话,既然你可以看清楚闪烁,改delay(1)为delay(50),而delay(100)去掉就可以了,
但总体来说,程序不怎么好
在线时间69 小时
威望158 分
芯币333 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 158, 距离下一级还需 42 积分
一粒金砂(中级), 积分 158, 距离下一级还需 42 积分
延时的问题吧!
在线时间24 小时
威望290 分
芯币151 枚
TA的帖子TA的资源
一粒金砂(高级), 积分 290, 距离下一级还需 210 积分
一粒金砂(高级), 积分 290, 距离下一级还需 210 积分
回复 楼主 qrswll 的帖子
去掉delay(100),改为循环50次P1取反,应该就能实现你想要的结果
在线时间49 小时
威望291 分
芯币279 枚
TA的帖子TA的资源
一粒金砂(高级), 积分 291, 距离下一级还需 209 积分
一粒金砂(高级), 积分 291, 距离下一级还需 209 积分
非常感谢楼上几位前辈的指点。经过一个上午的努力,我把这个问题和相关的许多问题都解决啦 谢谢各位
去吃午饭了~
Powered by
逛了这许久,何不进去瞧瞧?用C语言编写,单片机控制LED灯并用定时器延时,每隔一秒使LED依次点亮,8 个灯_百度知道
用C语言编写,单片机控制LED灯并用定时器延时,每隔一秒使LED依次点亮,8 个灯
提问者采纳
每隔一秒使LED依次点亮’,其实我没看懂这句话。是每隔一秒亮一个灯。,还是。
每隔一秒亮一个灯,亮完8个灯就停止,不亮了
二楼那个就是了呀
C语言编写的有没有啊
#include&reg52.h&#include&intrins.h&#define uchar unsigned char#define uint unsigned intuchar a=0,i=8;void main(){
//初始化定时器0 TH0=()/256;
//设定50ms计时初值 TL0=()%256; EA=1;
//开总中断 ET0=1;
//开T0中断 TR0=1;
//启动T0定时器
t=0X P1=t; while(i) {
t=_crol_(t,1);
} } while(1) P1=0
//8个led灯为共阳接法}void time0() interrupt 1{
TH0=()/256;
//设定50ms计时初值 TL0=()%256; a++;}
其他类似问题
为您推荐:
其他2条回答
/&#47!几句话的事;
/开T0中断 TR0=1; EA=1!;/定时器重新赋值就可以了
TL0=0xb0;设定50ms计时初值 TL0=0xb0;
/&#47!!void main(){
TMOD=0x21;开总中断 ET0=1;
}/O移位就可以了
TH0=0x3c;&#47:T0中断服务程序void time0() interrupt 1{
中断20次向下执行I//初始化定时器T0为工作方式 TH0=0x3c;/
/名称;/启动T0定时器
while(1)很简单的
我再帮你补一课,看了你的标题,我写了一个用定时器0来控制一个LED灯第隔1秒钟亮灭一次的程序,希望对你有用,另外我也写了一个你说的那个程序,一起发上来吧
****************这个是用定时器0控制一个灯的亮和灭******************************
#include&reg52.h&
#define uchar unsigned char
#define uint unsigned int
/**************************************/
sbit d=P1^0;
/******************主程序入口********************/
void main()
TMOD=0x01;
TH0=()/256;
TL0=()%256;
TCON=0x10;
if(num==20)
led灯的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 共阳极数码管 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信