《嵌入式系统课程设计报告书》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计报告书(9页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统课程设计一、目的嵌入式系统课程设讣为学生提供了一个理论与实践相结合的机会。既锻 炼了学生动手能力,乂会加深理解学生在课堂所学习的理论知识。通过课程设计 可以将课本上的理论知识和实际应用有机的结合起来,培养学生乂动脑,乂动手, 独立思考分析问题的能力,提高学生运用所学知识解决实际问题的综合素质。嵌入式系统课程设计的主要口标是:(1)掌握构建嵌入式系统软硕件平台的基本技能;(2)具备基本嵌入式系统下C语言编程能力、嵌入式操作系统基本调试的 能力;(3)了解应用嵌入式系统技术开发一套嵌入式系统设备的方法。二、设计题目基于ARM的滚屏LED广告牌开发三、设计原理1、点阵LED屏硬件原理EMB
2、EST实验平台设计了一个16X16的点阵屏。点阵屏由发光LED矩阵块组 成。16X16点阵屏即屏上有16X16个LED发光二极管,每个发光二极管可理 解为一个像素点,它们被按着行与列的形式整齐地排列,通过控制每个LED (像 素点)的亮灭,点阵屏可与计算机同步显示汉字、英文文本和图形。本实验平台 的点阵屏电路如下图:STRV-/VDDDATAOECLKQ51614GXD1 O111911162Q8aaSTR DATA CLK、RD OEQ5Q161211VDD50LOE LLULL14LL15 LLN图1点阵屏的行扫描信号DATA CLKQIQ20 aGNDDDOEaa5Q0QSISTRIDA
3、TICLKGQOQZLOELR13UU4LR1SLR169图2点阵屏的列扫描信号丄0 ,31UUQlllf图3点阵屏的行驱动信号图4点阵屏的接口电路本实验平台使用的16X16点阵屏上,每一行16个LED,它们采用共阳极的 接法;每一列16个LED,它们釆用共阴极的接法。如上图4中,QL1QL16是点 阵屏的行驱动信号,每一个信号控制一行;LR1LR16是点阵屏的列驱动信号, 每一个信号控制一列。故通过利用相应行线输出高电平,相应列线输出低电平, 就可以点亮点阵屏上相应的LED。如果按着一定的控制或扫描方法,就可以实现 汉字、图形的显示。为了能够稳定地控制点阵屏的显示,本实验平台采用了 CD40
4、94作为行线和列线扫描信号的控制芯片。CD4094芯片简单来说就是一串入 并出的功能,将CPU的串行数据转化为并行数据输出。如上图1与图2,行(列) 扫描信号分别采用了两片CD4094级连的方式来构成,第一片的数据溢出信号LQS 连接到第二片的串行数据输入口。在图1中,当CPU通过DATA引脚串行输入16 位的行扫描信号时,第一片CD4094 (标号U1101)存储先输入的8位数据,后输 入的8位数据通过引脚LQS溢出,然后输入并存储到第二片CD4094(标号U1102 )。 CLK信号是时钟信号,当时钟信号为高电平时,CD4094允许串行输入的数据发 生变化。LL1LL8是并行输出信号。LO
5、E为全局输出使能信号,当LOE输入高 电平时,CD4094上锁存的并行数据全部输出。列线扫描信号也是同样的方式, 如图2o在图3与图4中,行线扫描信号LL1LL16分别外接电阻邙R流)后接至 NPN型三极管,最后引出行线驱动信号QL1QL16。三极管提高了行线输出信号 的驱动能力。在图4中,如果RQx (x为116的整数)输出低电平,那么相应 的三极管导通,行驱动信号QLx (x为116的整数)将输出高电平。2.软件设计本实验要求编写点阵屏驱动程序以及点阵屏应用程序。驱动程序要现字符、 图形显示;应用程序可以调用驱动接口,在点阵屏中显示字符与图形。要在点阵屏上显示字符、图形,只需要按照字符/图
6、形的编码,点亮矩阵屏 上相应的LED即可。在本实验平台上,矩阵屏为16X16点阵,每屏显示两个 字符,只需要把16X8点阵的字库码送到可容纳两个字符字库码(2X16字节) 的显示缓冲区,然后根据显示缓冲区的容控制点阵屏上LED灯的亮灭。字库码表 明了显示某个字符时点阵屏上的LED的亮灭布局,每一个LED灯的状态用一位 二进制表示,1表示该LED亮,0表示该LED灭,对于16X8点阵的字库码,每 个字符的字库码所占用的存储容量为16*8/8二16 Byteo在点阵屏显示驱动程序中,开辟一个显示缓冲区用来接受字库码,(字库码 是由应用程序传递过来的),然后采用动态扫描的方法来实现字符、图形的显 示
7、。每次扫描一行,这样依次循环扫描16行,经过一定的延时处理,就可以实 现字符、图片的静态显示。为了实现字符和图片的动态流动显示,还需要一个大 小为可容纳3个字符字库码(3X16字节)的缓冲区,该缓冲区中每次保存3个 字符的字库码。在显示过程中,为了达到流动效果,每次将该缓冲区中的前两个 字符字库码的各字节左移i位与其后第16字节右移8-i位相或的结果复制 到显示缓冲区中显示,直到第一个字符完全移出、第三个字符完全移入时,更新 缓冲区。如此循环即可实现字符的流动显示。在显示时,根据字库码,对点阵屏逐行动态扫描。扫描时,行线的数据与列 线的数据都通过CD4094锁存起来,然后经过片选使能再同时输出
8、。在本设计中,使用到的通用端口有GPI0B4/5, GPIOCO/7, GPI0D10, GPI0G8, 因此对它们的工作模式应配置为输岀模式。四、设计要求(1) 分析矩阵LED屏模块硬件原理图,了解矩阵LED屏块基本的构成及其硬 件电路的基本工作原理。(2) 使用ULINK2仿真器连接Embest EduKit-IV实验平台上使用Ke订软件 编写矩阵LED屏模块的驱动程序并调试,使得矩阵LED屏模块可以正常工作运行。(注:代码要求条理清晰,并在主要程序代码部分添加注释说明)(3) 编写相应的嵌入式程序,要现在EMBEST开发箱矩阵LED屏左滚屏、右 滚屏显示广告容信息的子程序。(4) 按下开
9、发箱上KEY1,开发箱ADCO通道的转换数值滚屏显示在LED广告 屏上,按下开发箱上KEY2, LED广告屏滚屏显示自己名字的拼音。五、实现程序代码#include H24101ib.hMinclude HsysJnit.hHinclude fonts.h”#includc vledl6xl6.hMextern void txdrdndmsigncd char n);extern void txdispram(unsigned char n);extern void led_char_disp(void);extern void adcjest(void);int main(void)UINT
10、8T rpt、i;sysjnit();/ Initial systemuart_printf(*n Please Look At The 16X16 LEDSnH);ledjnit();/ Initial led diplaywhile(l)for(i=0;i176;i+)txdrdn(i);rpt=2O;while(rpt-)lcd_char_disp();#includc u24101ib.hMinclude vziku.hHinclude Hfonts.hM#includc HlcdI6xl6.hH#dcfine En_Dataout rGPBDAT 1= 0x20#define Dis
11、En_Dataout rGPBDAT &= OxFFDF#dcfine CLK_H rGPDDAT 1= 0x400#dcfine CLK_L rGPDDAT &= OxFBFF#define Rdata.H rGPCDAT 1= 0x1#define Rdata_L rGPCDAT &= OxFFFE#dcfine Ldata_H rGPCDAT 1= 0x1#dcfine Ldata_L rGPCDAT &= OxFFFE#dcfine Lstr_H rGPBDAT 1= 0x10#dcfine Lstr_L rGPBDAT &= OxFFEF#define Rstr.H rGPGDAT
12、1= 0x100#dcfine Rstr_L rGPGDAT &= OxFEFFINT8T cTemp;INT8T cEnChangeO.cEnChangel;UINT8Twangshuai=0x00.0x08,0x7E0xFC,0x01.0x00,0x01.0x00.0x01.0x00.0x01,0x00.0x01.0x08.0x3F.0xFC 0x01,0x00,0x01,0x00,0x01.0x00,0x01.0x00.0x01,0x04.0xFE0xFE. OxOO.OxOO. OxOO.OxOO, 0x08.0x20,0x08,0x20,0x0&0x20,0x4B,0xFE、0x4A
13、,0x22.0x4A.0x22.0x4A0x22,0x4A0x22, 0x4A.0x22.0x4 A,0x22,0x4A,0x22,0x 12,0x2E,0x 12.0x24.0x20.0x20,0x40.0x20.0x80,0x20.0x00,0x00,0x00,0x00,0x00,OxOO,Ox 10,0x00,0x70,0x00,Ox 10,0x00,Ox 10,0x00,Ox 10.0x00,Ox 10.OxOO,Ox 10.OxOO,Ox 10.OxOO.Ox 10.0x00.0x 10.0x00.0x7C,0x00,0x00.0x00,0x00.0x00, 0x00.0x00,0x
14、00.0x00,0x00,0x00,0x18,0x00.0x24,0x00.0x42,0x00.0x42,0x00.0x42,0x00, 0x42.0x00,0x42,0x00,0x42,0x00,0x42,0x00.0x24,0x00.0x18,0x00.0x00.0x00.0x00.0x00, OxOO.OxOO.OxOO. OxOO.OxOO. 0x00.0x3C,0x00.0x42,0x00.0x42,0x00.0x42,0x00.0x04.0x00, 0x04.0xO0,0x08.0x(X),0xl0.Ox0O,0x20.0x00,0x42,0x00.0x7E,0x00,0x00.0
15、xO0,0x00.0xOO, OxOO.OxOO,OxOO.OxOO,OxOO.OxOO,Ox 10.0x00.0x70. OxOO.Ox 10.0x00. Ox 10.OxOO.Ox 10,0x00,Ox 1 OrOxOO,Ox 10.0x00,0x 10.OxOO.Ox 10.OxOO.Ox 10.0x00.0x7CQx00.0x00. OxOO.OxOO. 0x00, 0x00.0x00,0x00.0x00,0x00,0x00,0x3C.0x00.0x42.0x00.0x42,0x00,0x42,0x00,0x04.0x00, 0x04.0x00,0x08,0x00,0x10,OxOO,Ox20.0xOO,Ox42,OxOO.Ox7E,OxOO,OxOO.OxOO,OxOO.OxOO, 0x00.0x00,0x00.0x00,0x00,0x00,0x3c,0x00.0x42.0x00.0x42,0x00,0x04,0x00,0xl &OxOO, 0x04.0x00,0x02.0x00,0x02,0x00,0x42,0x00.0x44.0x00.0x38,0x00.0x0