四位共阳极数码管显示函数_基于51单片机的数码管动态显示

本文介绍了初学者掌握四位共阳极数码管显示所需的基本要求,包括LED显示器结构、动态显示方式、74HC573数据锁存器的使用及单片机控制。讲解了如何让6个数码管同时显示123456,并提供动态显示的思路和程序代码,利用显存和查表法实现显示内容的变化。
摘要由CSDN通过智能技术生成

一,初学者的基本要求

1、熟练掌握LED显示器的结构特点(共阳极和共阴极的 区别)。

2、掌握LED动态显示方式的工作特点(电路的构成与编 程应用)。

3、掌握数据锁存器74HC573的基本特点和控制方法。

4、掌握单片机实验系统相关部分的电路结构和控制方法

二,原理图 (共阴数码管)

f988fd882fac15d6c821094e3046692f.png

三,如何让6个数码管同时亮,且分别显示123456?

aac5ce5e31a513a1bf947f0ec6a11e6f.png

四,思路:

建立显存、断码、位码表格,将软件延时部分设计成子函数的结构,在主函数中利用查表的方法来获得相应的位码和段码,这种思路经常用于显示变化的字符。

7e9a29542d30bdc35eb1b65952fbd1bc.png

五,程序代码(注意:显示相同内容不在赘述,很简单)

  1. 静态显示内容
#include  #define uchar unsigned char #define uint unsigned int sbit DUAN=P2^6;sbit WEI=P2^7;uchar code led[6]={0x00,0x01,0x02,0x03,0x04,0x05};uchar data ledwei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};uchar data displaytab[6]={ 0x06, 0x5b ,0x4f ,0x66 ,0x6d ,0x7d };void delay()  /*ÑÓʱº¯Êý,Ô¼1mS*/{uchar x,y;for(x=2; x>0; x--)for(y=250; y>0; y--);}void main( ) /*Ö÷³ÌÐò*/{uchar i;while(1){for (i=0;i<6;i++){P0=displaytab[led[i]];DUAN=1;DUAN=0;P0=ledwei[i]; WEI = 1;WEI = 0;delay();P0=0x00;/*ÏûÓ°1£¬Ï¨Ãð¶ÏÂë*/ DUAN = 1;DUAN = 0;} }}
e7004f78bb69b34ee4ad7258cfa4a71b.png
5c30f84b586a90ba7fedba06371b2785.png

显示相同内容

2,动态显示

#include#include#define uchar unsigned char#define uint unsigned intsbit duan=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]; //ËͶÎÂë duan=1; duan=0; P0=bitcode; //ËÍλÂë wei=1; wei=0; delayms(1); bitcode=_crol_(bitcode,1); //¸üÐÂλÂ룬׼±¸ÏÔʾÏÂһλ } } } }}
b826337a8536b8fbca2b96fbaedd4349.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值