太原理工大学单片机课程设计
更新时间:2024-02-03 17:37:01 阅读量: 教育文库 文档下载
太原理工大学现代科技学院
嵌入式系统基础课程设计
设计名称16×16点阵LED电子显示屏 专业班级 学 号 姓 名 指导教师
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………专业班级 自动化09-2 学号 姓名 成绩
16×16点阵LED电子显示屏的设计 一、功能要求 设计一个16×16点阵LED电子显示屏。要求在目测条件下LED显示屏各亮点度均匀、充沛,可显示图形和文字,显示图形和文字稳定、清晰无串扰、图形或文字显示有静止、移动/移出等显示方式。
二、方案论证
2.1 LED驱动显示方案
大屏幕显示广泛应用于各个领域,动态大屏幕显示系统显示的文字,数字,图形等生动逼真,立体感强。用单片机驱动LED点阵有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。 静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。 如果用静态显示的方法 ,16×16的点阵共有256个发光二极管,单片机没有那么多的端口,如果用锁存器来扩展端口,按8位锁存器来计算,也需要32个锁存器。两位显示就需要64个锁存器。因此在实际应用中的显示屏几乎都不采用静态显示,而是采用动态扫描的显示方法。 本次设计的要求是2位的16×16点阵显示,采用动态显示,扫描电路就可以实现多行的同名列共用一套列驱动器。具体就16×16的点阵来说,把所有同一行的发光二极管的阳极连在一起,把同一列的发光二极管的阴极连在一起(共阳接法),先送出对应的第一行发光二极管亮灭的数据并锁存,然后选通第1行使其亮灭的时间,然后熄灭;再送对应的第二行的数据,依次下去,直到第16行。整个来回的时间只要能够达到每秒24次以上,由于人眼的视觉暂留现象,就可以看到显示在屏幕上的稳定的图像了。 2.2数据传输和显示方案 采用扫描方式进行显示时,每行一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上,这就存在着一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………并行传输的方案不可取。 采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面比较经济。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解为列数据传输和列数据显示两个部分。 解决串行传输中列数据传输和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存的功能。经过上述分析,归纳出列驱动器电路应具备的主要功能,对于列数据段传输来说,应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。 综上所述,本次设计采用动态扫描方式驱动LED显示,采用串入并出的方法实现数据传输和采用并行锁存的方法实现数据显示。 2.3系统整体方案框图 经过分析,给出系统电路原理框图如图1-1。
列驱动器 单片机电源
行驱动器 LED点阵屏 图1-1 系统电路原理框图
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………三、系统硬件电路设计
硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。
3.1单片机系统及其外围电路 本次设计采用单片机STC89C51,使用11.0592MHZ的晶振。单片机的串口与列驱动器相连,用来送显示数据。P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来送控制信号。P0和P2空着,在有必要时可以扩展系统的ROM和RAM.设计的显示界面可显示2个汉字,需要8个8×8 LED点阵模块,组成16×32的矩形点阵。 3.2行驱动电路 单片机P1口低4位输出的行号经4/16线译码器74LS154译码后生成16条行选通信号线,再经过驱动器驱动对应的行线当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。 若将 G1 和 G2 中的一个作为数据输入端,由 ABCD 对输出寻址,54/74154 还可作 1 线-16 线数据分配器。一条行线上要带动16列的LED进行显示,按每一LED器件20mA电流计算,
32个LED同时发光时,需要640mA电流,选用三极管8550作为驱动管可满足要求。
3.3列驱动电路 列驱动器由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。 引脚SI为串行数据输入端,与单片机串口RXD(P3.0)相连,用来传送数据;引脚SCK为移位寄存器的移位时钟脉冲,与单片机串口TXD(P3.1)相连;引脚SCLR信号是移位寄存器的清0输入端,低电平有效,接与单片机P1.5口;RCLK是输出寄存器的打入信号,与单片机P1.6口相接;
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………
图1-2 硬件电路原路图 四、主要元器件功能介绍
4.1 8×8点阵LED结构 LED点阵电子显示屏是利用发光二极管点阵模块组成的平面显示屏幕。8×8点阵是最基本的单元模块,由4
块8×8点阵可构成一块16×16点阵模块,由8块8×8点阵可构成一块18×32点阵模块。 单色8×8点阵外形及结构如图1-3:
图1-3
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………从图1-3中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;如要将第一个点点亮,则9脚接低电平13脚接高电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接低电平,而(13、3、4、10、6、11、15、16)这些引脚接高电平,那么第一行就会点亮;如要将第一列点亮,则第13脚接高电平,而(9、14、8、12、1、7、2、5)接低电平,那么第一列就会点亮。
4.2 74LS154芯片介绍
74LS154为4线-16线译码器,其管脚图如图1-4所示。
引脚A,B,C,D为译码地址输入端,低电平有效;G1,G2为选通端,低电平有效;0-15为输出端,低电平有
效。其功能表如图1-5所示。
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………图1-5
4.3 74LS595芯片介绍 74LS595是一个8位串行输入并行输出的移位寄存器和一个8位输出锁存器的结构。74HC595的内部结构如图1-6它的输入端有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SER是串行数据的输入端。引脚SRCLK是移位寄存器是移位时钟脉冲,在其上升沿发生移位,并将SER的下一个数据打入最低位。移位后的各路信号出现在各移位寄存器的输出端。RCLK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚E是输出三态门的开放信号,只要当其为低时锁存器的输出才开放,否则为高阻态。SRCLK*是寄存器的清零输入端,当其为低电平时输出全部为零。由于SRCLK和RCLK两个信号是互相独立的,所以能够作到输入串行移位与输出锁存互不干扰。芯片的输出端为Q0——Q7,最高位Q7可以做为多片74LS595级联应用向下级的芯片输入。但因Q7受输出锁存器打控制,所以还从输出锁存器前引出了QT作为级联输出。
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………图1-6
五、系统软件设计 显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可把显示屏的软件系统分成两大层:第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其它控制信号,配合完成LED显示屏的扫描显示工作。显示驱动程序由定时器T0中断程序实现。系统应用程序完成系统环境的设置、显示效果处理等工作,由主程序来实现。 5.1 显示驱动程序 显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,然后显示驱动程
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………序查询当前燃亮的行号,从显示缓寸区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生的拖尾现象,驱动程序先要关闭显示屏,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图1-7是显示驱动程序的流程图。
进去中断 定时器赋初值 读取行号并增1 送新行显示数据 消隐 切换显示数据 送新行号、打开显示 退出中断
图1-7 5.2系统主程序
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口以及显示效果。如、左移、右移等。系统主程序的流程图如图1-8所示。
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………开始 系统初始化 左移显示效果 两边对移显示效果 上移显示效果 图1-8
六.调试及性能分析
6.1硬件调试 首先检查各个焊接点的焊接是否焊接正确,看是否有短路和断路,看各条线连接是否确,对照原理图逐条线逐个点的检查;然后检查芯片的没个引脚的功能,看其是否有实现,一部分一部分的检查。直至检查出错误或保证电路完全正确。在本次设计中由于连线过多加至板面有限,布线时线布的过于密,因此要防止相邻的两条线之间短路,所以要一条线一条线的检查,把短路的给分离开,把断路的给补上。硬件调试时首先要检查晶振是否会正常起振,既看AT89S52的18脚是否有约12MHZ的频率,看30是否有1/6的晶振频率;然后再检查74LS154的使能端是否正常工作;再看74LS595的SER端是否有脉冲并检查其它引脚的脉冲和时序是否都正常工作。最后再检查LED灯的各行和各列是否都连接正确。各部分都调试正常之后就可以进行软件调试了。
6.2软件调试 软件部分需要调试的分需要调试的主要有显示屏的刷新率及显示效果部分。 显示屏的刷新率由定时器T0的溢出率和单片机的晶振频率决定。显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏的刷新率的稳定。定时器T0设定为工作方式1,即16位定时器模式,晶振频率f为11.0592MHZ,通过计算得定时器T0的初值TH0=0XFCH,TL0=0X18H. 显示效果处理程序的内容及方法非常广泛,本次采用的是左移、两边对移、和上移。 调试时要编一些检查LED灯是否完好、是否连接正确的小程序,看控制的端口的控制命令是否正确,
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 岁 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x01,0x00,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x04,0x00,0x04,0x00,0x0F,0xF8, 0x10,0x10,0x24,0x10,0x42,0x20,0x02,0x40,0x01,0x80,0x06,0x00,0x18,0x00,0x60,0x00, /*-- 文字: 拥 --* / /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x00,0x13,0xFE,0x12,0x22,0xFE,0x22,0x12,0x22,0x13,0xFE,0x16,0x22,0x1A,0x22,
0x33,0xFE,0xD2,0x22,0x12,0x22,0x12,0x22,0x14,0x22,0x14,0x22,0x58,0x2A,0x20,0x04,
/*-- 文字: 抱 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x11,0x00,0x11,0x00,0x11,0x00,0x11,0xFC,0xFE,0x04,0x12,0x04,0x17,0xE4,0x1A,0x24, 0x32,0x24,0xD3,0xE4,0x12,0x14,0x12,0x08,0x12,0x02,0x12,0x02,0x51,0xFE,0x20,0x00, /*-- 文字: 新 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x00,0x08,0x0E,0x7F,0x70,0x22,0x40,0x14,0x40,0xFF,0x7E,0x08,0x48,0x08,0x48, 0xFF,0x48,0x08,0x48,0x2C,0x48,0x2A,0x88,0x4A,0x88,0x89,0x08,0x2A,0x08,0x10,0x08, /*-- 文字: 生 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x80,0x10,0xC0,0x10,0x80,0x10,0x88,0x1F,0xFC,0x20,0x80,0x20,0x80,0x40,0x88,
0x9F,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x84,0x7F,0xFE,0x00,0x00,
}; register unsigned char i,j,k,l;
SCON =0x00; TMOD =0x01;
TR0 =1;
P1 =0x3F; IE =0x82; 太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………while (1) { for(i=0;i<16;i++) { for(j=0;j<2;j++) for(k=1;k<9;k++) { for(l=0;l<16;l++) { dispram[l*BLKN] = dispram[l*BLKN] << 1 | dispram[l*BLKN+1] >> 7; dispram[l*BLKN+1] =dispram[l*BLKN+1] <<1 | Bmp[i][l*2+j] >> (8-k);
dispram[l*BLKN+2] =dispram[l*BLKN+2] <<1 | dispram[l*BLKN+3] >> 7;
dispram[l*BLKN+3] =dispram[l*BLKN+3] <<1 | Bmp[i+1][l*2+j] >>(8-k); } delay(100); } }delay(2000);
for(i=0;i<4;i++) { for(j=0;j<2;j++)
for(k=1;k<9;k++) {
for (l=0;l<16;l++)
{dispram[l*BLKN] = dispram[l*BLKN] >> 1 | dy[i*2][l*2+1-j] << (8-k);
dispram[l*BLKN+1] =dispram[l*BLKN+1] >> 1 |dispram[l*BLKN] << 7; dispram[l*BLKN+2] =dispram[l*BLKN+2] << 1 | dispram[l*BLKN+3] >> 7; dispram[l*BLKN+3] =dispram[l*BLKN+3] << 1 | dy[i*2+1][l*2+j] >> (8-k); 太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………} delay(30); }
delay(2000); }delay(2000); for(i=0;i<4;i++) {for(j=0;j<16;j++) { for(k=0;k<15;k++) {dispram[k*BLKN]=dispram[(k+1)*BLKN]; dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1]; dispram[k*BLKN+2]=dispram[(k+1)*BLKN+2]; dispram[k*BLKN+3]=dispram[(k+1)*BLKN+3]; } dispram[60]=sgp[i*2][j*2]; dispram[61]=sgp[i*2][j*2+1]; dispram[62]=sgp[i*2+1][j*2]; dispram[63]=sgp[i*2+1][j*2+1];
delay(100); } }delay(2000); } }
void delay(unsigned int dt) { register unsigned char bt; for(;dt;dt--) for (bt =0;bt<255;bt++); 太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………} void leddisplay(void) interrupt 1 using 1 { register unsigned char i,j=BLKN; TH0=0xFC; TL0=0x18;
i=P1; i=++i & 0x0f; do { j--; SBUF = dispram[i*BLKN+j];
while(!TI);TI=0;
} while(j); G=1; P1&=0xf0; RCLK = 1; P1 |=i; RCLK=0; G=0; }
附录二 系统PCB图 太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………目录
一、功能要求
二、方案论证
2.1 LED驱动显示方案
2.2数据传输和显示方案 2.3系统整体方案框图 三、系统硬件电路设计
3.1单片机系统及其外围电路
3.2行驱动电路
3.3列驱动电路
四、主要元器件功能介绍
4.1 8×8点阵LED结构
4.2 74LS154芯片介绍
4.3 74LS595芯片介绍
五、系统软件设计
5.1 显示驱动程序
5.2软件调试
六.调试及性能分析
6.1硬件调试
6.2软件调试
七.设计总结
参考文献 附录一: 完整源程序
附录二:系统PCB图
太原理工大学现代科技学院 课程设计
……………………………………装………………………………………订…………………………………………线………………………………………目录
一、功能要求
二、方案论证
2.1 LED驱动显示方案
2.2数据传输和显示方案 2.3系统整体方案框图 三、系统硬件电路设计
3.1单片机系统及其外围电路
3.2行驱动电路
3.3列驱动电路
四、主要元器件功能介绍
4.1 8×8点阵LED结构
4.2 74LS154芯片介绍
4.3 74LS595芯片介绍
五、系统软件设计
5.1 显示驱动程序
5.2软件调试
六.调试及性能分析
6.1硬件调试
6.2软件调试
七.设计总结
参考文献 附录一: 完整源程序
附录二:系统PCB图
正在阅读:
太原理工大学单片机课程设计02-03
2007~2008学年第二学期物理化学B-1期末试卷(A)卷(闭)10-23
党支部民主评议党员工作总结12-05
某地块附着脚手架方案06-29
如何选择合适的数字视频光端机03-11
世界读书日活动总结范文12-27
男人帮观后感12-11
《窗前的气球》教学反思02-21
新加坡留学签证申请条件05-30
矿井建设重点岗位应急预案04-26
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 太原
- 单片机
- 理工
- 课程
- 设计
- 大学
- 权责发生制练习题
- 2017-2018学年浙江省临海市白云高级中学高一9月月考语文试题
- 浅论我国成年意定监护制度的完善
- CCS5.5应用常见问题解决经验总结(全为实践操作所得)
- 水生植物
- 竞选职务的认识和工作展望
- 中国歌剧舞剧院考级委员会院外社会艺术水平考级报名表(舞蹈)
- 信访工作调研报告
- 微观经济学第五版部分习题参考答案1
- 磷石膏制硫酸联产水泥(或熟料)可行性研究报告
- toec-40文档
- 广东自考 组织行为学(2013年至2010)真题及答案
- DSP课程设计论文 - 图文
- dianzi
- 数字摄影测量学习题总结
- 网络故障
- 反恐防暴安全知识 竞赛试题(1)
- xxx 人大代表在行动活动方案
- 与视角有关的解直角三角形应用题
- 松鼠的精神、海狸的行为方式和大雁的天赋