嵌入式系统及应用课程设计报告092031409
- 格式:doc
- 大小:168.00 KB
- 文档页数:6
嵌入式系统课程设计报告一、教学目标本课程的教学目标是使学生掌握嵌入式系统的基本概念、原理和设计方法,能够运用嵌入式系统进行实际项目的开发和实现。
具体来说,知识目标包括了解嵌入式系统的定义、特点、分类和应用领域;掌握嵌入式系统的硬件和软件组成及工作原理;熟悉嵌入式操作系统的基本概念和常用操作系统。
技能目标包括能够使用嵌入式系统开发工具和平台进行程序设计和调试;具备嵌入式系统硬件电路的设计和调试能力;能够运用嵌入式系统进行实际项目的开发和实现。
情感态度价值观目标包括培养学生的创新意识和团队合作精神,提高学生解决实际问题的能力和责任感。
二、教学内容根据课程目标,本课程的教学内容主要包括嵌入式系统的基本概念、原理和设计方法。
具体包括以下几个方面:1. 嵌入式系统的定义、特点、分类和应用领域;2. 嵌入式系统的硬件组成,如处理器、存储器、输入输出接口等;3. 嵌入式系统的软件组成,如固件、操作系统、应用程序等;4. 嵌入式操作系统的基本概念和常用操作系统;5. 嵌入式系统的设计方法和开发流程;6. 嵌入式系统硬件电路的设计和调试方法;7. 嵌入式系统在实际项目中的应用和案例分析。
三、教学方法为了实现课程目标,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
通过多样化的教学方法,激发学生的学习兴趣和主动性。
具体教学方法如下:1. 讲授法:通过讲解嵌入式系统的基本概念、原理和设计方法,使学生掌握相关知识;2. 讨论法:通过分组讨论和课堂讨论,培养学生的思考能力和团队合作精神;3. 案例分析法:通过分析实际项目案例,使学生了解嵌入式系统在实际中的应用和设计方法;4. 实验法:通过实验操作和调试,锻炼学生的动手能力和实际问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将选择和准备以下教学资源:1.教材:选用权威、实用的嵌入式系统教材,为学生提供系统的学习资料;2. 参考书:推荐学生阅读相关参考书籍,丰富学生的知识体系;3. 多媒体资料:制作课件、教案等多媒体教学资料,提高课堂教学效果;4. 实验设备:准备嵌入式系统开发板、仿真器等实验设备,为学生提供实践操作的机会。
课程名称:嵌入式系统课程设计先修课程:操作系统、C语言程序设计一、目标和任务《嵌入式系统课程设计》是计算机学生专业实践课程,是学习《嵌入式系统及设计》课程后必需实践教学步骤。
课程设计是检验学生是否掌握相关专业课程知识关键手段,以学生为主体,充足调动学生主动性和发明性,重视学生实际动手能力培养。
经过本课程设计使学生加深了解、巩固课堂教学和平时试验内容,使学生初步含有linux应用开发系统分析、系统设计、系统实现和测试实际能力,强化学生知识实践意识、提升动手能力,发挥学生想象力和创新能力,从而培养工程应用型人才。
二、教学基础要求1、学习态度:要有勤于思索、刻苦钻研学习精神和严厉认真、一丝不苟、有错必改、精益求精工作态度,主动查阅整理分析相关参考文件,精心设计、认真编码、确保质量。
对弄虚作假者,课程设计成绩一律按不及格记,并依据学校相关要求给处理。
2、学习纪律:要严格遵守学习纪律,遵守作息时间,不得迟到、早退和旷课。
特殊情况不能上课者,必需请假,凡未请假或未获准假私自不上课者,均按旷课论处。
3、课程目标:掌握linux应用开发基础理论知识和基础方法技能,概念清楚正确,系统分析、系统设计、系统实现、系统测试符合软件工程相关规范,结构合理,程序运行良好,课程设计汇报撰写规范,答辩中回复问题正确。
4、课程设计汇报:根据《东华理工大学长江学院课程设计汇报规范》和《嵌入式系统课程设计》任务书要求,认真设计、撰写好课程设计汇报,总结课程设计收获和心得体会,立即提交电子和纸质材料。
三、课程设计内容(一)关键设计内容1、系统分析、总体设计、概要设计、具体设计、系统实现和测试。
2、系统运行和维护。
3、撰写课程设计汇报。
4、课程设计答辩:课题叙述和回复问题。
(二)参考选题1.系统移植类:(1)嵌入式WinCE移植(2)嵌入式Linux2.6内核移植(3)嵌入式Web服务器BOA在开发板上移植(4)使用BusyBox构建根文件系统移植(5)嵌入式QT移植(6)嵌入式引导程序UBoot移植2. QT编程类:(1)基于QT手机通讯录管理(2)基于QT手机日历程序(3)基于QT手机计算器程序(4)基于QT手机秒表程序(5)基于QT电子词典程序(6)基于QT电子相框程序3. 驱动编程类:(1)Led跑马灯程序(2)按键驱动程序(3)嵌入式类Minicom串口程序4. 其它类:可选择其它自己感爱好和嵌入式相关题目四、时间安排《嵌入式系统课程设计》安排在第六学期进行,时间1周。
嵌入式系统及应用课程设计报告系别电子与电气工程专业电子信息工程班级0920314学号*********姓名指导教师完成时间2013.01.06评定成绩嵌入式系统及应用课程设计报告一、设计目的1、学会基于ARM与Linux的嵌入式程序开发,学会编写Makefile;2、熟练使用LED、数码管、键盘等基础硬件,掌握它们的编程方法;3、练习C语言编程,初步具备C项目开发经验。
二、设计目标与要求利用Linux系统的交叉编译环境,设计程序,在ARM嵌入式系统实验箱上(主要使用LED、蜂鸣器、数码管、键盘)模拟一个“定时炸弹”。
开始时刻,数码管显示“60”,蜂鸣器不响,8个LED全灭。
接着,数码管从“60”开始倒计时,当计时到“00”时:蜂鸣器长时间响起;8个LED灯轮流点亮8次,最终全亮。
这种状态一直持续到按下“确认”键(键盘上的“E”键)才结束,然后重新开始上述过程。
三、设计方案首先熟悉ARM实验箱,挑选出这些实训所需要的模块并熟悉,然后开始分模块按顺序进行编写程序,先编写LED/蜂鸣器模块的子程序实现控制蜂鸣器的开关和8个LED灯轮流点亮8次,最终全亮;然后是数码管模块的子程序实现从60开始倒数计时到0;而后是编写键盘等模块实现扫描键盘,如有按键,返回键值,当“确认”键(E)按下时执行的功能。
最后编写实现主函数,引用前面几个步骤编写形成的子函数源文件,调用子函数实现本课程设计要求的整体功能。
四、软硬件设计1、LED/蜂鸣器模块实验箱有8只发光二极管:D501~D508,和一只蜂鸣器U502。
发光二极管使用八个ARM处理器IO 口来控制其亮灭。
另外使用一个IO来实现对蜂鸣器的控制。
LED/蜂鸣器模块内部结构LED主程序int Led_Active(int iswork){int i,c;port_write(S3C2440_PIO_PJ5,iswork);port_write(S3C2440_PIO_PJ7,iswork); printf(" on !\r\n"); for(c=0;c<8;c++){ port_write(S3C2440_LED1,1);port_write(S3C2440_LED2,0);for(i=0;i<0x200000;i++);port_write(S3C2440_LED1,0);port_write(S3C2440_LED2,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED2,0);port_write(S3C2440_LED3,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED3,0);port_write(S3C2440_LED4,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED4,0);port_write(S3C2440_LED5,1);for(i=0;i<0x200000;i++); port_write(S3C2440_LED5,0); port_write(S3C2440_LED6,1); for(i=0;i<0x200000;i++); port_write(S3C2440_LED6,0); port_write(S3C2440_LED7,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED7,0); port_write(S3C2440_LED8,1); for(i=0;i<0x200000;i++); } for(i=0;i<0x200000;i++);port_write(S3C2440_LED1,1); port_write(S3C2440_LED2,1); port_write(S3C2440_LED3,1); port_write(S3C2440_LED4,1); port_write(S3C2440_LED5,1); port_write(S3C2440_LED6,1); port_write(S3C2440_LED7,1); port_write(S3C2440_LED8,1); printf(" off !\r\n");return 0;}蜂鸣器主程序int bsp_init(void);int main(int argc, char *argv[]){bsp_init();int i;printf(" on !\r\n");port_write(S3C2440_BELLCTRL,1); for(i=0;i<0x10000000;i++);port_write(S3C2440_BELLCTRL,0);printf(" off !\r\n");return 0;}int bsp_init(void){open_port_device();return 0;}2、数码管模块实验箱上有8只8段数码管:U503~U510,使用74F164芯片(串入并出芯片)对数码管进行控制。
嵌入式课程设计报告嵌入式课程设计报告一、设计目的和背景嵌入式系统在现代社会中起着越来越重要的作用,它们广泛应用于各个领域,如消费电子、汽车、医疗保健等。
本次课程设计旨在让学生深入了解嵌入式系统的设计原理和方法,并通过实践项目,提高学生的实际操作能力。
二、设计内容和方法本次课程设计的内容是一个智能家居控制系统。
该系统能够通过无线网络实现对家居设备的远程控制,如灯光、温度、窗帘等。
设计方法主要包括硬件设计和软件设计两个方面。
硬件设计部分主要包括选择合适的微控制器作为控制核心,选取各类传感器和执行器,以及设计电路板进行组装。
在此基础上,还需设计无线通信模块,以实现远程控制的功能。
软件设计部分主要包括嵌入式系统的编程和通信协议的设计。
编程部分可采用C语言或其他嵌入式开发语言,通过编写相应的控制程序实现各个功能模块的控制。
通信协议设计部分需要考虑数据传输的安全性和稳定性,可采用常见的无线通信协议,如Wi-Fi、蓝牙等。
三、设计结果和实现效果通过本次课程设计,我成功实现了一个智能家居控制系统的功能。
通过手机APP或电脑端软件,我可以远程实现对家居设备的控制,如开关灯光、调节温度、控制窗帘等。
同时,该系统还具备一定的安全性,用户可以通过身份验证来确保系统的安全性。
四、设计过程中的问题和解决方案在设计过程中,我遇到了一些问题,如硬件的选型和软件的编写。
对于硬件的选型,我需要根据系统的需求和预算来选择合适的微控制器和传感器。
对于软件的编写,我需要理解各个功能模块的工作原理,并编写相应的控制程序。
我通过查阅资料和与同学、老师的交流解决了这些问题。
通过分析和比较不同的硬件和软件方案,我最终选择了适合我项目需求的方案。
五、设计总结和展望本次课程设计使我对嵌入式系统的设计有了更深入的了解,提高了我的实际操作能力。
通过实践项目,我学会了如何选择合适的硬件和软件方案,并成功实现了一个功能完备的智能家居控制系统。
未来,我希望能继续深入研究嵌入式系统的设计,探索更多有意义的项目。
嵌入式系统课程设计报告摘要:本次设计的嵌入式系统为基于单片机的数字时钟设计。
系统主要由AT89C51单片机、LCD液晶显示屏和RTC模块组成。
通过组合这些元器件,实现了时钟的精确显示和功能操作。
本文将详细介绍设计过程中所采用的硬件和软件设计及其实现过程,最终得到了效果良好的数字时钟。
一、设计目的本次课程设计的主要目的是熟练掌握嵌入式系统设计的基本流程和方法。
同时通过本次设计,学员还需对AT89C51单片机及RTC模块等嵌入式系统所需的元器件有所了解,并能够熟练地进行元器件的选型、电路设计、软件编程及系统调试等工作。
二、设计原理1. 系统硬件设计原理数字时钟主要由AT89C51单片机、LCD液晶显示屏和RTC模块组成,它们之间的连接如下图所示:图1 数字时钟系统框图其中,AT89C51单片机是整个系统的核心部件,其外部晶振采用11.0592MHZ的振荡器,为系统提供时钟信号。
RTC模块采用DS1302芯片,它具有精度高、稳定性好、且具有多种测试功能的特点,可以提供更加精确的时间信息。
时钟的显示模块采用16×2字符型LCD液晶显示屏。
2. 软件设计原理软件设计主要包括两部分——RTC模块的驱动程序和数字时钟主程序的编写。
其中,RTC模块的驱动程序主要实现对DS1302芯片的驱动,包括寄存器的读写、校时以及晶振稳定等功能。
数字时钟主程序主要是对AT89C51单片机的程序编写,实现数字时钟的显示和操作。
三、系统设计过程系统设计主要分为硬件设计和软件设计两个方面的工作,具体步骤如下:1. 硬件设计(1) 按照电路原理图进行元器件的选型、连线以及设备安装,需要注意每个元器件的接口定义和功能实现。
(2) 对DS1302芯片进行驱动程序的编写,实现对时间信息的读取和校时功能。
(3) 对LCD液晶显示模块进行驱动程序的编写,实现数字时钟的显示和操作。
2. 软件设计(1) 编写RTC模块的驱动程序,在AT89C51单片机调用RTC 模块时,直接调用驱动程序。
- - -. 嵌入式系统课程设计必做部分学院:电控学院专业:通信工程设计名称:IIC同步串行通讯1、设计的目的:1.掌握S3C44B0IIC控制器的编程方法2.编程实现串行EEPROM存储器24C16的数据存储和访问。
2、设计的内容:1.学习S3C44B0 IIC控制器的原理与编程方法;2.学习IIC存储器24C16的编程方法;3.理解IIC存储器24C16的与S3C44B0的电路连接原理;4.掌握C语言中断程序设计方法;5.编程实现对24C16的数据存储和访问。
3、设计思路、遇到的问题及解决方法:此次试验,我们结合《嵌入式系统原理及应用》教材以及老师提供的各种pdf和word资料,了解到了各种寄存器的配置方法,如IICDS等。
对于例程中的各种函数,如Wr24C16(), Rd24C16(),__irq IicInt()等,通过对程序的仔细研读,最终了解了它们的各自用途,并在此基础上,编写了主函数。
实现了从0-255共256个字节的写入及读取操作。
这次实验我们遇到了不少的难题,像开始使用ARM-Project Manager平台一开始,由于对此平台的不了解,我们走了许都弯路。
像对于头文件的配置问题,总是配置不对,后来发现头文件为程序自主生成,无需配置。
还有关于程序中的一些.s文件,开始并不知道是有何作用,后来在老师的指点下,发现有必要将其加入到sourse文件栏中调用,同时调用的同时,由于不理解调用的路径问题,多次编译失败,后来发现了问题,是路径配置不当,最终更改了路径,解决了问题。
再有,在对老师提供的例程进行阅读时候,发现了不少的啰嗦以及错误语句,例如Uart_Printf("%d\n",k);语句就不应该为Uart_Printf("%d\n",&k);这些问题我们都通过调试最终给予了改正。
4、设计的结果及验证正确输出结果如下截图,从超级终端中回显显示了正确数据,实验成立。
嵌入式实验课程设计报告一、课程目标知识目标:1. 学生能理解嵌入式系统的基础知识,掌握其基本组成和工作原理。
2. 学生能够掌握嵌入式编程的基本语法和常用指令,具备编写简单嵌入式程序的能力。
3. 学生能够了解嵌入式系统在实际应用中的优势和局限性。
技能目标:1. 学生能够运用所学知识,进行简单的嵌入式系统设计和程序开发。
2. 学生能够使用嵌入式实验设备,进行实际操作,并解决常见问题。
3. 学生能够通过团队协作,完成一个具有实际应用价值的嵌入式项目。
情感态度价值观目标:1. 学生对嵌入式系统产生兴趣,激发其学习主动性和积极性。
2. 学生能够认识到嵌入式技术在国家战略和社会发展中的重要性,培养其社会责任感和使命感。
3. 学生在课程学习过程中,培养良好的团队合作精神和沟通能力,形成正确的价值观。
课程性质分析:本课程为嵌入式实验课程,侧重于实践操作和项目实践。
课程内容紧密结合教材,旨在帮助学生将理论知识与实际应用相结合。
学生特点分析:本年级学生已具备一定的计算机基础和编程能力,对新鲜事物充满好奇,具备较强的动手能力和创新能力。
教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力。
2. 采用项目驱动教学法,培养学生的团队协作和解决问题的能力。
3. 激发学生的学习兴趣,引导其探索嵌入式技术在实际应用中的奥秘。
二、教学内容1. 嵌入式系统概述:介绍嵌入式系统的基本概念、发展历程、应用领域及未来发展趋势。
教材章节:第一章 嵌入式系统概述2. 嵌入式系统组成:讲解嵌入式系统的硬件组成、软件架构及系统设计方法。
教材章节:第二章 嵌入式系统硬件组成;第三章 嵌入式系统软件架构3. 嵌入式编程基础:学习嵌入式编程的基本语法、常用指令和编程技巧。
教材章节:第四章 嵌入式编程语言与编程环境;第五章 嵌入式程序设计基础4. 嵌入式系统设计与实践:通过项目实践,让学生掌握嵌入式系统的设计方法和实际操作。
教材章节:第六章 嵌入式系统设计与实践5. 嵌入式系统应用案例分析:分析典型嵌入式应用案例,了解嵌入式技术的实际应用。
嵌入式课程设计实践报告一、教学目标本课程的教学目标是使学生掌握嵌入式系统的基本原理和设计方法,能够独立完成简单的嵌入式系统设计和开发。
具体目标如下:1.掌握嵌入式系统的定义、特点和基本组成;2.了解嵌入式处理器、嵌入式操作系统和嵌入式软件的基本概念;3.熟悉嵌入式系统的设计流程和开发工具。
4.能够使用嵌入式处理器和开发板进行系统开发;5.掌握嵌入式软件的编写和调试方法;6.能够独立完成嵌入式系统的设计和实现。
情感态度价值观目标:1.培养学生对嵌入式系统的兴趣和热情,提高学生的专业素养;2.培养学生团队合作意识和解决问题的能力;3.培养学生对创新和实践的积极态度,提高学生的创新能力。
二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.嵌入式系统的基本概念:嵌入式系统的定义、特点、分类和应用领域;2.嵌入式处理器:嵌入式处理器的结构、工作原理和选型;3.嵌入式操作系统:嵌入式操作系统的原理、结构和常用操作系统;4.嵌入式软件设计:嵌入式软件的编写方法、调试技术和常用开发工具;5.嵌入式系统设计流程:需求分析、系统设计、硬件选型、软件设计和系统验证。
6.嵌入式系统概述(2课时)1.1 嵌入式系统的定义和特点1.2 嵌入式系统的分类和应用领域7.嵌入式处理器(4课时)2.1 嵌入式处理器的结构和工作原理2.2 嵌入式处理器的选型和评估8.嵌入式操作系统(2课时)3.1 嵌入式操作系统的原理和结构3.2 常用嵌入式操作系统及其特点9.嵌入式软件设计(4课时)4.1 嵌入式软件的编写方法和技巧4.2 嵌入式软件的调试技术和工具10.嵌入式系统设计流程(2课时)5.1 需求分析和系统设计5.2 硬件选型和软件设计5.3 系统验证和优化三、教学方法为了实现教学目标,本课程采用多种教学方法相结合,包括:1.讲授法:通过教师的讲解,使学生掌握嵌入式系统的基本概念和原理;2.案例分析法:通过分析实际案例,使学生了解嵌入式系统的应用和设计方法;3.实验法:通过动手实验,使学生熟悉嵌入式系统的设计和开发过程;4.讨论法:通过分组讨论,培养学生团队合作意识和解决问题的能力。
嵌入式课程设计报告1. 引言嵌入式系统作为计算机科学与工程中的重要领域之一,已经在我们的生活中无处不在。
它的应用范围从家电到汽车,从医疗设备到智能手机,无不展示了嵌入式系统的强大能力和巨大潜力。
作为一名嵌入式系统的学习者,我有幸能够在课程设计中深入学习和动手实践,从而更好地理解和掌握嵌入式系统的设计原理和开发技术。
2. 课程设计背景本次嵌入式课程设计的背景是开发一个智能家居控制系统。
随着智能家居概念的火热和人工智能技术的迅猛发展,智能家居控制系统成为了人们追求高品质生活的必备之物。
该系统能够通过传感器采集环境信息,并根据用户的需求进行智能控制,提高生活的便利性和舒适性。
3. 设计方案通过对需求分析和系统功能划分,我们选取了以下硬件和软件组件:硬件:基于ARM架构的开发板、各类传感器(如温湿度传感器、光强传感器等)、执行器(如电机、灯光控制器等)、无线通信模块(如Wi-Fi模块)。
软件:操控系统及相关驱动程序的嵌入式C编程、交互界面的设计和优化。
4. 实施过程在课程设计的实施过程中,我们采用了自上而下的开发方法。
首先,我们需要完善硬件环境,搭建开发板与传感器、执行器的连接。
然后,我们进行了底层驱动程序的开发,包括了对不同传感器的数据读取和对执行器的控制。
接下来,我们进行了操控系统的开发,实现了系统的整体功能。
最后,我们进行界面的设计和优化,使用户能够直观地操作系统。
5. 设计亮点在课程设计中,我们尝试了一些独特的设计思路,以提高系统的性能和用户体验:a) 选择高效的算法和数据结构,将程序的执行时间和资源占用降到最低。
b) 优化界面设计,简化操作流程,提高用户的易用性。
c) 使用无线通信模块与手机或者智能音箱连接,实现远程控制,提供了更大的灵活性和方便性。
6. 成果展示与评估在本次课程设计中,我们顺利完成了智能家居控制系统的开发,并取得了令人满意的成果。
在功能方面,我们成功实现了对环境信息的传感和对执行器的控制。
《嵌入式应用系统设计》报告PC Linux视频监控系统设计一、课程设计的目的课程设计是《嵌入式系统应用设计》课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的理解与巩固,是将计算机课程与实际问题相联接的关键步骤。
通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。
二、设计目标PC Linux视频监控系统通过虚拟机redhat9将摄像头采集的视频信号进行压缩,同时进行入侵检测,再通过网络数据传送web服务器,客户端通过浏览器监控。
三、相关背景知识随着计算机网络技术、视频压缩技术以及嵌入式技术在近些年来的迅速发展,网络视频监控系统进入快速发展期,市场上出现了很多网络视频监控产品,以满足人们对安全的各种要求。
采用嵌入式Web技术的网络视频监控系统,目前正成为网络视频监控系统的一个重要发展方向。
用户通过浏览器或其他专门的客户端软件,就可远程访问监控摄像机,实现对现场的远程视频监控。
在系统设计中采用B/S结构,将视频采集功能模块和PC机客户端监控功能模块相分离,采用TCP协议对视频数据进行网络传输。
视频采集,对目前Linux下USB摄像头驱动的两种接口标准Video for-Linux 和Video for Linux Two分别进行了研究,分别实现了基于这两种标准的驱动下的图像采集,并在最终的系统中采用了基于Video for Linux标准的驱动程序,完成了图像采集功能。
通过在嵌入式视频采集上建立嵌入式Web服务器,使用户通过Web页面查看图像视频。
四、课程设计环境操作系统:Vmware 虚拟机下Linux 五、流程编译驱动编译采集程序架设thttpd服务器安装客户端播放控件浏览器安装JRE运行六、结果从浏览器中可看到视频,一下是截图:七、重点/疑难问题及解决方法PC端采用VMware+redhat9,由于本人安装VMware-Tool后设置不了共享文件夹,采用samba服务器,通过samba服务器实现文件夹共享,搭建samba服务器时遇到window平台打开不了共享文件夹问题,后来发现是配置文件有问题。
嵌入式系统及应用课程设计报告系别电子与电气工程专业电子信息工程班级0920314学号*********姓名指导教师完成时间2013.01.06评定成绩嵌入式系统及应用课程设计报告一、设计目的1、学会基于ARM与Linux的嵌入式程序开发,学会编写Makefile;2、熟练使用LED、数码管、键盘等基础硬件,掌握它们的编程方法;3、练习C语言编程,初步具备C项目开发经验。
二、设计目标与要求利用Linux系统的交叉编译环境,设计程序,在ARM嵌入式系统实验箱上(主要使用LED、蜂鸣器、数码管、键盘)模拟一个“定时炸弹”。
开始时刻,数码管显示“60”,蜂鸣器不响,8个LED全灭。
接着,数码管从“60”开始倒计时,当计时到“00”时:蜂鸣器长时间响起;8个LED灯轮流点亮8次,最终全亮。
这种状态一直持续到按下“确认”键(键盘上的“E”键)才结束,然后重新开始上述过程。
三、设计方案首先熟悉ARM实验箱,挑选出这些实训所需要的模块并熟悉,然后开始分模块按顺序进行编写程序,先编写LED/蜂鸣器模块的子程序实现控制蜂鸣器的开关和8个LED灯轮流点亮8次,最终全亮;然后是数码管模块的子程序实现从60开始倒数计时到0;而后是编写键盘等模块实现扫描键盘,如有按键,返回键值,当“确认”键(E)按下时执行的功能。
最后编写实现主函数,引用前面几个步骤编写形成的子函数源文件,调用子函数实现本课程设计要求的整体功能。
四、软硬件设计1、LED/蜂鸣器模块实验箱有8只发光二极管:D501~D508,和一只蜂鸣器U502。
发光二极管使用八个ARM处理器IO 口来控制其亮灭。
另外使用一个IO来实现对蜂鸣器的控制。
LED/蜂鸣器模块内部结构LED主程序int Led_Active(int iswork){int i,c;port_write(S3C2440_PIO_PJ5,iswork);port_write(S3C2440_PIO_PJ7,iswork); printf(" on !\r\n"); for(c=0;c<8;c++){ port_write(S3C2440_LED1,1);port_write(S3C2440_LED2,0);for(i=0;i<0x200000;i++);port_write(S3C2440_LED1,0);port_write(S3C2440_LED2,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED2,0);port_write(S3C2440_LED3,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED3,0);port_write(S3C2440_LED4,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED4,0);port_write(S3C2440_LED5,1);for(i=0;i<0x200000;i++); port_write(S3C2440_LED5,0); port_write(S3C2440_LED6,1); for(i=0;i<0x200000;i++); port_write(S3C2440_LED6,0); port_write(S3C2440_LED7,1);for(i=0;i<0x200000;i++);port_write(S3C2440_LED7,0); port_write(S3C2440_LED8,1); for(i=0;i<0x200000;i++); } for(i=0;i<0x200000;i++);port_write(S3C2440_LED1,1); port_write(S3C2440_LED2,1); port_write(S3C2440_LED3,1); port_write(S3C2440_LED4,1); port_write(S3C2440_LED5,1); port_write(S3C2440_LED6,1); port_write(S3C2440_LED7,1); port_write(S3C2440_LED8,1); printf(" off !\r\n");return 0;}蜂鸣器主程序int bsp_init(void);int main(int argc, char *argv[]){bsp_init();int i;printf(" on !\r\n");port_write(S3C2440_BELLCTRL,1); for(i=0;i<0x10000000;i++);port_write(S3C2440_BELLCTRL,0);printf(" off !\r\n");return 0;}int bsp_init(void){open_port_device();return 0;}2、数码管模块实验箱上有8只8段数码管:U503~U510,使用74F164芯片(串入并出芯片)对数码管进行控制。
8只数码管的控制使用串行方式,实现8只流水数码管。
数码管硬件结构数码管主程序void numberShow_int(unsigned num){unsigned char ledbuf[11]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x 07,0x7f,0x6f,0x00};unsigned char i,temp;if (num <0 ) return;for( i=0;i<8;i++ ){ port_write(SPICLK,0);mmdelay(10);temp = (ledbuf[num]) & (0x80>>i);if( 0 == temp )port_write(SPIMO, 0);elseport_write(SPIMO, 1);//mmdelay(10);port_write(SPICLK,1);mmdelay(10); } }void LED_7() {signed char number=60;int g,d,i;int a[8];for(i=0;i<8;i++)a[i]=11;while(1){printf("number:%d\n",number);g=number/10;d=number%10;a[6]=d;a[7]=g;for(i=0;i<8;i++)numberShow_int(a[i]);mmdelay(500);number--;if(number<0){number=0;port_write(SPICLK,0);break;}}}3、键盘模块实验箱包含一个4×4的键盘,采用8个IO引脚对其进行扫描。
因为进行的是行列扫描,因此不需要16个IO引脚来对应每一个按键。
键盘硬件结构键盘主程序Int (int argc, char *argv[]){ unsigned char buf[5];int scanNum;while(1){scanNum = ScanKey(buf);if( scanNum>0 )printf("input key :%c \r\n",buf[0]);uudelay(50000/*500000*/);}return 0;}int bsp_init(void){open_port_device();return 0;}}4、实现主函数main()编写main.c文件,引用前面几个步骤编写形成的子函数源文件,调用子函数实现本课程设计要求的整体功能。
int main(){bsp_init();unsigned char jz;while(1){Beep_Sound(0);Led_CloseAll(0);jz=0;LED_7();Beep_Sound(1); Led_Active(0); while(jz>=0) {jz=key();if(jz=='E') break;}Beep_Sound(0); Led_CloseAll(0); }return 0;}五、心得与总结时间犹如白驹过隙,很快地,一周过去了,这也预示着嵌入式技术课程设计的结束。
在这短暂的一周里,我们学习了如何利用嵌入式技术的知识来设计定时炸弹。
在实验室里,任课教师尽心尽力、一丝不苟地为我们普及嵌入式的基本知识以及实验中的相关操作。
使我们在亲自动手实验时更加得心应手,不那么盲目与茫然。
基于这点我对课程设计的认任课教师十分感激。
说到定时炸弹的设计过程,在一周的设计中,初学匝道的我们遇到很多问题。
而这些问题大多出在了PC的软件编程所需要写的程序上,导致程序无法正常运行。
而后需要通过自己的分析和任课教师的教导,方可解决问题。
说实话,这一周的实训没有令我感到学习的枯燥,反而让我体会到了学习的快乐,这种新的知识与操作体验极度激发了我的求知欲,使我的学习能力和学习态度有了前所未有的提升。
此次课程设计虽然结束了,但是我从中获益非浅,学到了很多以前从来没接触到的知识,总而言之,我很享受这一周的嵌入式课程设计。
它让我成长了不少,我乐在其中。
六、参考文献[1]嵌入式系统及应用课程设计指导书,2012[2]ARM嵌入式系统实验箱自带资料[3]S3C2440A 32位CMOS RISC微控制器用户手册[4]Philips Semiconductors. 74F164 8-bit serial-in parallel-out shift register data sheet, 1995[5]章坚武,李杰,姚英彪等.嵌入式系统设计与开发[M].西安:西安电子科技大学出版社,2009。