完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
思来想去还是决定要出这期教程,因为我看很多同学在这个数码管的问题上都还是有点迷惑,特别是这个动态数码管的工作原理,以及这个相应代码该如何编写,那么教程来了~
首先看一下一位数码管内部原理,以及各个引脚的标识 使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。实验板用共阴LED显示器,根据电路连接图显示16进制数的编码见下方: 共阳数码管显示数组= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86, 0x8e};//显示0~F的值 共阴数码管显示数组={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值 多位数码管的工作原理与一位相同,不同的是多为数码管相较于一位数码管多了位选,连接时只需要把各个位选连接不同的单片机引脚,再写好程序加以控制就行,下面是四位数码管的引脚标识 这次主要是想给大家分享一个关于动态数码管的教程,所以咱们需要8位数码管,实际焊接中可以选用两个四位数码管组成,阴极阳极都可以,编程时代码显示不要出错就好了,我这里仿真用的是八位阴极数码管,仿真电路如下: 动态数码管显示程序代码如下: #include"reg52.h" //头文件 typedef unsigned char uchar; typedef unsigned int uint; unsigned char z; //定义无符号字符型变量z unsigned char code duan_xuan[10]= //数码管段选 { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f }; unsigned char code wei_xuan[8]= //数码管位选 { 0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F }; unsigned char dat[8]={8,7,6,5,4,3,2,1}; //数码管显示字符12345678 void delay(unsigned int x) //调用延时函数delay { unsigned char i; while(x--) { for(i=0;i<120;i++); } } void main() //主函数 { P2=0x00; //初始化数码管 while(1) { for(z=0;z<8;z++) //利用for循环一次让数码管显示数字1~8 { P2=duan_xuan[dat[z]]; P1=wei_xuan[z]; P1=0XFF; delay(5); } } } |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1142浏览 2评论
741浏览 1评论
495浏览 0评论
256浏览 0评论
417浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 13:29 , Processed in 1.397989 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号