嵌入式课程设计报告_第1页
嵌入式课程设计报告_第2页
嵌入式课程设计报告_第3页
嵌入式课程设计报告_第4页
嵌入式课程设计报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《嵌入式控制系统》课程设计报告课程设计题目:小组成绩:项目评阅人任务完成(40分)讲述/回答提问(30分)报告(20分)PPT效果(10分)小组得分:小组成员成绩:组员姓名学号分工描述自评个人贡献分(所有成员贡献分之和为10分)个人最终得分(小组得分+个人贡献分)日期:年月日目录概述…………1一设计内容与要求………1二设计思想…………………1三设计所用芯片及工作原理………………2四系统连线图………………3五连线图说明……………3六程序流程图……………4七程序源代码……………5八设计过程中遇到的问题及解决方法……10九设计心得…………………12数码管计时与LED点阵显示概述此数码管计时与LED点阵显示,是在UP-TECHS2410/P270DVP嵌入式实,验平台上实现的,其数码管计时精度为1s。所使用的芯片主要有74hc273芯片。通过系统电源开关即可开始倒计时,用系统中的两片七段数码管将时间以XX(秒)的形式显示给用户,计时过程结束后LED点阵开始循环动态显示。设计要求按下电源按钮,数码管开始计时,即可显示XX。经过指定时间之后,LED点阵开始循环动态显示。设计要求如下:用七段数码管来显示时间,从00计到99,重复两次用LED点阵循环显示顺序:全亮-“王”字-全黑设计思想计时数码管工作原理,由于本次设计中采用的是七段数码管,因此每个数码管包含了7个发光二级管。假设a为最上一横,那么b,c,d,e,f则以顺时针排列,g为中间那一横。由于开发板中的连接是共阳极,假设要显示0的话,只需a,b,c,d,e,f为0即可,而g为1.从开发板上的连接可以看到a对应d0,b对应d1,···h对应d7,所以当需要显示0时,单片机输出应该为11000000,即0XC0,然后以此类推可以得出显示其他数字时所对应的单片机输出.显示0-9的译码值0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90。片选控制,对于LED与点阵显示的控制,通过IOCTL函数来实现,IOCTL函数通过第二个参数来控制是显示数码管还是点阵。当第二个参数设为0x11时,数码管点亮,当该数为0x12时,点阵点亮。由于倒计时是利用数码管来实现,故函数应写为ioctl(fd,0x12,LEDWORD)。计时控制设计,本次设计要求数码管从00计时到99且要循环2次。因此在程序中首先定义一个数组,分别装入0到9的译码值。设置一个for循环,循环2次。在循环中设置一个子循环,循环10次,其中循环变量i用来指示数组的第几个数,由于有两个数码管要同时显示,所以LEDWORD为16位的数。将LEDWORD左移8位,然后将低八位赋值LEDWORD=(LEDWORD[i]<<8)|LEDWORD[i],从而实现两个数码管显示相同的数值。倒计时的时间差控制由延时函数来实现。点阵动态显示LED点阵工作原理,本次设计中采用8X8LED点阵。点阵LED驱动器逻辑中设置了8个字节的缓冲区,每个字节按位对应点阵LED模块上的一列8个点。驱动器中的扫描电路会将缓冲区的内容不断输出到LED模块,CPU可以读写此缓冲区,从而可以更新现实内容。CPLD内定义了“UPTECH”的字模,在上电后自动将此字模填充到缓冲区,并产生时序定期更新字模在缓冲区的位置,从而实现字符的滚动效果。当CPU第1次写缓冲区之后,驱动器停止“UPTECH”字符显示,继而可以接受CPU写入的数据并加以显示。片选控制,动态显示是利用点阵发光,所以函数应写为ioctl(fd,0x11,LEDWORD)。动态显示控制,本次设计要求LED点阵先全亮,再到显示,然后显示王字,最后全灭如此循环下去。在程序中写入while(1)来实现循环,显示变化的时间差用延时函数来实现,延时时长为s。具体实现方法就是:在while循环里首先将二维数组幅值为,然后写入延时函数,再将二维数组赋值为,再延时,最后将二维数组赋值为,这样就实现了动态循环显示。设计所用芯片及工作原理74HC273芯片简介,74HC273具有八路边沿触发,D型触发器,带独立的D输入和Q输出。74HC273的公共时钟(CP)和主复位(MR)端可同时读取和复位(清零)所有触发器。每个D输入的状态将在时钟脉冲上升沿之前的一段就绪时间内被传输到触发器对应的输出(Qn)上。一旦MR输入电平为低,则所有输出将被强制置为低,而不依赖于时钟或者数据输入。工作原理,在本设计中74HC273用作同步串行转并行的锁存器,并通过SPI总线和CPU相连。当要点亮数码管时,单片机先将数据以串行形式传送到273输入端,然后在时钟上升沿处,数据依次传送到输出端再送到数码管显示,从而实现串行到并行的转换。在点亮点阵时,用到了2个74HC273,分别控制行和列。在每一列与273中间连接了一个三极管。若列控制273芯片某一位为高电平,这一列将会被拉低,那么行控制273芯片中只要为高电平,那么相应点就会被点亮。反之,若列控制273芯片某一位为低电平,这一列将会被拉高,那么这一列点阵就不会发光。74HC245芯片简介,74HC245是总线收发器,典型的CMOS型三态缓冲门电路。245是方向可控的八路缓冲器,主要用于实现数据总线的双向异步通信。为了保护脆弱的主控芯片,通常在主控芯片的并行接口与外部受控设备的并行接口间添加缓冲器,用来保护主控芯片。工作原理,芯片DIR脚控制输入输出端口的转换,由于本设计中要求A为输入B为输出,因此DIR脚应接高电平。芯片E脚为使能端信号,要使三态缓冲门工作,该脚需接低电平。工作时信号从输入端进入到输出端然后传送到点阵显示,并且不能反向传送。245在导通时不仅有缓冲作用,还具有提高总线驱动能力的作用。EPM240芯片简介,EPM240是一个复杂可编程逻辑器件,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。工作原理,首先要画原理图、写硬件描述语言(VHDL,Verilog)→编译→给出逻辑电路的输入激励信号,进行仿真,查看逻辑输出结果是否正确→进行管脚输入、输出锁定→生成代码→通过下载电缆将代码传送并存储在芯片中。最后把电路连接上开始测试,如发现有问题,可重新修改原理图或硬件描述语言,完善设计。系统连线图 8段LED显示器外形 8断对应的数据线 共阳共阴数码管图1数码管连线图图2点阵LED连线图图3CPLD连线图图4电源滤波连线图、图5CPLDJTAG连线图连线图说明数码管连线图数码管的八位分别接一个限流电阻,用来保护数码管。然后LEDA到LEDDP连接到复杂可编程逻辑器件EPM240上,而且数码管采用共阳连接。因此若EPM240输出低电平,相应位就会点亮,反之则熄灭。点阵LED连线图点阵每行分别接一个限流电阻,用来保护每个点的发光二极管。然后连接到复杂可编程器件EPM240上,而每一列则先通过一个八路的三态缓冲器然后再接至EPM240上。CPLD连线图CPLD器件EMP240用来控制数码管以及LED点阵的显示。电源滤波连线图电源滤波电路用来滤掉电源中不需要的谐波成分,使电路更加稳定可靠。CPLDJATG连线图CPLDJTAG电路主要是用来对CPLD进行在线编程及软件测试程序流程图开始开始开始 开始开始开始 打开/dev/led/0raw初始化·打开/dev/led/0raw初始化判断是否打开 N判断是否打开输出打开失败输出打开成功输出打开失败输出打开成功返回-1返回-1进入七段数码管显示进入七段数码管显示结束进入点阵式数码管显示结束进入点阵式数码管显示 程序源代码#include<stdio.h>#include<stdlib.h>#include<fcntl.h>#include<unistd.h>#include<sys/ioctl.h>#include<sys/mman.h>///#include<linux/delay.h>#defineTUBE_IOCTROL0x11#defineDOT_IOCTROL0x12voidjmdelay(intn){inti,j,k;for(i=0;i<n;i++)for(j=0;j<100;j++)for(k=0;k<100;k++);}intmain(){intfd;inti,j,k;unsignedintLEDWORD;unsignedintMLEDA[8];unsignedcharLEDCODE[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedchardd_data[16][10]={{0xff,0,0,0,0,0,0,0,0,0}, {0,0xff,0,0,0,0,0,0,0,0}, {0,0,0xff,0,0,0,0,0,0,0}, {0,0,0,0xff,0,0,0,0,0,0}, {0,0,0,0,0xff,0,0,0,0,0}, {0,0,0,0,0,0xff,0,0,0,0}, {0,0,0,0,0,0,0xff,0,0,0}, {0,0,0,0,0,0,0,0xff,0,0}, {0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0,0}, {0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0,0}, {0x4,0x4,0x4,0x4,0x4,0x4,0x4,0x4,0,0}, {0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0,0}, {0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0,0}, {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0,0}, {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0}, {0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0,0},};unsignedcharwang[10]={0x89,0x89,0x89,0xff,0xff,0x89,0x89,0x89,0,0};unsignedcharmie[10]={0,0,0,0,0,0,0,0,0,0};unsignedcharliang[10]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0,0};fd=open("/dev/led/0raw",O_RDWR);if(fd<0){printf("####Leddeviceopenfail####\n");return(-1);}LEDWORD=0xff00;printf("willenterTUBELED,pleasewaiting..............\n");LEDWORD=0xff00;ioctl(fd,0x12,LEDWORD);sleep(1);for(j=0;j<2;j++)for(i=0;i<10;i++){LEDWORD=(LEDCODE[i]<<8)|LEDCODE[i];ioctl(fd,0x12,LEDWORD);jmdelay(1500);}printf("willenterDIGLED,pleasewaiting..............\n");sleep(1);for(i=0;i<16;i++){ write(fd,dd_data[i],10); jmdelay(1000);}while(1){/* unsignedchara[10];for(i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论