导航:首页 > 操作系统 > 单片机1616点阵报告

单片机1616点阵报告

发布时间:2022-10-09 06:26:52

单片机控制的16*16点阵显示汉字,为什么出现的字体是镜像的怎么改正

单片机控制的16*16点阵显示汉字,出现字体是镜像的现象是由于取点阵时扫描方向搞反了。改正方法是逆序读点阵数组数据,即原来从数组0下标开始读改为从下标15开始倒着读,写的顺序不变,就矫正了。

⑵ 单片机1616点阵显示汉字程序

首先要用取模软件,获得要显示的汉字的字模,每行两个字节,共32字节。然后单片机控制每次送一行的数据,并进行显示,轮流16次,再反复即可。

⑶ 单片机16*64LED点阵问题

取模就是一个查表,先定义一个字模表
unsigned char code digit_tab[10][8]={ //这是8*8的字模
/*0*/ 0x00,0x18,.......0x00,
/*1*/
..
/*9*/
};
取时 a=digit_tab[num][line];就取出数字 num的第line行的数据了。
变量的话,首先要有8个临时字节来存放取出来的8个数据,把他们移位出去。
再有16个字节来存放每个 8*8点阵要显示的数字
还有一个行数 line

⑷ 单片机LED16×16点阵,主要参数有哪

摘要 您好。我帮您查询了,点阵 LED 显示屏作为一种现代电子媒体,具有灵活的显示面积(可任意分割和拼装)、高亮度、长寿命、数字化、实时性等特点,应用非常广泛。

⑸ 用51单片机做16*16点阵广告屏设计的开题报告怎么写

1:Dais-PG206试验箱,这是教学用的,应该是你们学校的实验仪器,建议你到实验室了解一下。
2:16×16点阵就是256个LED发光二极管集成在一块上,16个脚接高电平16脚通过限流电阻接地,通电就亮,原理很简单。
3:通信原理这个定义很广泛,不过用在你的设计上用VB6.0做上位机通信程序,那必须得用到“串口通信”,做这个设计了解这个协议就足够了,这个通讯协议肯定比你想的要简单。
4:16×16点阵要显示汉字,一直亮着很耗电,为了节约能源用单片机循环点亮的方式,大概一秒钟点亮12次以上,人眼看到的基本就是一直亮的状态,原理就是这样,至于怎么实现,你可以在网上下一个C程序,自己读一遍(如果你会的话,程序不会很长,真想学的话找个人教你1天就能读懂那个程序)。
5:键盘程序在网上找很多,原理就是判断单片机引脚的电平状态,别忘了加防抖程序。
6:整个系统的原理弄明白了,电气图自然就会画了。
开题报告:谈谈现在广告屏的现状,以后的发展趋势,本系统的大概说明字数不用太多

补充一句:毕业设计是在学校最后一次学习的机会,好好珍惜吧,即使一点不会最好还是硬着头皮自己做,以后受益匪浅,祝你好运!

⑹ 51 单片机16*16点阵显示

你把数字的那个码字改为16*16的不就可以了吗
这都不影响的
点阵的话相当于前面有8个8位全部为00H
全部为16*16后用一个左移指令就可以了
http://hi..com/lphaff/album/item/0ed09dfada8f5303a9d3116c.html

⑺ 用单片机实现16*16点阵显示,要用C语言编写程序+注释,顺便还要原理图,能帮帮忙么

问题:
1.字符串没加结束标志'\0'
2. else if(ns>=n&&nt<n)
for(i=0;i<n;i++)
{m1[i]=s[i];
strcat(m1,t);
strcpy(s,m1);
}
这段错误

#include"iostream.h"
#include"string.h"
#include"stdio.h"
void mystrcat(char s[],char t[],int n)
{
char m1[100],m2[100];
int i,ns,nt;
ns=strlen(s);
nt=strlen(t);
if(ns>=n&&nt>=n)
{
for(i=0;i<n;i++)
{
m1[i]=s[i];
m2[i]=t[i];
}
m1[i]='\0';
m2[i]='\0';
strcat(m1,m2);
strcpy(s,m1);
}
else if(ns<n&&nt>=n)
{
for(i=0;i<n;i++)
m2[i]=t[i];
m2[i]='\0';
strcat(s,m2);
}
else if(ns>=n&&nt<n)
{for(i=0;i<n;i++)
{m1[i]=s[i];
}
m1[i]='\0';
strcat(m1,t);
strcpy(s,m1);
}
else
strcat(s,t);

}

void main()
{
char s[100],t[100];
gets(s);
gets(t);
int n;
cin>>n;
mystrcat(s,t,n);
puts(s);
}
我可以帮助你,你先设置我最佳答案后,我网络Hii教你。

⑻ 基于单片机的16×64点阵字符控制系统的设计

