ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:143KB ,
资源ID:835758      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-835758.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM微处理器的数码管驱动设计.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于ARM微处理器的数码管驱动设计.doc

1、课程设计名称: 基于ARM微处理器的数码管驱动设计 题 目基于ARM微处理器的数码管驱动设计课题性质A课题来源D指导教师XXXX同组姓名主要内容1. 利用ARM微处理器实现数码管显示驱动;2.能够显示0 1 2 3 4 5 6 7 8 9等数字,且循环显示;3. 通过按键改变循环显示速度;任务要求1 设计出具体电路,列出所用器件及布线图。2 画出程序流程图,画出子程序或中断流程图。3 说明系统工作原理,对系统进行调试。4 写出课程设计报告。参考文献1 嵌入式系统有关教材2 电路设计手册3 其他资料审查意见指导教师签字: 教研室主任签字: 2014 年 11 月 28 日 说明:本表由指导教师填

2、写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页. 基于ARM微处理器的数码管驱动设计一、 设计要求 1、利用ARM微处理器实现数码管显示驱动; 2、能够显示0 1 2 3 4 5 6 7 8 9等数字,且循环显示; 3、通过按键改变循环显示速度;二、 设计方案本次试验选用的芯片为PXA270,使用的是PXA270集成试验箱。基于Intel XScale架构的PXA270处理器,集成了存储单元控制器、时钟和电源控制器、DMA控制器、LCD控制器、AC97控制器、I2S控制器、快速红外线通信 (FIR)控制器等外围控制器,可以实现丰富的外围接口功能。其低电源运行模式以及动态电源管理技

3、术可以有效的降低电源的功耗。使用试验箱上的4X4的矩阵键盘作为输入,用来控制数码管显示的快慢速度,将需要输出的各个数码管状态从两个数码管中输出。三、 设计原理1、数码管结构七段数码管由8个发光二极管排列组成(包括小数点位)如下图所示:这8个独立的二极管通常被命名:a.b.c.d.e.f.g.h。h表示小数点。利用7段数码管能显示所有数字以及部分英文字母。数码管有2种不同的形式:一种是8个发光二极管的阳极都连一起,成为共阳极8段数码管如图所示:共阳极8段数码管的8个发光二极管的正极一起接VCC,要控制数码管中的某一段亮,比如A段,只须要控制数码管的A脚为低电平就可以了,反之熄灭A段就控制A脚为高

4、电平。另一种是8个发光二极管的阴极都连在一起,称为共阴极数码管,如图所示:共阴极8段数码管的8个发光二极管的正极一起接GND,要控制数码管中的某一段亮,比如A段,只须要控制数码管的A脚为高电平就可以了,反之熄灭A段就控制A脚为低电平。2、 数码管显示方式数码管的显示方式有静态和动态之分。分别介绍如下:(1) 静态相示方式:当8段数码管显示一个字符时,该字符对应的发光二极管控制信号一直保持有效;静态显示方式的每个数码管都需要一组控制信号。 (2)动态显示方式:动态的多组控制信号,轮流扫描这些数码管,十多个数码管可以同时动态显示(相对人眼)。该字符对应的发光二极管是轮流点亮的,即控制信号按一定的周

5、期有效,在点亮过程中,点亮时间是很短暂的,所以视觉看到的依然是很稳定的。3、 数码管驱动电路设计以共阳极数码管为例:用处理器的8个GPIO分别控制数码管中的8段发光二极管,这样往GPIO的引脚送一个低电平就能点亮该引脚对应的一段数码管,由于发光二极管能承受的电流大多是毫安级的,因此还需要外接一个限流电阻。vcc 在实际设计中,处理器一般不是直接用8个I/O脚来控制数码管的显示,而是通过外接一个译码器来控制。最常用的译码器是BCD译码器。如下图所示。1H G F E D C B Acom 2 8 Gpio1 Gpio2 Gpio3 gpio 8ABCDEFGAD 数码管与7段数码管的连接4、程序

6、设计流程图 5、 如何让驱动程序加载到内核(1)添加步骤(括号内容为解释):(以添加led.c驱动程序为例)在确定了自己的代码位置的前提下,建立自己的源代码目录,文件,Makefile,Config.in等。(对于本程序中Makefile文件和Config.in文件已有,只需添加相关内容即可,无需更改)Makefile文件:一个工程中的源文件不计其数,其按类型,功能,模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,或是进行更复杂的功能操作。当执行make命令时,便会调用makefile文件,以告诉make命令需要

