欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:835758       资源大小:143KB        全文页数:9页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于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驱动程序开发 刘淼 编著


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

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

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

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