基于嵌入式系统的调速学号显示嵌入式设计报告.doc

上传人:laozhun 文档编号:4148751 上传时间:2023-04-07 格式:DOC 页数:18 大小:386KB
返回 下载 相关 举报
基于嵌入式系统的调速学号显示嵌入式设计报告.doc_第1页
第1页 / 共18页
基于嵌入式系统的调速学号显示嵌入式设计报告.doc_第2页
第2页 / 共18页
基于嵌入式系统的调速学号显示嵌入式设计报告.doc_第3页
第3页 / 共18页
基于嵌入式系统的调速学号显示嵌入式设计报告.doc_第4页
第4页 / 共18页
基于嵌入式系统的调速学号显示嵌入式设计报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于嵌入式系统的调速学号显示嵌入式设计报告.doc》由会员分享,可在线阅读,更多相关《基于嵌入式系统的调速学号显示嵌入式设计报告.doc(18页珍藏版)》请在三一办公上搜索。

1、嵌入式系统与应用综合设计报告实验项目名称:基于嵌入式系统的调速学号显示 院系名称: * 专业名称: * 班 级: AP* 姓 名: * 学号: * 指导老师: * 成绩: 完成日期:2013年6月25日【摘要】本次设计的项目一款基于嵌入式2410裸机开发控制的可调试的数码管花样学号的显示,其中嵌入式芯片3c2410是系统控制的核心,在本次设计中中起到总调度的作用。通过嵌入式芯片3c2410的为主控芯片,通过键盘扫描的方式,利用设定的按键来控制学号显示的各种花样;本次设计最大的亮点是可以通过键盘扫描的方式,利用设定的按键来调节学号在数码管中滚动以及全部数码管切换的速度。本报告简要的介绍了基于嵌入

2、式裸机开发的设计的可调式数码管花样学号显示的设计原理,并根据系统的基本原理在创维特公司的3c2410嵌入式实验箱上实现本次设计的各项功能。本次设计主要由以下几个模块组成:数码管模块、键盘扫描模块以及嵌入式控制模块。其中数码管模块是采用6个共阳极的七段数码管,低电平有效,通过ASCII码的形式在设定的数组中分别调出本次设计需要的字母和数字,配合嵌入式裸机的相关程序来驱动数码管的显示;本次设计中键盘扫描模块,是通过软件扫描的方式来识别按键的键值的,通过识别到的键值然后反馈给嵌入式系统,再由嵌入式系统通知数码管要显示何种花样以及花样的速度的选择。此外系统还可以设置实现学号显示花样的次数、花样以及快慢

3、的程度。关键字:嵌入式技术;按键扫描;数码管显示; 目录一、设计任务和性能指标.4 1.1设计任务.4 1.2性能指标.4二、设计方案.42.1系统总体设计方案.42.2核心器件及模块的介绍.5 2.2.1 3c2410嵌入式控制芯片简介.5 2.2.2 数码管显示模块的简介.6 2.2.3键盘扫描模块的简介.7三、硬件设计.73.1 数码管显示电路设计.73.2键盘扫描电路设计.83.3 设计的效果图.8 3.3.1学号左移效果图.8 3.3.2学号右移效果图.9 3.3.3学号切换效果图.10四、软件设计.104.1学号左移的程序设计.104.2学号右移的程序设计.124.3学号切换的程序

4、设计.134.4设计挂载的头文件.14五、课程设计体会.14六、鸣谢.14七、设计的主程序.15一、 设计任务和性能指标 1.1 设计任务 设计一款基于嵌入式裸机操作控制的调速学号显示,其中嵌入式芯片3c2410是本次设计的核心,用于接收来自键盘扫描的信号,从而来判断学号显示的花样是按键1的花样、按键2的花样还是按键3的花样;再通过按键扫描的方式继续扫描是否有加减速键按下,有的话在花样的基础上实现加减速。 1.2 性能指标 1、键盘的扫描是采用软件扫描的方式,降低开发成本。 2、对学号显示模式精确控制,可以实现学号的左移、右移、全部数码管的切换显示。 3、程序编写简练、采用模块化封装、可移植性

5、强。二、 设计方案 2.1 系统总体设计方案 本次设计的系统主要由以下的几个模块组成:数码管显示模块、键盘扫描模块以及嵌入式系统控制模块。这些模块中嵌入式系统控制模块是控制的核心,是完成接收键盘键值,来判断学号显示花样以及加减速的中枢。基于嵌入式系统的调速学号显示的设计系统框图如下所示: yes是否有键按下判断按键按键3?按键2?按键1?yesyesyes左移右移切换显示按键8?按键7?按键7?按键8?按键7?按键8?yesyesyesyesyesyes减速加速加速减速加速减速 基于嵌入式系统的调速学号显示的设计系统框图(图1)2.2核心器件及模块的介绍 本系统设计所使用的核心器件如下:3c2