7、怎样的去编译和连接程序。Config.in文件:该文件可理解为内核的配置脚本,在执行 make menuconfig 命令时被调用,依靠各子目录的config.in文件,构成整个linux的配置菜单,在内核配置make menuconfig时从config.in中读出菜单,用户选择后保存到.config的内核配置文件中。在内核编译时,主makefile调用这个.config文件,就知道了用户的选择。将自己的led.c源程序放入内核源码drive/char下修改driver/charConfig.in文件,把自己的驱动加入内核配置系统中。在文件中的适当位置(任意,决定了make menuconf

8、ig窗口中的所在的位置)添加内容:dep_tristate s3c2410 led support CONFIG_S3C2410_GPIO_LED $ CONFIG_ARCH_S3C2410代码解释:只要定义了CONFIG_ARCH_S3C2410为y或是m(即在make menuconfig之后的窗口中选择y或是m)character分类下就会出现s3c2410 led support选项,它对应了CONFIG_S3C2410_GPIO_LED的定义。当定义s3c2410 led support为m,即把驱动程序编译为模块(不会编译到内核)生成.O文件,然后手动用insmod加载。当定义s3

9、c2410 led support为y,即把驱动程序生成.O文件并且连接到内核,启动时自动加载。执行make编译时makefile文件会根据obj-m和obj-y编译并连接对应的源码。如果在配置内核时被驱动编译为模块,则CONFIG_S3C2410_GPIO_LED被定义为m,在makefile脚本对应的obj-m中,就会编译led.o为内核可加载的模块修改driver/char/makefile文件添加内容:obj-$( CONFIG_S3C2410_GPIO_LED)+=led.o执行命令:make modules(在linux2.4.182410cl下执行)执行命令:make menuc

10、onfig配置好后进入开发板执行命令:insmod led.o2测试驱动程序(1) 通常测试一个驱动程序都需要相应的应用程序,但对于一些只有标准输入输出例如:open,close(release),read,write等调用的驱动程序,有简单的办法,即使用linux现有的命令例如:cat,echo等实现对设备的访问和控制。(2)通过编写应用程序来测试驱动程序 6、 动态加载驱动1)lsmod 查看是否有驱动程序即.o文件2)insmod led.o 动态添加驱动3)rmmod led 删除驱动 详细步骤如下:建终端,进入arm2410cl/kernel/linux-2.4.18-2410cl行

11、命令#make menuiconfig在窗口中选中“character device,进行相关配置后执行命令#make clean(把环境清理干净)make dep (添加相关依赖文件)make modules进入driver/char目录下,查看是否生成.o文件进入开发板cd host/kernel/linux-2.4.18-2410cl/drivers/char执行命令#insmod led.o执行命令lsmod (查看驱动是否添加成功)在开发板找到相应程序,进入该目录下,运行./led将写好的控制源程序(由汇编程序和C程序共同构成),以及makefile文件,放到共享目录下的文件夹中。进

12、入开发板的相关目录下,执行make命令之后会生成led.bin文件四、 软件编程Main.c#include cvtpxa270.hunsigned char seg7table21 = 0xc0,0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8,0x80, 0x90,0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e,0xf9, 0xb0, 0x92, 0xf8, 0x90;void delay(int count)while(count -);int Main(int argc, char* argv)int i;int ch; int n

13、um; Uart_Select(FFUART);Uart_Init(115200);LibCommInit();Uart_Printf(Keyboard Testrn);for(i=0;i=0x00;i-)ch=Key_GetKey();switch(ch)case 1:num=num-0.19;break;case 2:num+; break;case 3:num=1; break;default:break; *(unsigned char *) 0x04006000) = seg7tablei; *(unsigned char *) 0x04007000) = seg7tablei; d

14、elay(0xffffff*num); return 0; 五、 调试结果 在完成将上述程序烧入系统之后将会在试验箱上看到试验结果,数码管会依次显示数值,并且按下按键数码管的循环显示速度将会发生改变。六、 心得体会这次课程设计虽然经历了很多的困难,但通过和老师以及同学的交流并查找资料,最终完成了课程设计。通过这次课程设计,我学会了很多的东西。一方面,通过这次课程设计,我学会并熟悉了PXA270,巩固了自己的嵌入式知识,通过电路的设计再一次熟悉了数字电路以及模拟电路的知识,并且锻炼了自己查找资料的能力,强化了自己的专业技能;另一方面,我也有了更多的和老师以及同学交流的机会,锻炼了自己的语言表达能力,从软实力上提高了自己,这对于找工作,以及今后的生活与学习都是很有帮助的。通过这次课程设计,我觉得我应该努力的学好自己的专业课知识,这是对于人们生活的丰富大有帮助的,这就是科技,今后还要更加关注细节的处理,在生活中学习,在生活中实践。七、 参考文献1、UP-CUP S2410经典 linux 实验指导书 北京博创科技2.、嵌入式linux系统实例教程 李仁发主审 人民邮电出版社3、嵌入式系统接口设计与linux驱动程序开发 刘淼 编著

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922