我做过这样的毕业设计,16*64点阵显示屏,可以各种显示,时间,温度等功能。
给你一个参考:
可以去我的博客下载: http://www.shenzhenwangzhanyouhua.com/seo/ds1302-18b20-1664-display.html

LED 点阵汉字显示屏

概 述

这次比赛制作由于时间紧,同时为了降低制作难度, 仅作了四个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。

设计制作主要运用于学校的宣传栏,如:本科评估的各种信息,学校学院重要通知,天气预报等各种信息。

系统设计

一 硬件电路

(1)系统组成:

主要硬件电路:LED 点阵条屏是由 16 个 8*8 的 LED 点阵块组成,形成 16*64 矩形点阵,以AT89S51为控制核心。显示屏的其他主要硬件有:

① 带锁存输出的 8位移位寄存器74HC595,作为LED的列线驱动输入;

② 四六译码器 74LS154,作为 LED行线的译码选择(实际制作中考虑成本问题改为两个74HC138联合);

③ 三极管 9012,连接四六译码器的十六个输出端,作为开关使用,驱动LED的行线。

图二 AT89S51单片机最小系统

AT89S51相关器件连接的接脚如下:PA0-PA3连接4-16译码器的输入口A,B,C,D;PB0-PB3连接74HC595的输入口 SI,SCK,RCK;PD6-PD7作串口通信使用连接RxD,TxD 两个三八译码器74LS138组成的16个输出端连接 16 个 9012的三极管的基极 B,发射极E 连接5V电源,集电极C连接到三个汉字点阵的16 个行线控制端。 点阵的 48 列数据线驱动由 6 片 74HC595 级联组成,前一片 74HC595 的 Q’H 引脚连接下一片的SI引脚,各片的SCK、RCK、SRCLR、G引脚分别并联。

(2)LED点阵块

图三 LED点阵块

8*8的LED点阵为单色行共阴模块,单点的工作电压为正向(Vf)=1.8 v ,正向电流(IF)= 8-10 mA 。静态点亮器件时(64点全亮)总电流为 640mA,总电压为 1.8 v,总功率为 1.15 W。动态时取决于扫描频率(1/8或1/16秒),单点瞬间电流可达 80-160 mA。 16*16点阵静态时16*16*10mA,动态时单点电流80-160mA。

实际测试:整机电流700 mA

(2) 移位寄存器74HC595

图四 74HC595内部逻辑图

74HC595是带锁存输出的8位移位寄存器,其管脚见下图,其中SI是串行数据的输入端;VCC、GND分别为电源和地;RCK是存储寄存器的输入时钟,SCK是移位寄存器的输入时钟,SCLR是移位寄存器的输入清除,Q’H是串入数据的输出,G是对输入数据的输出使能控制,QA~QH串入数据的并行输出。从SI口输入的数据在移位寄存器的SCK脚上升沿的作用下输入到74HC595中,在RCK脚的上升沿作用下将输入的数据锁存在74HC595中,当G为低电平时时,数据并行输出。SCLR为移位寄存器的输入清除端。

(3) 74HC138以及驱动电路

图五 74HC138以及驱动电路实物图

4-16线译码器(用两块74HC138组成),其管脚如图所示,A,B,C,D为译码的输入端,值的区间从0000到1111,Y1~Y15是对应A,B,C,D四个输入引脚的输出脚,其中选中的线用输出低电平,没有选中的输出高电平,G1、G2是使能端,只有输入相应D低电平才能使译码器正常工作。

驱动三极管为16个9012,用万能板焊接。

二 软件设计

单片机方的程序设计 单片机在LED点阵汉字显示系统中主要负责数据的接收、存储和扫描显示 LED点阵屏三大主要功能。串行移动的子程序设计 这是一个通用子程序,在显示子程序中都要被调用,功能是移位寄存器 74HC595接收单片机发出的点阵行数据,逐位移动到对应位置后再进行锁存和输出工作,同时对四六译码器进行开关工作,控制屏幕的显示。

部分程序:初始化程序:

#include <AT892051.H>

#define uchar unsigned char

#define uint unsigned int

#define SPEED 3

uchar col,disrow;

uint word;

uchar code HZ[];

uchar BUFF[6];

void loadoneline(void);

void sendoneline(void);

发送部分程序:

void sendoneline(void)

{

char s;uchar inc;

if(col<8)inc=0;else inc=1;

for(s=4+inc;s>=0+inc;s--)

{

SBUF=two_onebyte(BUFF[s],BUFF[s+1]);

while(!TI);TI=0;

}

}

三 调试

调试主要分为硬件调试和软件调试:

硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足。

软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。

四 总结

