一,初学者的基本要求
1、熟练掌握LED显示器的结构特点(共阳极和共阴极的 区别)。
2、掌握LED动态显示方式的工作特点(电路的构成与编 程应用)。
3、掌握数据锁存器74HC573的基本特点和控制方法。
4、掌握单片机实验系统相关部分的电路结构和控制方法
二,原理图 (共阴数码管)
三,如何让6个数码管同时亮,且分别显示123456?
四,思路:
建立显存、断码、位码表格,将软件延时部分设计成子函数的结构,在主函数中利用查表的方法来获得相应的位码和段码,这种思路经常用于显示变化的字符。
五,程序代码(注意:显示相同内容不在赘述,很简单)
- 静态显示内容
#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;} }}
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); //¸üÐÂλÂ룬׼±¸ÏÔʾÏÂһλ } } } }}