导航:首页 > 操作系统 > 单片机led滚动

单片机led滚动

发布时间:2023-08-31 07:01:37

单片机制作led显示屏,怎么让字滚动,思路是什么

按照时间段来说,一开始先显示一个字,延时500mS后,这个字的每个亮的点都向换到旁边的点亮,然后再延时500mS……依此类推,这个字就向左滚动了,要让它快点或者慢点滚,改变延时时间即可。

⑵ 单片机C语言如何实现8个LED流水灯来回流动

1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。

2、具体实现方法可以参考如下程序:

2、单片机又称单片微控制器,它不是完成某一个老笑逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

3、单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。

⑶ keil51单片机数码管滚的显示

一,LED数码管显示的原理
数码管的发光原理实际是七段LED灯(不包括小数点)或者八段LED灯被点亮的结果。八段依次是 a,b,c,d,e,f,g,dp(表示点)。LED数码管是常见的显示器件,在很多场合都可以看到,比如,闹钟冲胡的显示,家电的显示功能,车站等等。我们看到的数码管为“8”字形,数码管又分为共阴极和共阳极两种。

1.共阴极:就是将八段数码管的阴极(负极)接地在一起,需要高电平点亮。如下图所示



2.共阳极:就是将八段数码管的阳极(正极)接(+5v)在一起,需要低电平点亮。如下图所示


3.数码管的具体显示

①共阴数码管的点亮

为使数码管的不同段显示不同的字符,需要点亮和熄灭不同段的LED灯,才可以实现。对于共阴极数码管来说,只需要给高电平LED灯就会被点亮,对应的断码就会亮起。给低电平相应的断码就会熄灭。

以显示“0”为例 只需要给“dp”和“g”给低电平熄灭就可以了

断码的顺序为:dp g f e d c b a



“0”断码用16进制表示为:3FH

其他字符的断码以此类推:如下表所示


②共阳数码管的点亮

为使数码管的不同段显示不同的字符,需要点亮和熄灭不同段的LED灯,才可以实现。对于共阳极数码管来说,只需要给低电平LED灯就会被点亮,对应的断码就会亮起。给高电平相应的断码就会熄灭。

以显示“0”为例 只需要给“dp”和“g”给高电平熄灭就可以了

断码的顺序为:dp g f e d c b a

1 1 0 0 0 0 0 0



“0”断码用16进制表示为:C0H

其他字符的断码以此类推:如下表所示


二.动态数码管的显示(共阴)
思路: 建立显存、断码、位码表格,将软件延时部分设计成子函数的结构,在主函数中利用查表的方法来获得相应的位码和段码,这种思路经常用于显示变化的字符。
显示的状态(左移动态显示,类似于常见的广告牌)

3.原理图(protues仿真图)


4.设计方法
在多个数码管的显示中点亮数码管需要 位码和段码共同作核搏用才能点亮

位码(低电平有效):表示要点亮的数码管的位置。

断码(上面讲过了):就是要点亮哪一段数码管

举例说明:


如果要在上面的六个数码管中点亮第一个数码管,且让它显示“1”,首先确定它的位置是第六个。用八个二进制表示,最低位从0开始,最高位为7 那么它的位码为:11111110 (低电平有效)

断码为0x06

其他的以此类推

先要数码管动态显示要建一个数组。下图为断码


源代码:
#include#include#define uchar unsigned char#define uint unsigned intsbit an=P2^6; sbit wei=P2^7; uchar code tab[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x00,0x40}; //共阴极数码管段码表uchar idata dis_buf[6]={17,17,17,17,17,17}; //显示缓冲区数据(十进制)void delayms(uint i) //延时1ms函数{ uint j; for(;i>0;i--) for(j=120;j>0;j--) {;}}void main() //主函数{ uchar k,m,n,bitcode,segcode; while(1) { for(n=0;n<17;n++) { dis_buf[0]=dis_buf[1]; //数据移动 dis_buf[1]=dis_buf[2]; dis_buf[2]=dis_buf[3]; dis_buf[3]=dis_buf[4]; dis_buf[4]=dis_buf[5]; dis_buf[5]=n; for(m=0;m<100;m++) //100次扫描,大约600ms { bitcode=0xfe; //起始位码 for(k=0;k<6;k++) { P0=0xff; //消影 wei=1; wei=0; segcode=dis_buf[k]; //取数据 P0=tab[segcode]; //送段码散氏拦 an=1; an=0; P0=bitcode; //送位码 wei=1; wei=0; delayms(1); bitcode=_crol_(bitcode,1); //更新位码,准备显示下一位 } } } }}

阅读全文

与单片机led滚动相关的资料

热点内容
手机软件加密了怎么解开 浏览:887
linux中的ln命令例子 浏览:142
为什么玩cf第一次进入服务器很慢 浏览:967
工作单源码 浏览:619
安卓如何关闭app自动升级 浏览:137
new文件夹怎么打开 浏览:633
安卓51如何优化 浏览:177
活塞式压缩机原理图 浏览:845
水环式压缩机工作原理 浏览:715
阿里云服务器安装后怎么使用 浏览:933
去做APP开户有什么危险没得啊 浏览:696
8分之1乘58算法 浏览:171
php提交过滤 浏览:358
豪斯曼检验stata命令 浏览:771
云看地是什么APP 浏览:886
数学指南pdf 浏览:860
phpcurldll64位 浏览:983
程序员脱产一年半 浏览:853
hr招程序员有什么条件 浏览:590
android开源集合 浏览:872