在 LED点阵汉字显示屏的设计过程中,学到了很多东西,基本了解了整个嵌入式开发的流程。例如,在进行整个设计之前,应该先根据需求分析,对单片机进行选型,然后对各个硬件模块进行搭试。在画PCB电路板的时候,要注意基本的布板原则。例如,在进行PCB布板的时候,滤波电容不够靠近芯片的电源脚和地脚。在进行搭试点阵块的时候,因为电压过高,导致点阵块损坏。这次第一届电子设计制作,本人受益非浅,在以后的电子设计制作过程中一定吸取教训。

参考文献:

[1]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社.1998.

[2]杜春雷.如何使用Visual Basic 6.0 dP3~ [M].北京:机械工业出版社,1999.

[3]孙育才.新型AT89S51系列单片机及其应用[M].北京:清华大学出版社.2005.

经验小结:
1,在头文件增加“#pragma SRC(LED.ASM)”语句,可以生成汇编文件,对于理解

汇编语言程序是有很大的好处的。
2,在制作PCB板过程中,业余条件下很难做双面板,不地不做的时候考虑如何布

线才能达到最优最好。
3,在“http://xie-gang.com/WNFZQ.htm”;Keil C51软件的安装,按照该软件

的安装,可以得到无限量的程序编译。因为在写程序的过程中发现,KEIL C51 只

能编译2K的程序代码,不够用。用C编写,感觉很容易理解。程序编写过程中最好

是先参考别人的程序,再修改能不能实用自己的程序要求,之后才自己去编写完

全属于自己的程序。
4,单片机仿真软件 PROTEUS 也是很不错的。在上面可以仿真很多东西。

设想:
1,可以挂在学校的十字路口,提供日期,时间,温度,湿度等天气信息,服务广大同学。
2,可以和电脑相连接,实现同步显示。做一个完整的系统。

进一步学习下面的软件或者语言(知识):
BV
protel 99 se
keil c51
proteus
c/c++
easy isp 51
Easy 51Pro.exe

2007-5-25

下面为静止显示“农林大学”四个字的程序:

#include <REG51.h>
#define uchar unsigned char
#define uint unsigned int
uchar disrow;
uchar code HZ[];
uchar BUFF[9];
void loadonelineandsend(void);
/********************************************/

/*******************************************************/
void main(void)
{
while(1)
{
for(disrow=0;disrow<16;disrow++)
{
loadonelineandsend();
P1=0x10+disrow;
P1=0x20+disrow;
}
}
}
/******************************************************/
void loadonelineandsend(void)
{
uchar s;
int q;
q=0;

for(s=0;s<4;s++)
{
BUFF[q]=HZ[32*s+disrow*2];
BUFF[q+1]=HZ[32*s+disrow*2+1];
SBUF=255-BUFF[q+1];
while(!TI);TI=0;
SBUF=255-BUFF[q];
while(!TI);TI=0;

}
}
/******************************************************/

/***********农林大学********************************************/
uchar code HZ[]=
{
0x01,0x00,0x01,0x00,0x7F,0xFE,0x41,0x02,0x81,0x04,0x02,0x00,0x02,0x08,0x05,0x18,
0x09,0x20,0x18,0xC0,0x28,0x80,0x48,0x40,0x88,0x30,0x0A,0x0E,0x0C,0x04,0x08,0x00,
0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x24,0xFE,0xFE,0x08,0x20,0x18,0x60,0x1C,0x70,
0x2A,0xA8,0x28,0xAE,0x49,0x24,0x8A,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x80,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x0E,0x60,0x04,0x00,0x00,
0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
};

⑼ 关于单片机的16*64点阵显示(不好意思没悬赏分,不是我不想给是我现在没分了)

看出来了,你希望做一个LED点阵电子钟。
这里要纠正一点:
74HC595是列驱动。行驱动通常通过译码器138/154及行管4953或127来实现。
通过八个变量存储待显示的字符内容,再获取各变量的逐行字模,移位并扫描可以。
只要实现了,满足了要求就是好方法。
能告诉我问题吗?还是你自己觉察到了什么问题或没有达到要求。

阅读全文

与单片机1616点阵报告相关的资料

热点内容
有什么学习高中语文的app 浏览:280
安卓手机的表格里怎么打勾 浏览:407
阿里云服务器有网络安全服务吗 浏览:966
超解压兔子视频 浏览:22
单片机怎么测负脉冲 浏览:172
魅族备份的app在哪里 浏览:738
java倒三角打印 浏览:112
通达信回封板主图源码 浏览:44
战地什么服务器 浏览:299
安卓为什么老是闪退怎么办 浏览:803
乐高机器人的编程软件下载 浏览:223
工作中怎么使用加密狗 浏览:735
云服务器的后台找不到 浏览:98
php逐行写入文件 浏览:912
javaoracleweb 浏览:440
京东加密码怎么弄 浏览:467
单片机程序员培训 浏览:992
PHP商城源代码csdn 浏览:636
怎么把电脑里文件夹挪出来 浏览:693
java流程处理 浏览:685