点阵广告牌的设计(单片机应用技术课程报告)
单片机应用技术课程报告
实验名称
点阵广告牌的设计
实验时间
2020年7月9日
学生姓名
实验地点
钉钉群线上
同组人员
专业班级
1、实验目的
1、会设计简单的点阵的广告牌;
2、 通过LED点阵电子广告牌的设计,了解点阵的结构和原理、点阵字型码的计算,进一步理解LED动态显示原理并推广到点阵的显示中。
3、能使用工具软件绘制LED点阵显示器的接口电路、能编写动态广告屏的程序。
2、任务设计要求
采用STC89C52单片机构建最小系统,采用8*8点阵控制电路,大家根据文字取模软件取得汉字的字形码。编程实现在8*8点阵上的循环显示“0、1、2、3、4、5、6、7、8、9 ”
3、总体设计方案
1、结构原理:现以8×8单色点阵为例介绍点阵显示器原理,如图3所示。水平方向的线Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7被称为行线,与LED的阳极相连,每一行上的8个LED的阳极均接在对应行的行线上,行线间彼此绝缘。垂直方向的线X0、X1、X2、X3、X4、X5、X6、X7称为列线,与LED的阴极相连,各列之间相互绝缘。
若在某行线上加高电平(用“1”表示),同时在某列线上加低电平(用“0”表示),则对应行线和列线的交叉点位置的LED将被点亮。如Y0为1,X0为0,则右上角的LED点亮;若Y3为1,X0到X7均为0,则Y3行的8个LED全亮。
LED点阵显示器的显示原理:看图上图可知,要想显示某个数字、字符或简单的汉字,只需将相应位置的二极管点亮即可,例如显示大写字母“A”,如下图所示,可让字符位置的二极管点亮。
要想显示字母“A”,造型中的二极管同时点亮是不可能的,这点和LED数码管动态显示的道理是一样的。那就只能采用分时显示,可采用逐行扫描或者逐列扫描。所谓的逐行扫描就是行线送出扫描信号,0~7行每次只有1行是高电平,同时在列线送出扫描码,8行采用分时显示。逐列扫描则是列线送出扫描信号, X0~X7每次只有1列是低电平,同时行线送出扫描码,8列采用分时显示。
在PROTEUS的元件库中找到“MATRIX- 8×8-RED”元件,然后用电源端子“POWER”和地端子“GROUND”来测试点阵显示器的管脚对应的是二极管的正负极性,进而测试出列线和行线。在硬件连线时,行线、列线和I/O口可以随意连接,但程序和硬件要对应起来,也就是说,行扫描还是列扫描可完全由程序来决定。在上图中,经过测试,点阵显示器右边的管脚为列信号,从上至下依次为0~7列(左边为第0列),而左边的管脚为行信号,从下而上依次为0~7行(下面为第0行)。
4、硬件电路设计
5、软件程序设计
(1)、程序设计思路(流程图绘制)
(2)程序清单
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
uchar code LEDA[ ]= {0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, //0
0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, //1
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, //2
0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, //3
0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00, //4
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00, //5
0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00, //6
0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00, //7
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00}; //9
void delay03s(void)
{
uchar i,j;
for(i=20;i>0;i--)
for(j=30;j>0;j--);
}
void main(void) /*主函数*/
{
uchar k,n, m,i;
while(1)
{
{for(n=0;n<10;n++)
{for(k=0;k<80;k++)
{m=0xfe;
for(i=0;i<8;i++)
{P3=m;
P0=~LEDA[n*8+i];
delay03s();
m=_crol_(m,1);
}}}}}
性能指标测试及结果分析针对以上运行结果的原因进行分析,开关同时接高电平时,所有灯同时开启,显示出数字,由0-9变化。7、项目总结
在本设计中我用简短的汇编程序在LED显示屏实现了汉字的左移滚动显示。在设计中采用的芯片有AT89C51、74LS373、74LS138、74HC154和4个16x16LED点阵显示器。其特点: 1.内容能从右向左浮动显示。2.硬件结构简单,应用广泛。3.LED数码管动态扫描显示,工作效率高,价格低廉等。通过本次(64x1 6位点阵LED)的设计,理论知识学习和实际设计的结合锻炼了我的综合运用所学的专业基础知识解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。为后继的学习和工作奠定的基础。
8、项目设计报告成绩
指导教师签字:
年 月 日
单片机应用技术课程报告~数码管的静态显示
实验名称
数码管的静态显示
实验时间
2020年7月26 日
学生姓名
实验地点
钉钉群线上
同组人员
专业班级
1、会使用单片机连接外部设备并构建单片机数码管电路。
2、能使用工具软件绘制单片机硬件原理图、能编写简单的C51程序。
3、通过编程,学会在单片机上实现一种数字静态显示控制方法。
2、任务设计要求
1、LED数码管将按照程序设置的方式工作,每隔一段变化一次,依次循环显示0~9十
个数字。
2、程序开始先将“0~9”十个数字的字型码存入一维数组中,然后,每隔1段时间将
数组中的对应字符的字型码通过P2端口送到显示器的段控端,实现相应字符的显示。程序
设计利用for语句循环10次,调用延时函数,依次将“0~9”十个数字的字型码送到显示器
的段控端。
3、总体设计方案
1、程序开始先将“0~9”十个数字的字型码存入一维数组中,然后,每隔1段时间将数
组中的对应字符的字型码通过P0,P2端口送到显示器的段控端,实现相应字符的显示。
2、P0口接共阴极数码管,P2口接共阳极数码管,程序设计利用for语句循环10次,调
用延时函数,依次将“0~9”十个数字的字型码送到显示器的段控端。
4、硬件电路设计
5、软件程序设计
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar i;
void delay()
{ uint k,j;
for(j=600;j>0;j--)
for(k=248;k>0;k--);
}
void main(void)
{ while(1)
{
for(i=0;i<10;i++)
{
P0=table[i];
P2=~table[i];
delay();
}
}
2)性能指标测试及结果分析
程序运行
7、项目总结
这次的实验做得比较顺利,除了在编写程序的时候出现了错误,不过在老师和同学的帮助下程序正常生成了HEX文件,并且能够正常仿真,在连接硬件线路图的时候没有出现错误,这是一个进步。在今后的实验过程中我会更加的注意,减少错误的产生。
相关问答
跪求一篇电阻炉温度控制系统的开题 报告 51 单片机 控制的,写的...[最佳回答]分几个部分写:1、目的及特点2、温度采样3、主电路控制元件4、单片机选型5、温度设置电路6、单片机程序分几个部分写:1、目的及特点2、温度采样3、...
有人知道不!杭州协同控制检测价格表,协同控制检测主要有什...[回答]山顶控制板所包括的主要元件有单片机芯片89C2051,电平转换芯片MAX232,电源模块。由于需遥控的通信设备使用-48V电源,山顶控制板也采用-48V。该板采...