求四位LED数码管循环显示数字显示特定4位数字的编程

4位共阳LED数码管_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
4位共阳LED数码管
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢用51单片机控制4位led数码管,显示四个不一样的数字,我只能显示四位都一样的数字,求大神赐教_百度知道
用51单片机控制4位led数码管,显示四个不一样的数字,我只能显示四位都一样的数字,求大神赐教
我有更好的答案
循环扫描方式
你是静态显示还是动态显示呢
为您推荐:
其他类似问题
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。雷速体育发帖软件开发QQ乐学 会学 多求 善思千里之行 始于足下
欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 17701 人关注过本帖
标题:这是一段4位共阳极数码管”从0到9循环显示数字“的程序,不知道是什么意思望 ...
等 级:论坛游民
帖 子:186
专家分:59
结帖率:81.82%
&&已结贴√
&&问题点数:10&&回复次数:4&&&
这是一段4位共阳极数码管”从0到9循环显示数字“的程序,不知道是什么意思望前辈们来看看~~
这是一段4位共阳极数码管”从0到9循环显示数字“的程序,其中有好多地方都不理解,比如说“di”是什么,如何实现数字的从0到9的来回循环显示等。望各位前辈详细讲解一下,最好是在各关键代码上详细注释一下。小弟必将虚心采纳,致谢!
程序代码:#include &reg51.h&
#include &intrins.h&
#include&absacc.h&
#include&math.h&
typedef unsigned char BYTE;
typedef unsigned int&&&WORD;
/* LED口地址*/
#define led_data XBYTE[0x6000] //写命令
BYTE led_w;
led_dm[<font color=#]={<font color=#xc0,<font color=#xf9,<font color=#xa4,<font color=#xb0,<font color=#x99,<font color=#x92,<font color=#x82,<font color=#xf8,<font color=#x80,<font color=#x90};//<font color=#:0xc0,1:0xf9,2:0xa4,3:0xb0,4:0x99,5:0x92,6:0x82,7:0xf8,8:0x80,9:0x90
/*****************LED显示位置********************/
void LED_crt(BYTE val)&&
led_data=led_dm[val];//<font color=#:0xc0,1:0xf9,2:0xa4,3:0xb0,4:0x99,5:0x92,6:0x82,7:0xf8,8:0x80,9:0x90
P2 |= <font color=#xff;
&P2 &= led_w;
led_w&&=<font color=#;
if (led_w==<font color=#x0f) led_w=<font color=#xf7;
void Delay(WORD n)
while(n--)
&x=<font color=#;&&while(x--);
void main()
led_w=<font color=#xf7;
di=<font color=#;
while(<font color=#)&&&
&&LED_crt(di);
&&if(di&<font color=#x09) di=<font color=#;
&Delay(<font color=#0);&&}
搜索更多相关主题的帖子:
等 级:论坛游民
帖 子:186
专家分:59
回复 楼主 弟大勿勃
有木有人~~
等 级:贵宾
威 望:204
帖 子:15455
专家分:65956
&&得分:10&
不懂单片机
等 级:论坛游民
帖 子:186
专家分:59
等 级:论坛游民
帖 子:186
专家分:59
程序代码:
#include &reg51.h&
#include &intrins.h&
#include&absacc.h&
#include&math.h&
typedef unsigned char BYTE;
typedef unsigned int&&&WORD;
/* LED口地址*/
#define led_data XBYTE[0x6000] //写命令
BYTE led_w;
led_dm[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0:0xc0,1:0xf9
,2:0xa4,3:0xb0,4:0x99,5:0x92,6:0x82,7:0xf8,8:0x80,9:0x90
/*****************LED显示位置********************/
void LED_crt(BYTE val) // val与主函数的di对应,di初值等于0则相当于数组取第0位(数码管显示0)//
led_data=led_dm[val];//0:0xc0,1:0xf9,2:0xa4,3:0xb0,4:0x99,5:0x92,6:0x82,7:0xf
8,8:0x80,9:0x90
&P2 |= 0 //p2与相或,使p2为(此时位选都不亮)
&P2 &= led_w; //p2与led-w的初值相与,相当于点亮第四位数码管
led_w&&=1; //右移一位,变成(第3位数码管亮)
if (led_w==0x0f) led_w=0xf7; //当led-w==时使led-w重新置为
void Delay(WORD n)
while(n--)
&x=500;&&while(x--);
void main()
led_w=0xf7; //led=,第四位数码管点亮
while(1)&&&
&&LED_crt(di); //选取led-dm数组中的值
&&di++;//di自加
&&if(di&0x09) di=0; //当di加到9的时候使di又置0
&Delay(1000); //延迟,为了使数码管循环能被肉眼清楚看到
版权所有,并保留所有权利。
Powered by , Processed in 0.042132 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved豆丁微信公众号
君,已阅读到文档的结尾了呢~~
步进电机控制系统设计设计,系统,控制,步进控制,步进电机,控制系统,plc,运动控制卡
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
步进电机控制系统设计
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口51单片机led4位数码管动态显示“0123”的程序,急急,,,能帮忙的就快点,谢谢啦_百度知道
51单片机led4位数码管动态显示“0123”的程序,急急,,,能帮忙的就快点,谢谢啦
我有更好的答案
#include&reg51.h&#define uchar unsigned char#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//0-fuchar disbuf[4] = {0};void display(){static uchar com = 0;P2 = 0;P0 = table[disbuf[com]];P2 = (1 && com);com = (com+ 1) % 4;}void delay(int n){...}void main(){
disbuf[0] = 0;
disbuf[1] = 1;
disbuf[2] = 2;
disbuf[3] = 3;
display();
delay(100);
采纳率:34%
补充:void delay(int n){...}改为:void delay(int n){
uint tmp=n;
while(tmp--);}
#include&reg52.h&#define uchar unsigned char#define uint unsigned int //sbit dula=P2^6;sbit wela1=P2^0;//位选sbit wela2=P2^1;sbit wela3=P2^2;sbit wela4=P2^3;void delay(uint);uint a,b;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//字符void main(){ while(1) {P0=0
wela4=1;//显示千位数
delay(1000);
P0=0//数字
wela4=1;//显示百位数
delay(1000);
P0=0//数字
wela4=1;//显示十位数
delay(1000);
P0=0//数字
wela4=0;//显示个位数
delay(1000);
}}void delay(uint x){ for(a=x;a&0;a--)
for(b=110;b&0;b--);}
是9999秒的秒表设计
这个好像不对吧?
电路错了,什么程序也不能正常显示。三极管的,集电极、发射极,交换一下即可。
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 用数码管显示数字 的文章

更多推荐

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

点击添加站长微信