课程设计报告(实用4篇)
【路引】由阿拉题库网美丽的网友为您整理分享的“课程设计报告(实用4篇)”文档资料,以供您学习参考之用,希望这篇范文对您有所帮助,喜欢就复制下载支持吧!
课程设计报告1
一、设计理念与思路
(一)以学生职业能力培养为中心设计课程内容。
《机械工艺与装配》是以学生职业能力培养为中心设计的工作过程导向的、情境化的理实一体化的课程。课程根据企业调研得到的数控工艺员典型工作任务为依据,有针对性的开发或选择三个典型的多零件装配成的部件为课程实施载体,课程载体可承载知识、技能、素质目标培养的需求;并且便于教学转化;用任务驱动、问题引导、角色扮演、团队协作、特色PK、量化考核,调动学生积极性,使学生为了完成任务必须学习,为取得良好经济效益主动学习。教学成果的可评价性:在课程学习中使学生既能充分利用已有的知识和技能同时又自觉接受新的工作过程性知识与技能。
(二)围绕地方企业中的人才需求设计课程情境。
《机械工艺与装配》是直接服务于数控工艺员、数控编程员专业核心能力培养的课程。这里要将一个源于企业、经过教学改造的集中体现课程内容设计理念的多零件装配成的部件“榨汁机模型”作为第一学习情境。以来源于企业的真实产品“车灯检具” 作为第二学习情境。用一个可进行教学成果比较和检验的典型部件“产品的数控编程、加工与装配大赛竞赛题”作为第三学习情境。
(三)基于现代企业真实生产方式设计课程任务。
每一个学习情境和情境中的工作任务、任务中的单元都按完整的行动模式设计。将不同表达方式的工作任务、考虑资源情况的制造可行性评估、用CAPP计算机辅助编制工艺方案、工艺装备的选取与设计制造、数控机床加工程序CAM计算机辅助编制及生产计划和调度PPS等作为重点来学习。
(四)按着人们的认知规律设计任务层次。
三个学习情境按着人们的认知规律,以“边学边做、模仿着做、自主来做”的排序,将第一个学习情境设计成“开发性”的学习任务;将第二个学习情境新任务部分设计成 “开发性”的学习任务,其他设计成“设计导向性”的学习任务;将第三个学习情境设计成“设计导向性”的学习任务
本课程将利用前导课程
1、符合标准的零件绘制方法;
2、常用机构及连接;
3、机械制造工艺规程的制定;
4、机械加工方法的选择;
5、机械加工工艺的执行;
6、使用加工设备及刀具、夹具、量具等工艺装备的能力。数控机床手工和计算机编程;等信息。
并采集以下新信息:
1、通用数据格式零件工艺信息的识读;
2、基于信息分析下的可制造性评估;
3、基于3D模型的二维工程图图绘制;
4、使用CAPP的工艺规程制定及其数据库建立方法;
5、利用PPS导向的生产计划和调度;
6、会分析处理加工现场工艺问题;
7、可指导工件的检测。
通过本课程能够得到如下方法能力的训练:
1、调度协调环节可涉猎利用专业术语与人沟通能力的训练;
2、 现场问题处理可涉猎观察、分析、判断加工现场的安全、可靠、合理性和改革、创新能力的训练;
3、软件工具的使用可涉猎接受技术指导和自我学习的能力训练;
4、团队工作可涉猎与人合作的素质的养成训练。
二、教学内容选取
《机械工艺与装配》课程针对“机械工艺与装配”这一典型工作任务,以源于企业、经过教学改造,依据认知规律,教学内容体现数控工艺员工作过程性知识与技能,充分利用前导课程的知识与技能的积淀,贯穿专业信息的利用和新信息的采集方法能力培养,从数控技术专业数控工艺员人才培养目标的最终实现角度,来培养学生的职业行动能力,实现数控机床高级操作工、数控工艺员的培养目标。
三、借鉴部件成组分类法形成学习情境
选择与专业“学习领域”课程有接口的产品,榨汁机模型作为第一个学习情境:本学习情境是由课程组教师参与设计、编程、加工、装配的哈轻车箱体连接件模具、马自达6手刹车系统成型模具、汽车导油槽等产品的部分零件,经过教学改造用于体现课程内容的多零件装配的部件。该部件由10个零件组装而成,其上包括回转类零件4件、轮廓类零件4件、复杂形体2件。连接件、标准件需要学生根据载体的功能和结构特点选择。零件以通用数据格式IGES文件、STEP文件格式给出,结构不够完整,存在可制造性缺陷。接受任务时需进行工艺处理。轮廓曲线可以利用,不可改造。多处设计了配合关系,加工时应给予保证。两个复杂形体是两个可利用的数据模型,体现专业领域学习内容的针对性。
选择典型零件、常用件、标准件组装而成的机械产品-学习情境二:解放全浮工作缸冲模,本情境是以来源于一汽汽车生产的真实产品“解放全浮工作缸冲模”的工艺设计(编程)、加工、装配为载体。本学习情境要完成解放全浮工作缸冲模的数控编程、加工与装配,该部件由16个待加工零件和多个标准件组成组装而成,其上包括回转类零件、曲面类零件、车铣复合类零件。
零件的工序流转相对比较多,加工顺序和加工方法选择以及工艺安排要求比较精细,多数零件图纸给出,部分需要根据复杂装配图拆画零件图,工艺设计内容比较多,应采用CAPP软件编制零件的数控加工工艺文件。更换部分零件可实现两个品种的加工,互换性要好。体现专业领域学习内容的普适性。
用一个可进行教学成果比较和检验的典型部件数控大赛竞赛题作为第三学习情境。
在基于工作过程设计教学情境中,学习内容遵循基本的工作行为过程结构――资讯、计划、决策、实施、检查和评价,学生通过六步法的训练,学到了普适性的工作思路,随着学习的深入,能够从非独立到独立的完成的工作任务,提高了学生的职业适应能力,新技术的应用与基础技术的有机衔接。三维造型技术越来越广泛应用在产品开发与制造中,如机械产品的设计、研发、分析与数控加工自动编程等。产品结构信息的表达由原来的二维图纸拓展到三维实体,但三维造型仍不能取代二维图纸,因此,课程所培养的产品表达能力――产品二维图样、产品的三维造型应并重,我们在每个学习情景中将产品图样识读、工艺策划、加工有机串联,按认知规律选择合适工作载体进行循环训练,实现学生技术能力的拓展和迁移。
它山之石可以攻玉,以上就是差异网为大家带来的4篇《课程设计报告》,希望对您的写作有所帮助。
课程设计报告2
开发背景
1.智能手机的市场
(1)功能多样化的智能手机挑战全球PC出货量
移动互联网时代的来临,直接促进了搭载智能操作系统、具有强大扩展性的智能手机、平板电脑等移动终端产业的蓬勃发展。来自美国最大的风险投资机构KPCB的数据显示,全球智能手机出货量正在以远高于台式电脑、笔记本电脑出货量的速度快速增长,该机构预计20xx年全球智能手机出货量将达到亿,超过台式电脑与笔记本电脑出货量的总和。
(2)智能手机的用户使用数量正在高速增长。据市场调研机构Gartner信息,20xx年全球智能手机的总出货量将会达到亿部,相比20xx年实现了%的增长,而谷歌Android操作系统将会在今年之内成为全球最大的智能手机操作系统。另外,全球市场调研机构IDC预计未来5年中国手机市场上,智能手机替代传统功能手机的趋势将日益明显,未来5年中国智能手机市场复合增长率将达到%,人们对IT设备智能化的向往是这一增长率能够实现的主要因素,并且与其他国家相比,中国智能手机市场的发展空间更加广阔。
(3)操作系统格局预测:Android有望成为智能手机市场主导力量
搭载Android操作系统的智能手机目前已经成为市场上最炙手可热的智能产品。来自美国市场研究机构Gartner的数据显示,Android操作系统所占的市场份额从20xx年的%急剧增长到20xx年的%。开放的`源代码和零成本已经让Android在全世界范围内受到青睐并迅速获得了主要手机厂商和数百万软件开发者的支持,Gartner预计,未来Android系统的市场份额有望超过其他操作系统,从而成为全球第一大智能手机操作系统。
2.安卓手机介绍
安卓手机指的是用Android操作系统的手机。安卓(Android)是基于Linux内核的操作系统,是Google公司在20xx年11月5日公布的手机操作系统。
同样都是手机上面用的智能系统,安卓的系统是新生系统,界面更为华丽,
开源性更强,当然因为是新生系统,所以在第三方软件方面暂时还不太多。因此,安卓应用程序的需求还是很迫切的。
3.软件人才需求
据业内统计,目前国内的Android研发人才缺口至少30万。由于目前Android技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等内容需求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此Android人才的就业前景也非常广泛。
综上所述,在这样的背景下,安卓有很强的生命力。同时,作为一个新生的系统,其应用程序目前并不多,安卓应用程序的需求还是很迫切的,安卓研发人才的缺口还很大。这些都促进了我们学习开发安卓应用程序。
课程设计报告3
1、研究背景
响应式网页设计,是目前网页前端设计领域最前沿的话题。那么,什么是响应式网页设计,为什么把网页设计成响应式,我们的网络课程制作为什么要遵循这一设计思路是本文阐述的重点。伴随着互联网高速发展,各种类型的网络技术及应用服务纷纷涌现。从静态网站到动态网站,从到,日新月异的网络技术和服务时刻在刷新我们的眼球。近些年,智能手机及平板电脑等移动设备快速崛起,基于移动终端的互联网访问已经走入了我们的日常生活,现在移动终端的网络访问量已超过基于普通电脑的访问量。因此要求网络课程不仅要在普通电脑的大尺寸屏幕上可以为学习者提供友好的用户界面和学习体验,同时在各种不同分辨率的小尺寸移动终端上也应提供相对一致的学习体验。
2、基本技术方案
显然,面对这一问题,原有的网络课程设计模式已经远远不能适应这一要求,那么,如何让网络课程也能实现响应式设计,并可以根据不同的终端设备给出不同的输出信息数据,我们根据现有的一些网站开发的技术手段和前端页面的设计模式,以及根据实际开发过程中总结出的一些实践方法,一般使用以下手段来实现,比如把固定的数值包括位置定位、长宽高、大小等变为相对的量,这其中主要包括三个主要手段:流体式表格,液态图片,媒体选择器。
流体式表格
在流体式表格出现之前的页面设计,一般会使用固定的网页宽度设定,这主要是因为当时主流的电脑显示器的分辨率是基本相同的,固定的宽度可充分的使用显示器宽度,同时又不会使用户感觉页面过满。但随着电脑硬件的不断发展变化,屏幕尺寸和分辨率越变越大,自适应宽度的网页逐渐问世,这种设计方式可占据整个浏览器页面适度的宽度,同时随着页面宽度的变化进行重新排列布局。流体式表格的概念就是将网页页面进行栅格划分,使用相对单位代替绝对单位,使用相对单位来设置页面元素的位置偏移和大小等变量,这样可以使整个网页的布局模式和内容大小随着宽度的变化而改变,从而适应不同的显示需求。同时使用基于div的布局方式,例如要进行经典的三列式排布,我们可以将div设置为左浮动,并且宽度设置为33%,这样当宽度改变时,这三个div也一直会在自己所在的区块里排成三列。因为我们设定了浮动式布局,段落不会因为页面的变化而出现重叠或分离的情况。流体式表格保证了网页能够响应浏览器的宽度变化,同时保证不会出现横向滚动条。
液态式图片
液态式图片也可以称为响应式的图片,这是一个比较抽象的说法,我们可以这样理解,那就是不仅要保持缩放图片时保持图片的宽高比,而且还要在移动终端上适当降低图片的分辨率。这个技术的实现需要使用网页脚本检测当前设备的屏幕分辨率,根据不同设备的情况,向网页中添加特定的web请求信息或标记,并将后续的网页html页面代码、页内图片、网页脚本和样式表等加载请求定向到网站虚拟路径上。当这些请求到达网站的服务器端时,网络服务器会根据发送来的请求信息来决定这些请求所需要网页中是插入的大尺寸的高分辨率图片还是小尺寸的低分辨率的图片,并向请求用户进行液态图片相应地反馈输出。对于小屏幕和低分辨率的移动设备,大尺寸图片则不会被用到。使用液态式图片可以有效降低移动端的网络数据流量并提高网页访问速度。
媒体选择器
css中文名是层叠样式表,目前最新的版本是第三版也就是css3,它能实现网页内容与表现分离的一种技术。流体式表格为我们提供了响应式的页面布局方式,不过在某些较小的屏幕终端上,如果页面没有办法容纳四列显示,只能重新排列成三列或者两列显示,那么,该如何响应此设备,我们可以使用css3媒体选择器技术解决这个问题。css3兼容之前的css版本所支持的所有媒体类型,例如:screen,print,handheld等,并且css3又添加了很多涉及媒体类型的最新的功能和属性,包括最大宽度、设备宽度、屏幕定向,横屏或竖屏及颜色设定等。在css3发布之后出现的新的移动终端,如苹果或安卓等设备,都可以相对完整的支持这些新属性。所以可以通过媒体选择器为新设备设置独特的样式,而忽略不支持css3的旧电脑中的老旧的浏览器;可以根据使用预先设想的使用目标创建多个不同类型的样式表,以适应不同宽度范围的设备类型。而目前最高效的解决方案,是将多个类型的选择器整合到一个css文件中。
3、深入探讨
有了流体式表格、液态图片、css3媒体选择器,已经基本可以根据终端设备的不同屏幕尺寸及分辨率显示不同的课程页面变化,但响应式网页设计不仅如此,还应包含一些其他方面的内容,我们列举出如下的响应式网页设计的主要包含的几个方面:(1)响应不同终端的屏幕尺寸及分辨率变化。当终端的屏幕尺寸及分辨率发生改变的时候,根据设备情况需要对页面菜单、文字、布局等做出动态调整,使用户仍然能够获得友好的使用体验;(2)响应设备操作行为变化。如鼠标拖拽(iPad上使用JavaScript事件模拟拖拽),触摸屏手势支持或其它移动设备上特有的输入方式;(3)网络状况自适应。用户在慢速网络或网络延迟较大的情况下可以选择不下载一些消耗带宽的资源;(4)其他辅助功能响应。根据不同的终端,调用程序所需要的传感器和控制器,如GPS、陀螺仪、电话、短信等功能;(5)对使用场景做出响应。根据用户身处的不同使用环境,提供给用户不同网页体验;(6)响应用户偏好。因为不同的用户有着不同的偏好,比如左右手,操作习惯,反映速度,眼睛辨别能力,色彩喜好,关注内容不同等,网站都可以考虑做出响应。上述讨论的三个重要手段,主要是针对第一条内容。针对第二条内容则主要依靠浏览器和设备传感器的状态检测,来实时动态调整课程页面表现或运行方式,相对于普通电脑上基于鼠标和键盘的人机交互,触摸屏技术为我们带来了完全不同的互动方式与新的设计需求;这两者又有各自所适用的领域。幸运的是,要想让网站满足不同设备的需求,并非一件很难的事,只需要把注意力集中在某些地方。比如:触屏设备无法对鼠标滑过或指针的一些行为做出响应,因为触屏设备中根本就没有鼠标指针的设定,我们用手指点击屏幕就是单击,因此设计时不要让触屏设备出现任何依赖于鼠标的状态的触发模式。而其他几个方面则可根据网络课程的实际情况来实现不同的需求,例如:视频或图片比较多的课程,就需要对网络状况进行检测,以根据不同的用户带宽显示不同的视频或图片质量,以提高用户访问速度,提升用户体验。而一门制作优良的网络课程,如果能根据不同的用户给出不同的用户体验,使课程的学习更加贴近用户的习惯,那么,这一课程的受欢迎程度肯定会大大提升。
4、响应式网站制作流程
从页面设计到技术实现真格过程来说,设计并制作一个响应式网络课程,大致可以划分为以下4个过程:(1)网站美工,用户界面设计师,描绘出页面的风格和样式,并确定网页在最大分辨率的设备下应显示的全部内容,然后在页面尺寸不断缩小的情况下,如何布局,什么样的页面元素比如文字、图片、内容等需要改变显示方式进行隐藏,缩放或裁剪等,再一一做出调整;(2)使用相对单位对页面元素进行定位和设定,设置长度、宽度、大小等;(3)针对不同显示终端的屏幕尺寸和分辨率使用流体式表格和液体图片实现响应;(4)根据分辨率变化视情况加入适当的媒体选择器来调整元素。通过以上步骤,一个可以适应各种平台和终端的响应式网络课程基本实现,经过后期的各种优化调整,一个优秀的并保持一致的用户体验的网络课程就呈现在了各种终端用户面前,通过响应式网页设计,大大减低了针对同一课程开发多个系统的工作强度,实现了网络课程制作的效率化和通用性。响应式网页设计的优点:(1)网站制作的工作量相对较小,不需要注册多个域名,对于所有设备适用;(2)相对一致的用户体验,个性化的用户习惯响应,很贴近用户平时的上网习惯;(3)可根据不同的用户终端,调用不同的终端工具,实现设备的有效合理利用。
5、结语
通过实际应用检验,我们制作的响应式的网络课程在学生学习过程中取得了较好的效果,学生普遍反应课程学习更方便、更人性化。相信未来越来越多的网络课程会逐渐的开始支持多平台的响应式设计方案。本文虽然只是探讨面向多平台的响应式网络课程实现技术,但也是对各种新技术、新方法的抛砖引玉,希望通过本文使读者能够对网络课程的制作技术产生更多的好的想法和思路。
课程设计报告4
Cortex-M3 是 ARM 公司基于 ARM V7 架构的新型芯片内核。 STM32V100-II 型是英蓓特 公司新推出的一款基于 ST 意法半导体 STM32 系列处理器(Cortex-M3 内核)的全功能 评估板。STM103V100-II 评估板有 USB,Motor Control,CAN,SD 卡,Smart 卡, UART,Speaker,LCD,LED,BNC,耳塞插孔等丰富的外设,有助于用户轻松开发 STM32 的强大功能。STM32 系列使用了 ARM 最新的、先进架构 Cortex-M3 内核,本文论述 了在 Keil Realview 开发环境上开发基于汇编语言的 LED 控制程序, 基于对 STM32 的 GPIO 寄存器写值配置思想, 控制 EduKit-M3 实验平台的发光二极管 LED1、 LED2、 LED3、 LED4, 使它们有规律地点亮。
一、 设计概述
、 设计需求
Keil Realview 开发环境上,全部采用汇编语言编程,实现对 EduKit-M3 实验平台的发 光二极管 LED1、LED2、LED3、LED4 的亮灭控制,使它们有规律地点亮。 这里采用例程提供的顺序点亮方式,按照 LED1 亮 LED2 亮 LED3 亮 LED4 亮,如此反复,要求每个 LED 亮灭之间延时一段时间,以增强可观性。需要说明的是,这 仅仅作为程序控制 LED 的一种控制方式,基于点亮 LED 的控制原理,可以编程实现各种显 示 LED 的亮灭模式,并提供一种通用的控制方法,要求程序可读性强,易于修改。
、 设计原理
(1)STM32 通用 GPIO 端口概述 STM32F10x 处理器上共有 7 个 I/O 端口:A、B、C、D、E、F、G,每个 16 个管脚 每组端口(寄存器必须以 32 位字形式访问) 每组端口有以下寄存器: , 32 位配置寄存器: GPIOx_CRL、GPIOx_CRH 32 为数据寄存器: GPIOx_IDR、GPIOx_ODR 32 位置位/复位寄存器: GPIOx_BSRR 16 位复位寄存器: GPIOx_BRR 32 为锁定寄存器: GPIOx_LCKR I/O 口通用输入、输出端口配置为输入时,每个 APB2 时钟周期将端口数据送输入寄存 器(GPIOx_IDR),在输入模式下,输出是断开的。输出模式时:写到输出寄存器(GPIOx_ODR) 的值被传给对应的 I/O 引脚。在输出模式下,输入是允许的 (2)程序设计原理 EduKit-M3 实验平台上,通过写值配置端口数据输出寄存器 GPIOC_ODR[15:0]值,可 以实现对四个 LED 的亮灭控制, 因为 C 口[9:6]位和四个 LED 灯连通。 而这里主要是通过对 时钟控制寄存器以及端口 C 的各配置寄存器和输出寄存器写值, 以达到配置端口, 控制 LED 的目的。 汇编语言与 C 语言相比,要求更加贴近硬件,了解 M3 内核的内部结构和寄存器地址。 基于汇编语言的编程控制, 只需要找出需要配置的端口基地址, 然后弄清楚各寄存器的偏移 地址,以及各寄存器每位的含义,按照要求写 1 或写 0 即可。
2
二、 硬件设计:
硬件电路
硬件电路描述
本设计是基于 EduKit-M3 实验平台的嵌入式开发实例, EduKit-M3 实验平台有四个 LED 灯,分别为 LED1、LED2、LED3、LED4,对应的连接到 I/O 的 C 口 、、、 四位输出位上,不需要外扩电路或者额外接线,简单易行。
三、 软件设计
程 序 流 程 图
软 件 设 计 描 述
(1)整个工程包含 3 个源文件:、和 my ,stm32f10x_ 其中 为启动代码, 。启动代码作用是:1)堆和栈的初始化;2)向量表定义;3)地 址重映射及中断向量表的转移;4)设置系统时钟频率;5)中断寄存器的初始化;6)进入 汇编主程序。my 是汇编主程序,完成所有控制功能。
(2)程序工作原理概述: 对于 LED 的控制,主要通过对 I/O 端口的配置,将对应的寄存器相应的位写 1 写 0 控 制。程序首先要经过启动代码段进行相关的启动配置,然后跳转到汇编主程序。 汇编主程序完成了时钟、端口配置以及 LED 点亮的所有功能。首先需要对于系统时钟进 行配置,已获得系统所用频率。 然后进行端口配置低、高寄存器配置,获得输入输出模式以及最大速度。将时钟和端口 配置完成后,就可以对输出寄存器进行对应位的写值控制了,从而达到控制 LED 的目的,高 电平点亮,低电平熄灭。 点亮 LED 后,转入延时子程序,延时子程序写值 0X000FFFFF,做寄存器值减法,减到 0 后,过程所需时间即是延时时间,即单个 LED 点亮时间。本程序设置循环点亮模式,即 LED1 到 LED4 顺序循环点亮,将对应位逐次写 1,如果需要修改点亮模式,只需修改寄存器的值以 及写值顺序即可。
(3)寄存器配置描述 端口配置低寄存器(GPIOC_CRL) C口基地址:0X40011000 偏移地址:0x00 复位值:0x44444444 寄存器配置:0X22222222 功能含义: 口配置低寄存器为模拟输入模式, 端 通用推挽输出模式, 输出模式, 最大速? 2MHz
端口配置高寄存器(GPIOC_CRH) C口基地址:0X40011000 偏移地址:0x04 复位值:0x44444444 寄存器配置:0X22222222 功能含义: 口配置高寄存器为模拟输入模式, 端 通用推挽输出模式, 输出模式, 最大速? 2MHz 端口输出数据寄存器(GPIOC_ODR) C口基地址:0X40011000 地址偏移:0Ch 寄存器配置 0xfffffc4f 0xfffffc8f 复位值:00000000h 功能含义 位写 1,对应点亮 LED1 位写 1,对应点亮 LED2
40xfffffd0f 位写 1,对应点亮 LED3 位写 1,对应点亮 LED4
时钟控制寄存器(RCC_CR) 复位和时钟基地址:0X40021000 偏移地址: 0x00 复位值: 0x000 XX83 寄存器配置:0X00000003 功能含义:PLL 未锁定,PLL 关闭,时钟监测器关闭,外部 1-25MHz 振荡器没有旁?,外部 1-25MHz 时钟没有就绪,HSE 振荡器关闭内部 8MHz 时钟就绪,内部 8MHz 时钟开启。 时钟配置寄存器(RCC_CFGR) 复位和时钟基地址:0X40021000 偏移地址: 0x04 复位值: 0x0000 0000 寄存器配置:0X00000000 功能含义:没有时钟输出,PLL 时钟 倍分频作为 USB 时钟,PLL 2 倍频输出,HSE 不分 频,HSI 时钟 2 分频后作为 PLL 输入时钟,PCLK2 2 分频后作为 ADC 时钟,HCLK 不分频, HCLK 不分频,SYSCLK 不分频,HSI 作为系统时钟,HSI 作为系统时钟。 AHB外设时钟使能寄存器 (RCC_AHBENR) 复位和时钟基地址:0X40021000 偏移地址:0x14 复位值:0x0000 0014 寄存器配置:0X00000014 功能含义:睡眠模式时闪存接口电路时钟开启,睡眠模式时 SRAM 时钟开启,DMA 时钟关 闭 APB2 外设时钟使能寄存器(RCC_APB2ENR) 复位和时钟基地址:0X40021000 偏移地址:0x18 复位值:0x0000 0000 寄存器配置:0XFFFFFFFF 功能含义:USART1 时钟开启,SPI1 时钟开启,TIM1 时钟开启,ADC2 时钟开启,ADC1 时钟开启,IO 口 E 时钟开启,IO 口 D 时钟开启,IO 口 C 时钟开启,IO 口 B 时钟开启,IO 口 A 时钟开启,辅助功能 IO 时钟开启
主 要 程 序 说 明
(1)启动代码转入汇编主程序的设置: 启动代码段设置: Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT MAIN ;声明外部函数,导入符号 LDR R0, =MAIN ;等待工作调用 BX R0 ;跳转到汇编主程序 MAIN 函数 ENDP ;过程段结束 汇编主程序设置: AREA MYCODE,CODE,READONLY ;定义一个代码段,属性为只读 EXPORT MAIN MAIN PROC (主程序功能段开始) EndP END (2)汇编主程序 ;配置时钟
5LDR R1,=0X40021000 LDR R0,=0X00000003 STR R0,[R1,#0X00] LDR R0,=0X00000000 STR R0,[R1,#0X004] LDR R0,=0X00000014 STR R0,[R1,#0X14]
时钟控制寄存器入口
配置时钟控制寄存器(RCC_CR)
配置时钟配置寄存器(RCC_CFGR)
配置 AHB 外设时钟使能寄存器 RCC_AHBENR
LDR R0,=0XFFFFFFFF STR R0,[R1,#0X18] ;配置 APB2 外设时钟使能寄存器(RCC_APB2ENR) ;----------------------------------------------------------------------------------------------------;配置端口 MOVS R0,#0X22222222 LDR R1,=0X40011000 STR R0,[R1,#0X00] ;配置端口配置寄存器 GPIOC_CRL MOVS R0,#0X22222222 LDR R1,=0X40011000 STR R0,[R1,#0X04] ;配置端口配置寄存器 GPIOC_CRH ;---------------------------------------------------------------------------------------------------;点 亮 LED LDR R0,=0xfffffc4f STR R0,[R1,#0X0C] ;将 0xfffffc4f 写进 GIPOC_ODR, 点亮 LED1 BL DELAY ;延时 --------------------------------------------------------------------------------------------------------LDR R0,=0xfffffc8f STR R0,[R1,#0X0C] ;将 0xfffffc8f 写进 GIPOC_ODR, 点亮 LED2 BL DELAY ;延时 -------------------------------------------------------------------------------------------------------LDR R0,=0xfffffd0f STR R0,[R1,#0X0C] ;将 0xfffffd0f 写进 GIPOC_ODR, 点亮 LED3 BL DELAY ;延时 -------------------------------------------------------------------------------------------------------LDR R0,=0xfffffe0f STR R0,[R1,#0X0C] ;0xfffffe0f 写进 GIPOC_ODR, 点亮 LED4 BL DELAY ;延时 -------------------------------------------------------------------------------------------------------B MAIN ;跳到 MAIN 函数 ;------------------------------------------------------------------------(2)延时子程序 DELAY
6LDR R3,=0X000FFFFF ;延时控制字 DELAY_1 SUBS R3,R3,#0X01 ;延时控制字自减 BEQ DELAY_OUT ;为 0 跳出返回 B DELAY_1 ;不为 0 回转继续做减法 DELAY_OUT BX LR ;程序返回
四、 调试与结果
调 试 过 程
(1) 使用 Keil uVision3 通过 ULINK 2 仿真器连接 EduKit-M3 实验平台,打开建立的 my led controler 工程,点击子目录下的 my 文件,编译链接工程。 设置 Flash——Debug, 选择 Cortex-M3 J-LINK, Flash——Utilities, 同样选择 Cortex-M3 J-LINK,效果如下
点击编译链接,生成 HEX 文件
点击 Load,下载源程序到 STM32,运行程序 (2) 选择软件调试模式,点击 MDK 的 Debug 菜单,选择 Start/Stop Debug Session 项或 Ctrl+F5 键。
7在逻辑分析仪中添加 GPIOC_、GPIOC_、GPIOC_、GPIOC_, 点击 Run 按钮即可在逻辑分析仪中看波形。
测 试
本程序由于大量的涉及到原理简单,测试方便,只需要单步运行,查看寄存器的值,就 可以测试程序的正确性。
(1) 程序开始时各寄存器的值
(2)将时钟控制寄存器入口基地址赋值给 R1
(3)R1 既已经被赋值了时钟控制寄存器入口地址,利用偏移地址将时钟各控制寄存器的地 址赋值给(R1+偏移量) 达到配置 RCC_CR、RCC_CFGR、RCC_AHBENR、RCC_APB2ENR 的目的, , 集体寄存器值变化如下:
8(4)端口配置情况测试:I/O C 口入口地址写进通用寄存器 R1,利用基地址加偏移地址找 到端口配置寄存器 GPIOC_CRL、GPIOC_CRH,然后将控制字 0X22222222 写进该寄存器。
(5)端口输出数据寄存器(GPIOx_ODR) 的值的变化,直接反映了外部 LED 的亮灭变化, 采用逐位写 1 的方式,实现循环点亮,此时通用 R1 已经被写进了 C 口的入口基地址,只需 加上偏移地址#0X0C,便是 GPIOx_ODR 的地址,每次写值控制 LED 点亮后,程序跳转到延 时子程序,所测试结果如下: 将 0xfffffc4f 写进 GIPOC_ODR 点亮 LED1 延时子程序运行寄存器变化情况
当转入延时子程序后,寄存器 R3 值做减 1 算法,从 0X000FFFFF 循环减至 0,是为延时 时间,然后继续跳转至端口输出寄存器配置,点亮 LED2,接着再次跳转到延时子程序,R39再次做减 1 运算,如此控制 LED 循环点亮。 转入延时子程序
退出延时子程序对 LED2 对应位写 1 况
结 果 及 描 述
(1)逻辑分析仪中波形:
GPIOC_、 GPIOC_、 GPIOC_、 GPIOC_ 的波形即对应的 LED1、 LED2、LED3、LED4 高低电平波形,由此可以验证程序的正确性,即 LED 确实按照程序的 思想循环顺序点亮。
(2)当将程序下载到 STM32 中后,EduKit-M3 实验平台上四个 LED 确实循环点亮,进一 步验证控制程序的正确性。
五、总结
本设计是基于 STM32 的汇编语言编写的 LED 循环顺序点亮控制程序,原理简单易行, 程序可修改性和可读性强, 件电路也很简单, 需要外扩电路, 接利用试验台内部接线, 硬 不 直 通过对 GPIO 的控制来相应地点亮 LED 灯。 整个控制程序只需要找到相应的时钟、端口、输出寄存器的地址,以及各控制寄存器的 偏移地址,直接寻址写值控制,这是与 C 语言程序最大的不同点,即汇编编程更加的贴近硬 件,要求熟悉内部寄存器的地址,熟悉如何配置各位,这就要求对寄存器每位的含义非常清 楚。 通过用汇编语言编写 I/O 控制程序, 进一步熟悉了解了 STM32 GPIO 操作, 以及 CORTEX M3 的内部架构和优点,学会了如何使用 KEIL Realview 开发 STM32,以及如何进行程序单 步调试,寄存器值查看。了解了 EduKit-M3 实验平台内部结构和优良的功能。