6、410嵌入式控制芯片、数码管显示模块、键盘扫描模块。2.2.1 3c2410嵌入式控制芯片简介 S3C2410X 微处理器是一款由 Samsung Electronics Co.,Ltd.为手持设备设计的低功耗、高度集成的基于 ARM7TDMI 核的微处理器。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:16KB 指令 Cache、16KB 数据 Cache、MMU、外部存储器控制器、LCD 控制器(STN 和 TFT)、NAND Flash 控制器、4 个 DMA通道、3 通道 UART、1 个 I 2 C 总线控制器、1 个 IIS 总线控制器,以及 4 通道 PWM 定时

7、器和一个内部定时器、通用 I/O 口、实时时钟、8 通道 10 位 ADC 和触摸屏接口、USB 主、USB 从、SD/MMC 卡接口等。现在它广泛应用于 PDA、移动通讯、路由器、工业控制等。 2.2.2 数码管显示模块的简介用数码管除了可以显示09的阿拉伯数字外,还可以显示一些英语字母。数码管由7段显示输出,利用7个位的组合输出,就可以形成部分英语字母和09十个数字的显示。本次设计的开发箱的七段数码管共阳极,所以低电平有效。数字及字母对应的七段显示关系和相应的进制关系,本次设计要显示的学号为AP1035255。七段数码管对应字母图为:表1、数字及字母对应的七段显示关系和相应的进制关系abc

8、defg二进制十进制十六进制清屏11111111111 1111277FA00010000001 0000808P00110000011 0002418110011111001 111794F000000010000 0010101300001100000 1100606501001000100 1003636201001000100100362450100001010010036365010000101001003636 2.2.3键盘扫描模块的简介实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法

9、有助于缩减系统的重复开发成本,且只需要很少的 CPU 开销。嵌入式控制器的功能很强,可以充分利用这一资源,这里就介绍一下软键盘的实现方案: 本次设计实现的是 44 的矩阵键盘扫描。分别将每一列置零,如果这时有键按下,则对应的行将为低电平,将得到的结果放到一个变量中,该变量的哪一位为零则对应一个按键,如果没有键按下则该变量的值为 0xff。三、 硬件设计 3.1 数码管显示电路设计本次设计是在创维特公司的嵌入式实验箱上做的设计,因此直接调用了该实验箱的数码管显示设计电路。 3.2 键盘扫描电路设计本次设计是在创维特公司的嵌入式实验箱上做的设计,因此直接调用了该实验箱的4*4键盘扫描设计电路。 3

10、.3设计的效果图 3.3.1学号左移效果图 学号左移的信号由1号键提供,所以要显示学号的左移必须按下1号键按下7号键为减速键 8号键为加速键通过按下1号键,正常显示学号左移如下:说明:在按下1号键的时候正常显示左移三次,在移动的同时按下7号键为减速键,每按一次减少5us,当减少到0的时候,自动默认延时为5us;在移动的同时按下8号键为加速键,每按下一次增加10us。 3.3.2学号右移效果图 学号右移的信号由2号键提供,所以要显示学号的右移必须按下2号键按下7号键为减速键 8号键为加速键通过按下2号键,正常显示学号右移如下:说明:在按下1号键的时候正常显示右移三次,在移动的同时按下7号键为减速

11、键,每按一次减少5us,当减少到0的时候,自动默认延时为5us;在移动的同时按下8号键为加速键,每按下一次增加10us。 3.3.3学号切换效果图 学号切换的信号由3号键提供,所以要显示学号的切换必须按下3号键按下7号键为减速键 8号键为加速键通过按下3号键,正常显示学号切换如下:说明:在按下1号键的时候正常显示切换三次,在移动的同时按下7号键为减速键,每按一次减少5us,当减少到0的时候,自动默认延时为5us;在切换的同时按下8号键为加速键,每按下一次增加10us。四、 软件设计 4.1学号左移的程序设计/*/ Function name: Left_Display/ Description

12、 : 数码管显示程序/ Return type: void/ Argument : Left_count : 数码管对应数据 bit0 - bit5 : SEG0 - SEG5*/int Left_count = 0;int key_vaule,delay_vaule = 40;void Left_Display(void)int i = 0;for(i = 0; i 6; i+)*(unsigned char *)0x10000006) = (1 i) & 0x3f;*(unsigned char *)0x10000004) = seg7tableLeft_count; Delay(dela

13、y_vaule);key_vaule = Key_GetKeyPoll();if(key_vaule = 0x37)delay_vaule = delay_vaule + 10;if(key_vaule = 0x38)delay_vaule = delay_vaule - 5;if(delay_vaule = 0)delay_vaule = 5;Left_count+;if(Left_count =9)Left_count = 0;4.2学号右移的程序设计/*/ Function name: right_Display/ Description : 数码管显示程序/ Return type:

14、void/ Argument : right_count : 数码管对应数据 bit0 - bit5 : SEG0 - SEG5*/int right_count = 0;void right_Display(void)int i,j=0x20;for(i = 0; i i) & 0x3f;*(unsigned char *)0x10000004) = seg7tableright_count; Delay(delay_vaule);key_vaule = Key_GetKeyPoll();if(key_vaule = 0x37) delay_vaule = delay_vaule + 10;

