标题: 74HC154驱动的两个5×7点阵LED显示器字符显示仿真与源码 [打印本页]
作者: 三流侍卫 时间: 2018-1-21 20:12
标题: 74HC154驱动的两个5×7点阵LED显示器字符显示仿真与源码
设计单片机并行口和4-16译码器74HC154驱动(控制)的两个5×7点阵LED显示器的驱动电路,并编写程序实现在两个5×7点阵LED显示器上的字符显示。
电路方面主要包括以下3部分。(a)设计单片机的最小系统(包括复位电路和外接的晶振电路),并确定相关元器件参数。(b)采用动态驱动的方式,设计单片机并行端口和74HC154控制(驱动)两个5×7点阵LED显示器的驱动电路,包括控制点阵LED行和列的连线(由单片机并行端口和74HC154分别驱动)。(c)设计点阵LED的给电流电路(单片机并行端口接上拉电阻)。
编写单片机控制两个5×7点阵LED显示器字符显示程序,实现数字(0—9)或简单的英文字符的信息显示。显示方式和内容自定,如每隔一段时间循环显示数字0—9 或英文字符。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg51.h>
- //字形码****按列取模
- unsigned char code table1[]={
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xE3,0xDD,0xDD,0xE3,0xFF,/*"0",0*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xFF,0xDD,0xC1,0xDF,0xFF,/*"1",1*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xDB,0xCD,0xD5,0xDB,0xFF,/*"未命名文件",0*//* (5 X 7 ) *///0xD9,0xCD,0xD5,0xD9,0xFF,/*"2",2*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xFF,0xD5,0xD5,0xEB,0xFF,/*"未命名文件",0*//* (5 X 7 ) *///0xDD,0xD9,0xD9,0xE5,0xFF,/*"3",3*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xE7,0xEB,0xC1,0xEF,0xFF,/*"未命名文件",0*//* (5 X 7 ) *///0xF7,0xEB,0xEB,0xC1,0xFF,/*"4",4*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xFF,0xD1,0xD5,0xC5,0xFF,/*"未命名文件",0*//* (5 X 7 ) *///0xD1,0xD5,0xD5,0xC5,0xFF,/*"5",5*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xE3,0xD5,0xD5,0xC7,0xFF,/*"6",6*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xFD,0xC5,0xF9,0xFD,0xFF,/*"7",7*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xC9,0xD5,0xD5,0xC9,0xFF,/*"8",8*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xF1,0xD5,0xD5,0xE3,0xFF,/*"9",9*//* (5 X 7 , 宋体 ) */
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,
- };
- void delay(int c)
- {
- int i,j;
- for(i=0;i<c;i++)
- for(j=0;j<10;j++);
- }
- void Display(void)
- {
- unsigned char i,j;
- unsigned int b=0; //显示偏移控制,
- unsigned char a; //控制移动间隔时间
- while(1)
- {
- j=0;
- if(a>20) //移动间隔时间;取值0--255
- {
- a=0;
- b+=1;
- if(b>=130) b=0; //显示到最后一个字,回头显示,
- }
- for(i=0;i<10;i++)
- {
- P1=i;
- P0=table1[j+b];
- delay(5);
- P0=0xff;
- j+=1;
- }
- a++;
- }
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
t.rar
(101.9 KB, 下载次数: 105)
作者: 林夏由 时间: 2018-7-16 16:59
5*7个led可以借鉴,用Proteus 7.5仿真成功
-
51hei.png
(17.77 KB, 下载次数: 88)
-
51hei.png
(16.9 KB, 下载次数: 86)
作者: liuic 时间: 2019-3-20 18:18
硬件不用这么复杂,用FD6551就能实现,只需2个IO口,SOP16封装,无需外围阻容件
作者: 782584007 时间: 2021-7-2 17:22
楼主,就是我下载的附件里那个main.c文件里源程序怎么打开?
作者: 51hei团团 时间: 2021-7-3 06:37
作者: 782584007 时间: 2021-7-3 16:58
51hei团团 发表于 2021-7-3 06:37
我是下载后点这个里面没有源程序
作者: 782584007 时间: 2021-7-3 16:59
51hei团团 发表于 2021-7-3 06:37
就是这个
-
IMG_20210703_165901.jpg
(1.2 MB, 下载次数: 90)
作者: 782584007 时间: 2021-7-3 17:08
啊,我的我的,你发的动图里就投全部代码,没注意,2333
作者: 51hei团团 时间: 2021-7-3 19:32
你在压缩包里面打开的,压缩软件只为你解压了你点的那一个文件,当然看不到啊,正确的方式是,全部解压后打开,兄弟是第一次用?
作者: 782584007 时间: 2021-7-3 21:45
51hei团团 发表于 2021-7-3 19:32
你在压缩包里面打开的,压缩软件只为你解压了你点的那一个文件,当然看不到啊,正确的方式是,全部解压后打开 ...
是第一次用
作者: 1135291978 时间: 2023-2-28 21:36
老哥我基础不太好想学习一下,可以看一下这个设计
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |