3位单边6脚数码管如何用单片机数码管显示程序驱动显示0-9

技术小站:
& 时间:8月22日 10:00 - 11:30
& 时间:9月12日 10:00 - 11:30
& 时间:8月24日 14:00 - 15:30
& 立即参会赢好礼
张飞电子工程师速成全集
10天掌握PCB AD画板
教你高速PCB项目整体设计
如何设计STM32单片机系统?
物联网操作系统从写到用
讲师:华清远见
讲师:林超文
讲师:郑振宇
讲师:李述铜
移入鼠标可放大二维码
单片机编程:让led数码管显示数字0到9
来源:电子发烧友整理 作者:日 16:23
[导读] 当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。本文为大家介绍让led数码管显示数字0到9的单片机编程。
led数码管(LEDSegmentDisplays)由多个发光二极管封装在一起组成&8&字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。
当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个&2&字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
本文为大家介绍让led数码管显示数字0到9的单片机编程。
让led数码管显示数字0到9程序
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
声明:电子发烧友网转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站而转移。
作者如不同意转载,既请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。
单片机编程相关文章
单片机编程相关下载
数码管相关文章
数码管相关下载
led数码管相关文章
led数码管相关下载
单片机相关文章
单片机相关下载
论坛精华干货
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-51单片机+tm1620驱动3位数码管程序
作者:瑞生
阅读:12,245次
瑞生网http://www.rationmcu.com版权所有
TM1620 是天微公司生产的二极管驱动芯片,SOP20封装。芯片如下图所示:
最多可以驱动6个8位数码管,如下图所示:
程序如下:
/**************************************************
* 名称:STC51驱动TM1620 3位数码管显示
* MCU: STC12C5608AD
* 主频:12Mhz(外部接12MHz晶振)
* 作者:Ration
* 时间:日(整理)
* 版权:版权归《单片机学习网》所有,传播请保持完整性
* 更多程序请访问:http://www.rationmcu.com
*************************************************/
#include "stc12c5608ad.h"
#include &intrins.h&
#define uint
unsigned int
// 宏定义uint (0~65535)
#define uchar unsigned char
#define uint32 unsigned long
sbit STB =P3^2;
// 定义片选通讯口
sbit CLK =P3^3;
// 定义时钟通讯口
sbit DIO =P3^4;
// 定义数据输入/输出通讯口
uchar bai_num,shi_num,ge_
static uchar code LED_tab[11]={
// 定义数码管0~9数字码表
void delay_ms(uchar cyc)
//当将=1的时候,延时1ms
for(jj=1;jj&=jj++)
for(ii=0;ii&200;ii++)
void TM1620_Write(uchar wr_data)
for(i=0;i&8;i++)
if(wr_data&0x01)DIO = 1;
else DIO = 0;
wr_data&&=1;
void Write_COM(unsigned char cmd)
//发送命令字
TM1620_Write(cmd);
void init_TM1620(void)
Write_COM(0x44);
// 准备写数据到显示寄存器,普通模式,自动地址增加
TM1620_Write(0xc0);
设置显示地址从0开始
TM1620_Write(0x00);
// 所有显示为灭
TM1620_Write(0xc2);
TM1620_Write(0x00);
TM1620_Write(0xc4);
TM1620_Write(0x00);
Write_COM(0x8f);
设置消光脉冲14/16 显示开
void led_show()
Write_COM(0x44);
// 准备写数据到显示寄存器,普通模式,自动地址增加
TM1620_Write(0xc0);
设置显示地址从0开始
TM1620_Write(LED_tab[bai_num]);
// 所有显示为灭
TM1620_Write(0xc2);
设置显示地址从0开始
TM1620_Write(LED_tab[shi_num]);
// 所有显示为灭
TM1620_Write(0xc4);
设置显示地址从0开始
TM1620_Write(LED_tab[ge_num]);
// 所有显示为灭
void main()
// 上拉TM1620通信时钟引脚
// 上拉TM1620通信片选引脚
// 上拉TM1620通信数据引脚
init_TM1620();
// 初始化LED控制芯片
bai_num=0;
shi_num=0;
led_show();
完整keil工程文件,请按如下方法获取!
关注我的微信公众号,可以第一时间看到我的文章
我的微信公众号单片机io口能直接驱动数码管吗_单片机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:150,589贴子:
单片机io口能直接驱动数码管吗收藏
如图的三位一体数码管,我直接连在51单片机io口控制的,可是只有一点点亮度。怎么加驱动电路,有个锁存器(贴片封装焊不上去),三极管什么的可以吗?
如用的是共阴发光管,你只需在段选上加1k的上拉电阻
我是新手,帮顶一下,水点经验
要加外围电路驱动,单片机单个IO口输出的电流不足可以加三极管拉电流,不过一般来说现在的单片机IO口输出电流都足够了你用的是老款芯片吧
可以,你可以每个循环输出,因为每个输出速度很快,人眼看不出来。相当于每个都在亮。
还有我想问一下,加上拉电阻的原理是什么?本来单片机io口输出的电流就达不到数码管需要的,那再在之间加个1k的电阻岂不是到达数码管的电流就更小了呢?
三极管可以,再加个电阻
不用,直接加排阻就行
我好像懂了。排阻应该是也要接5v电源,如果是1k的排阻,每个接上排阻的电流值就是(5-0)/1k=5mA,那么就可以驱动数码管了。是这样吧!我还以为排阻是接在 io口和数码管之间呢,难怪原理解释不通。多谢各位好心人的指点
硬件加密,专业防抄板,超低功耗,超强安全性,超低价.开发方便快捷,支持自动烧录,同时可提供定制封装服务,值得信赖!咨询热线:童先生
电阻是必须的,它内部是发光二极管,谁家做电路用二极管直接就接上?那不是短了嘛!
至于亮度,可以根据型号查下资料,有相关电压电流参数的,要算好电流别超了
登录百度帐号51单片机控制数码管循环显示0-9程序_百度知道
51单片机控制数码管循环显示0-9程序
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采用共阴极LED数码管,51单片机P1口输出数据:ORG 0000HJMP
MAINORG 0100HMAIN:MOV DPTR,#TAB
MOV R1,#00HDISP:MOV A,R1
MOVC A,@A+DPTR
LCALL DELAY
CJNE R1,#0AH,DISP
SJMP $TAB: DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY:
MOV R4,#2DELAY100MS:MOV R5,#200DELAY5MS:
MOV R6,#250LOOP:
DJNZ R6,LOOP
DJNZ R5,DELAY5MS
DJNZ R4,DELAY100MS
#include&reg52.h&#define uint unsigned intvoid delay7ms(void)
//误差 -0.us{
unsigned char a,b;
for(b=208;b&0;b--)
for(a=14;a&0;a--);}void delay2ms(void)
//误差 -0.us{
unsigned char a,b;
for(b=80;b&0;b--)
for(a=10;a&0;a--);}
void main(void){uint led[10]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uint m,n=0,a=0;for(m=0;m&=10;m++){while(a&30)
P0=led[m];
delay7ms();
delay2ms();
P0=led[n];
delay7ms();
delay2ms();
引用jbpfd59aced38的回答:采用共阴极LED数码管,51单片机P1口输出数据:ORG 0000HJMP
MAINORG 0100HMAIN:MOV DPTR,#TAB
MOV R1,#00HDISP:MOV A,R1
MOVC A,@A+DPTR
LCALL DELAY
CJNE R1,#0AH,DISP
SJMP $TAB: DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY:
MOV R4,#2DELAY100MS:MOV R5,#200DELAY5MS:
MOV R6,#250LOOP:
DJNZ R6,LOOP
DJNZ R5,DELAY5MS
DJNZ R4,DELAY100MS
我问一下为什么有的书上写的程序,在主程序中会有屏蔽高半字节这一句,就是MOV A R3,ANL,A#0FH,
#include&reg52.h&#define uchar unsigned char#define uint unsigned intsbit duanxuan=P2^6;sbit weixuan=P2^7;uchar num,uchar code biaoge[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*void yanshi(uint z);*/void chushihua();int main(void){chushihua();weixuan=1;P0=0weixuan=0;while(time-10){duanxuan=1;P0=biaoge[time];duanxuan=0;}}/*void yanshi(uint z){uint x,y;for(x=100;x&0;x--)for(y=z;y&0;y--);}*/void chushihua(){TMOD=0x01;TH0=()/256;TL0=()%256;EA=1;ET0=1;TR0=1;}void zhongduan() interrupt 1{TH0=()/256;TL0=()%256;num++;if(num==20){num=0;time++;if(time==10){time=0;} }}
2条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何通过编程,实现51单片机控制一个数码管显示0~9这几个数字? - 知乎有问题,上知乎。知乎作为中文互联网最大的知识分享平台,以「知识连接一切」为愿景,致力于构建一个人人都可以便捷接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,发现更大的世界。7被浏览<strong class="NumberBoard-itemValue" title="分享邀请回答赞同 添加评论分享收藏感谢收起赞同 添加评论分享收藏感谢收起写回答

我要回帖

更多关于 单片机数码管 的文章

 

随机推荐