15、if(key_vaule = 0x38)delay_vaule = delay_vaule - 5;if(delay_vaule = 0) delay_vaule = 5;right_count+;if(right_count =9) right_count = 0;4.3学号切换的程序设计/*/ Function name: Qun_Display/ Description : 数码管显示程序/ Return type: void/ Argument : 0xc0: 数码管对应全亮 bit0 - bit5 : SEG0 - SEG5*/void Qun_Display(void)int i

16、= 0;for(i = 0; i 9; i+)*(unsigned char *)0x10000006) = 0xc0;*(unsigned char *)0x10000004) = seg7tablei; Delay(delay_vaule);key_vaule = Key_GetKeyPoll();if(key_vaule = 0x37)delay_vaule = delay_vaule + 10;if(key_vaule = 0x38)delay_vaule = delay_vaule - 5;if(delay_vaule = 0)delay_vaule = 5;4.4设计挂载的头文件五

17、、 课程设计体会 经过一个星期的努力,我的基于嵌入式系统的调速学号显示 的设计终于顺利的完成了,通过本次设计,使我对于嵌入式系统与应用这门课程有更深入的了解,也深深的体会到,对于一个技术人员来说,光掌握了书本的知识是远远不够的,实践是检验真理的标准,只要动手做,多动手,才能更好的将掌握的课本知识融会贯通,会以后踏入社会打下一个扎实的基础。在本次设计中,我也遇到了一些困难,对于创维特公司提供的相关库函数理解不深,导致在编写程序实现学号右移的时候,总是出现乱码和只有一个数码亮的现象,通过对库函数的深入阅读理解和同学的帮助,我顺利的解决了这些问题。通过本次设计我觉得作为一名合格的程序员必须加强自己的

18、动手能力,那样子才能真正的让自己成为一名高素质的运用型人才。六、 鸣谢 在本次设计之中遇到了许多问题,在老师的悉心指导下一一得到了解决,通过本学期嵌入式课程的学习,增强我的电子综合设计能力,在此感谢老师本学期对我的指导与帮助。七、 设计的主程序 /* 包含文件 */#include def.h#include 2410lib.h#include option.h#include 2410addr.h#include interrupt.h/* functions */void eint2_isr(void) _attribute_ (interrupt(IRQ);void eint3_isr(

19、void) _attribute_ (interrupt(IRQ);void delay();/* variables */int dither_count2 = 0;int dither_count3 = 0;int a=0;int delay_count = 40;static int nLed = 0x01;/*/ Function name: Main 主函数/ Description : JXARM9-2410 中断实验主程序/ 完成功能:/ 外部中断按键引发中断/ Return type: void/ Argument : void*/void Main(void) unsigne

20、d char mask; unsigned char pdata6; mask=0x3f; unsigned char ch = a;/* 配置系统时钟 */ ChangeClockDivider(1,1); / 1:2:4 ChangeMPllValue(0xa1,0x3,0x1); / FCLK=202.8MHz /* 中断初始化 */ Isr_Init(); /* 初始化端口 */ Port_Init(); /* 初始化串口 */ Uart_Init(0,115200); Uart_Select(0);/* 请求中断 */Irq_Request(IRQ_EINT3, eint3_isr)

21、; /* 使能中断 */ Irq_Enable(IRQ_EINT3); dither_count2 = 0; dither_count3 = 0; while(1) delay(10); unsigned char ch;ch = Key_GetKeyPoll(); /读取键值if(ch != 0) PRINTF(r%c键按下, ch); if(ch = 0x31) /判断按键1是否按下 int k;for(k = 0; k 27; k+)/学号AP1035255循环三次 Left_Display(); /学号向左移动 delay(50); if(ch = 0x32) /判断按键2是否按下 int i;for(i = 0; i 27; i+) /学号AP1035255循环三次 right_Display(); /学号向右移动 delay(50); if(ch = 0x33) /判断按键3是否按下 int j;for(j = 0; j 5) dither_count3 = 0;a=1;void delay() /延时程序int index = 0; for ( index = 0 ; index 20000; index+);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号