嵌入式系统实训教程
- 格式:doc
- 大小:1.09 MB
- 文档页数:46
嵌入式系统系列教材嵌入式Linux系统实训教程 徐成 谭曼琼 徐署华 刘豪朱雪庆编著李仁发主审人民邮电出版社北京内容提要本书首先对嵌入式系统的开发做了简单的概述,然后介绍Super-ARM开发平台及如何在该平台上安装开发环境,接下来结合开发平台上丰富的资源及接口重点介绍一些典型案例,包括LED、键盘、UART、A/D、GPS、GPRS等。
在这些案例中,深入解析Linux操作系统的移植与驱动程序的设计,同时介绍QT嵌入式图形界面工具,在本书的最后介绍了一个大型的综合型实验。
这个实验是在前面的基础上衍生出来的,融合了已经介绍的技术,贯穿整个嵌入式开发的流程。
通过前面各案例的学习及该大型实验的训练,读者将具备基本的嵌入式开发能力。
本书适合计算机应用技术、通信工程、软件工程等相关专业的大专(高职)学生阅读,也可作为社会办学机构中面向企业嵌入式应用开发的定向培养、培训课程的学员的参考教材。
嵌入式系统系列教材嵌入式Linux系统实训教程♦编著徐成 谭曼琼 徐署华刘豪朱雪庆主审李仁发责任编辑王建军执行编辑李静♦人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编 100061 电子函件 315@网址 北京昌平百善印刷厂印刷♦开本:787×1092 1/16印张:19字数:470千字2010年4月第1版印数:1 – 3 000册2010年4月北京第1次印刷ISBN 978-7-115-22377-7定价:39.00元(附光盘)读者服务热线:(010)67119329 印装质量热线:(010)67129223反盗版热线:(010)67171154。
嵌入式系统工程训练方案一、培养方案概述嵌入式系统工程是应用于各种现代设备中的计算机系统。
它们通常用于控制设备的功能,并且对于今天的技术世界至关重要。
因此,培养嵌入式系统工程师是十分重要的。
本培养方案旨在培养学生全面掌握嵌入式系统工程理论和实践技能,能够灵活运用嵌入式系统工程知识解决工程技术问题。
二、培养目标1. 系统的项目管理能力:学生能够使用嵌入式系统项目管理工具,进行项目计划和实施。
2. 专业知识:学生能够掌握嵌入式系统设计、开发、测试和维护的基本理论和方法。
3. 软件设计能力:学生能够使用常见的嵌入式系统开发工具,进行软件设计、测试和调试。
4. 硬件设计能力:学生能够使用常见的嵌入式系统开发工具,进行硬件设计、测试和调试。
5. 系统集成能力:学生能够熟练掌握嵌入式系统的集成和调试技术,进行系统级测试和评估。
6. 创新能力:学生能够运用创新思维和技术知识,独立解决实际工程问题。
三、培养方案实施1. 专业基础课程学习学生必须先通过嵌入式系统工程的专业基础课程学习,包括计算机组成原理、嵌入式系统设计原理、C语言程序设计、数字电路设计、嵌入式系统开发技术等课程。
这些课程将为学生建立嵌入式系统工程的理论基础和实践技能。
2. 实践能力培养学生需要参与实际的嵌入式系统项目开发,通过参与团队项目或者独立项目的实践活动,提高自己的实际操作能力。
这样的实践能力培养可以在学生毕业之后,更好地适应实际工作中的需要。
3. 多元化评价体系为了更好地评价学生的培养效果,采用多元化的评价体系。
包括课程考试、课程项目成果评价、实习实践评价、综合能力评价等,综合反映学生的专业基础、实践能力和综合素质。
4. 毕业设计/论文学生需要在毕业设计/论文环节进行综合考核,不仅考察学生的专业知识掌握程度,更重要的是考察学生在嵌入式系统工程实践中的创新能力。
四、培养方案课程设置1. 计算机原理与体系结构通过学习计算机的基本原理和体系结构,帮助学生理解计算机硬件和软件之间的关系,掌握计算机的运行原理和指令系统等基本知识,为学生后续的专业课程学习打下基础。
一、实验背景随着信息技术的飞速发展,嵌入式系统在各个领域得到了广泛的应用。
为了让学生更好地掌握嵌入式系统设计的相关知识,提高学生的动手能力和实际操作能力,我们开展了嵌入式实验设计实训。
本次实训以ARM处理器为平台,通过实际操作,让学生了解嵌入式系统的基本原理和设计方法。
二、实验目的1. 熟悉ARM处理器的基本架构和编程环境。
2. 掌握嵌入式系统设计的基本流程和方法。
3. 培养学生的动手能力和实际操作能力。
4. 提高学生对嵌入式系统的认知和应用能力。
三、实验内容1. 实验环境(1)硬件平台:ARM处理器开发板(2)软件平台:Keil uVision5、GNU ARM Embedded Toolchain2. 实验步骤(1)搭建实验环境首先,将开发板连接到计算机,并安装Keil uVision5和GNU ARM Embedded Toolchain软件。
接着,配置开发板,使其能够正常运行。
(2)编写程序根据实验要求,编写嵌入式系统程序。
程序主要包括以下几个方面:1)初始化:设置时钟、GPIO、中断等。
2)主循环:实现程序的主要功能。
3)中断处理:处理外部中断。
4)延时函数:实现延时功能。
(3)编译程序将编写好的程序编译成可执行文件。
(4)下载程序将编译好的程序下载到开发板上。
(5)调试程序在开发板上运行程序,通过串口调试软件观察程序运行情况,并对程序进行调试。
(6)实验报告根据实验内容,撰写实验报告。
3. 实验项目(1)点亮LED灯通过控制GPIO端口,实现LED灯的点亮和熄灭。
(2)按键控制LED灯通过检测按键状态,控制LED灯的点亮和熄灭。
(3)定时器实现定时功能使用定时器实现定时功能,例如定时关闭LED灯。
(4)串口通信实现串口通信,发送和接收数据。
四、实验结果与分析1. 点亮LED灯实验成功实现了通过控制GPIO端口点亮LED灯的功能。
2. 按键控制LED灯实验成功实现了通过检测按键状态控制LED灯的功能。
嵌入式系统实验指导书襄樊学院物理与电子信息学院实验要求1.进入实验室前完成的部分1)认真阅读实验指导书,弄懂实验原理和实验内容。
2)编写实验所要用到的程序,将其放在U盘上。
3)写出预习报告。
2. 进入实验室后完成的部分1)建立工程,加入已准备好的程序文件。
2)对程序进行调试,修改错误,获得要求的结果。
3)保存调试后的程序。
3.实验结束后的部分对实验结果进行分析、总结,写出实验报告。
实验报告内容及格式1.实验目的2.实验设备3.实验原理及环境4.实验内容只做文字叙述,程序部分放在程序清单中。
流程图也可不画。
5.程序清单本实验使用的完整程序。
如果使用了本实验或前面实验中完全相同的子程序,可不列写,只做注明即可。
6.实验步骤7.实验总结主要包括对实验结果、调试过程、错误及产生的原因的分析,以及本次实验的重要收获等。
此项为实验成绩评定的重要依据。
实验1 Keil C51的使用(汇编语言)实验目的:初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。
实验设备:ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。
实验原理及环境:在计算机上已安装Keil C51软件。
这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。
如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。
实验内容:1.掌握软件的开发过程:1)建立一个工程项目选择芯片确定选项。
2)加入C 源文件或汇编源文件。
3)用项目管理器生成各种应用文件。
4)检查并修改源文件中的错误。
5)编译连接通过后进行软件模拟仿真。
6)编译连接通过后进行硬件仿真。
2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。
仲恺农业工程学院实训总结报告实习环节嵌入式系统工程实训院系信息科学与工程学院班级网络113学生姓名张宝鑫学号201110224328指导教师符志强实习时间2013年9月16日—2013年9月27日二○一三年九月二七目录1、Proteus ISIS安装、菜单使用及心得 (2)1.1、Proteus ISIS的安装 (2)1.2、Proteus ISIS的菜单使用 (8)1.2.1、主菜单 (9)1.2.2、主工具栏 (10)1.3、Proteus ISIS使用心得 (10)2、Proteus ISIS电路图的绘制 (10)2.1、心形走马灯 (10)2.2、电子钟 (13)2.3、超级显示屏 (15)3、Proteus ISIS原理图仿真调试 (18)3.1、案例一:定时器控制交通指示灯 (18)3.1.1、电路原理图 (18)3.1.2、源程序 (18)3.2、案例二:报警与旋转灯 (20)3.2.1电路原理图 (21)3.2.2、源程序 (21)4、实训总结 (23)1、Proteus ISIS安装、菜单使用及心得1.1、Proteus ISIS的安装步骤1、双击“proteus_setup7.5.exe”,开始安装。
步骤2、点击“Next”步骤3、点击“Yes”步骤4、选择第一项后,点击“Next”。
步骤5、点击“Next”。
步骤6、选择第一项。
步骤7、浏览“7.4 破解”文件夹中“Grassington North Yorkshire.lxk”,点击“打开”。
步骤8、点击第三项“Install”。
步骤9、点击“是”步骤10、点击“Close”。
步骤11、点击“Next”。
步骤12、选择安装路径。
步骤13、选择安装组件。
步骤14、点击“Next”。
步骤15、等上一会儿吧。
步骤16、两项都不选择,点击“Finish”。
步骤17、运行“7.4 破解”文件夹中的“LXK Proteus 7.4 SP3 PRO v1.6.2.exe”,点击“U pdate”。
项目(实训)指导书系别:计算机系专业:软件工程专科专业课程:嵌入式系统开发制订人:朱贤刚审核人:罗洛阳制订时间:2014年8月目录项目一数码管显示实验 (3)项目二实时时钟实验 (7)项目三Linux应用程序编写实验 (11)项目四Linux驱动程序编写实验 (17)项目五Ramdisk文件系统创建 (22)项目六嵌入式web服务器移植及建立 (28)项目一数码管显示实验一、项目(实训)名称数码管显示实验。
二、项目(实训)学时数2学时。
三、项目(实训)目标实训目标:1. 了解数码管的显示原理;2. 掌握JXARM9-2440中数码管显示编程方法。
最终成果:1、能在ADT IDE集成开发环境中编写数码管显示程序,在数码管上循环显示0-F字符;2、能在数码管上显示HELLO。
获得的知识:1. 掌握数码管的显示原理;2. 掌握JXARM9-2440中数码管显示编程方法。
四、项目(实训)中的具体任务1、能在ADT IDE集成开发环境中编写数码管显示程序,在数码管上循环显示0-F字符;2、能在数码管上显示HELLO。
五、教师知识和能力要求知识要求:1. 了解C语言的基本知识;2. 了解ADT IDE中编写和调试程序的方法。
能力要求:1、能在ADT IDE集成开发环境中编写数码管显示程序,在数码管上循环显示0-F字符;2、能在数码管上显示HELLO。
六、学生知识和能力准备1. 了解C语言的基本知识;2. 了解ADT IDE中编写和调试程序的方法。
七、工具与设备1. 硬件:JXARM9-2410教学实验箱、PC机;2. 软件:PC机操作系统Windows 98(2000、XP) +ADT 1000开发环境。
八、辅助教学资料刘铁刚、杨磊等,《ARM9嵌入式技术及Linux系统实验指导书》,武汉创维特信息技术有限公司九、实施步骤与技术要点1.制作LED字符与码段对应表,以数组形式表示,如下面代码所示,seg7table[0]-seg7table[15]的值分别代表显示字符0-F时,各码段的输入数据。
嵌入式系统实训教程编著马兴录青岛科技大学信息科学技术学院2013-03-18目录第1章单片机实验教程 (1)1.1 单片机开发环境的搭建 (1)1.1.1 单片机开发环境介绍 (1)1.1.2 单片机开发环境的搭建 (1)1.1.3 联机调试 (3)1.1.4 练习 (4)1.2 单片机联机调试功能试验 (5)1.2.1 观察各类存储单元 (5)1.3 单片机定时器实验 (7)1.3.1 实验目的 (7)1.3.2 设计要求 (7)1.3.3 实验原理 (7)1.3.4 实验步骤 (7)1.3.5 常见问题 (8)1.3.6 练习 (8)1.4 单片机中断系统实验 (9)1.4.1 实验目的 (9)1.4.2 设计要求 (9)1.4.3 实验原理 (9)1.4.4 实验步骤 (10)1.4.5 练习 (13)1.5 简单交通灯控制系统的设计 (14)1.5.1 实验目的 (14)1.5.2 实验要求 (14)1.5.3 程序设计 (14)1.5.4 练习 (15)1.6 单片机串行通讯接口实验 (16)1.6.1 实验目的 (16)1.6.2 实验要求 (16)1.6.3 实验原理 (16)1.6.4 通讯协议 (17)1.6.4 实验步骤 (18)1.7 单片机课程设计 (19)1.7.1 课程设计要求 (19)1.7.2 提交 (19)第2章ARM程序设计实验 (20)2.1 ARM混合编程实验 (20)2.1.1 实验目的 (20)2.1.2 实验要求 (20)2.1.3 实验原理 (20)2.1.4 实验内容 (22)2.2 ARM的GPIO接口实验 (23)2.2.2 实验要求 (23)2.2.3 实验原理 (23)2.2.4 实验步骤 (25)2.2.5 练习 (25)2.3 ARM的AD接口实验 (26)2.3.1 实验目的 (26)2.3.2 实验要求 (26)2.3.3 实验原理 (26)2.3.4 实验步骤 (30)第3章嵌入式操作系统uC/OS-II实验 (32)3.1 基于uC/OS-II的多任务编程实验 (32)3.1.1 实验目的 (32)3.1.2 实验要求 (32)3.1.3 实验原理 (32)3.1.4 实验步骤 (33)3.1.5 思考题 (35)3.1.6 练习 (35)3.2 基于uC/OS-II的多任务编程实验 (36)3.2.1 实验目的 (36)3.2.2 实验要求 (36)3.2.3 实验原理 (36)3.2.4 实验步骤 (37)3.2.5 程序修改思路 (37)3.2.5 思考题 (39)第4章嵌入式Linux实验 (40)4.1 嵌入式Linux交叉开发环境的搭建 (40)4.1.1 实验目的 (40)4.1.2 实验要求 (40)4.1.3 实验步骤 (40)4.2.1 实验目的 (41)4.2.2 实验要求 (41)4.2.3 实验步骤 (41)4.3 嵌入式Linux下应用程序设计(1) (42)4.3.1 实验目的 (42)4.3.2 实验要求 (42)4.3.3 实验原理 (42)4.3.4 实验步骤 (42)4.3.5 思考题 (43)参考程序serial.c (43)4.4 嵌入式Linux下网络应用程序设计(1) (47)4.4.1 实验目的 (47)4.4.2 实验要求 (47)4.4.3 实验原理 (47)4.4.4.1 基本程序的编译运行: (49)4.4.4.2 修改程序,实现指示灯远程控制 (49)4.4.5 网络通讯函数 (50)4.4.6 思考题 (50)4.5 嵌入式Linux下网络应用程序设计(2) (53)4.5.1 实验目的 (53)4.5.2 实验要求 (53)4.5.3 实验原理 (53)4.5.4实验步骤 (55)第5章综合设计实验 (58)5.1 要求 (58)5.2 远程监控系统的设计实例 (59)5.2.1 设计实验的目的、内容、要求及实验基础 (59)5.2.2 系统设计 (60)5.2.3 实验步骤 (62)第1章单片机实验教程1.1 单片机开发环境的搭建本节目标:搭建Keil C51单片机编程开发环境,以及Proteus仿真环境,实现两者的联机调试。
实训1 电路分析中常用虚拟仿真仪器的应用一、实训目的1.进一步熟悉Multisim10.0 中常用仪器和虚拟仪器(函数信号发生器和双踪示波器)的使用方法。
2.掌握仿真电路的连接、修改和仿真。
二、素材准备Multisim10.0仿真软件三、实训内容1.构造微分电路和积分电路2.单管共射级放大电路分析四、实训步骤1.构造微分电路和积分电路微分电路满足2TRC <<=τ (T 为方波脉冲的重复周期),其电路如图1所示。
双击信号发生器图标,弹出函数信号发生器面板,面板参数选择如图2所示。
运行仿真开关,在示波器屏幕上会出现如图3所示的波形方波(红色)是输入波形,冲击脉冲波(蓝色)是输出波形。
图1 微分电路图 图2 信号发生器面板图3 微分波形图积分电路满足2TRC >>=τ (T 为方波脉冲的重复周期),其电路如图4所示。
双击信号发生器图标,弹出函数信号发生器面板,面板参数选择如图2所示。
运行仿真开关,在示波器屏幕上会出现如图5所示的波形。
图4积分电路图图5 积分波形图2.单管共射级放大电路创建如图6所示的电路后,运行仿真开关,可看到如图7所示的输出波形。
借助示波器,用调整电位器RP确定静态工作点。
电位器RP旁标注的文字“Key=A”表明按A键,阻值按5%递减;若要增加,按动“Shift+A”键,阻值按5%增加。
通过改变RP的阻值,观察示波器的波形变化,在输出波形不失真的情况下,执行“Simulate”菜单下的“DC Operating ……..”命令,选中所有节点(节点号随机产生),然后单击“Simulate”按钮,系统自动的显示出运算结果,如图8所示。
图6单管共射级放大电路图图7 示波器显示的输入输出波形图五、实训过程注意事项1.函数信号发生器和示波器各参数的设置,熟悉各选项的功能。
2.熟悉每个电路图的功能和参数。
3.熟练电路图的连接和修改。
实训2 三种基本组态晶体管放大电路一、实训目的1.分析工作点稳定的共发射极放大电路性能。
嵌入式技术应用实训指导书嵌入式技术应用实训指导书2011年9月目录实训1 在虚拟机上安装Linux系统 (1)实训目的: (1)实训条件: (1)实训步骤: (1)1.安装和使用VMWare7 (1)1.1. 解压并安装VMware (1)1.2. 新建虚拟机 (1)2.在VMWare虚拟机上安装Linux发行版Fedora9 (4) 2.1. 安装Fedora9 (4)2.2. 第一次运行Fedora9 (11)3.在VMWare虚拟机上使用光盘映像文件xxx.iso (15) 3.1. 虚拟机启动之前设置光盘映像文件 (15)3.2. 虚拟机启动进入Linux系统之后设置光盘映像文件 (16) 实训报告: (17)实训2 练习使用Linux操作系统 (18)实训目的: (18)实训条件: (18)实训步骤: (18)1.目录的浏览、建立、复制和删除 (18)1.1. 使用文件浏览器管理目录 (18)1.2. 使用命令管理目录 (18)2.文本文件的建立、复制和删除 (19)2.1. 使用编辑器gedit编辑文件 (19)2.2. 使用命令行终端建立、复制和删除文件 (19)3.Linux常用命令的使用 (20)实训报告: (20)实训3 练习使用GCC工具 (21)实训目的: (21)实训条件: (21)实训步骤: (21)1.查看gcc版本信息 (21)2.查看头文件和库文件 (21)3.gcc的基本用法 (22)3.1. 通过hello程序了解编程流程 (22)3.2. gcc命令选项的使用 (23)3.3. 处理编译错误 (24)4.gdb的基本用法 (25)4.1. 编译生成带调试信息的hello程序 (26)4.2. 调试gdbhello程序 (26)5.make工具的使用 (27)5.1. makefile文件的基本写法 (28)5.2. 使用变量的makefile文件的写法 (29)5.3. 使用自动变量和预定义变量的makefile文件的写法 (29) 实训报告: (30)实训4 练习使用mini2440开发板 (31)实训目的: (31)实训条件: (31)实训步骤: (31)1.开发板设置及连接 (31)1.1. 启动模式选择 (31)1.2. 外部接口连接 (31)1.3.打开电源 (31)2.使用Linux 之图形界面Qtopia 2.2.0 系统 (31)2.1. 触摸屏校正 (31)2.2. 主要界面说明 (32)2.3. 自动装载SD 卡和优盘 (32)2.4. 练习运行Qtopia 2.2.0 系统的各种程序 (33)3.练习使用串口终端操作开发板 (37)3.1. 硬件连接和开关设置 (37)3.2. 设置超级终端 (37)3.3. 使用超级终端控制开发板 (39)3.4. 通过串口与PC互相传送文件 (41)4.使用Telnet 远程登录开发板 (42)实训5建立交叉编译工具链 (43)实训目的: (43)实训条件: (43)实训步骤: (43)1.使用arm_Linux_crosstools.iso光盘映像建立交叉编译工具 (43)2.设置Windows共享目录 (43)3.使用交叉编译工具 (44)4.在make工具中使用交叉编译工具 (44)实训报告: (45)实训6 下载系统文件到开发板 (46)实训目的: (46)实训条件: (46)实训步骤: (46)1.安装USB下载驱动 (46)2.为开发板下载系统映像文件 (46)实训报告: (48)实训7 移植linux内核 (49)实训目的: (49)实训条件: (49)实训步骤: (49)实训8制作linux根文件系统 (50)实训目的: (50)实训步骤: (50)1.复制源代码包 (50)2.解压源码包 (50)3.修改Makefile (50)4.进行配置 (50)5.编译busybox (51)6.安装 (51)7.建立目录 (51)8.改变tmp目录权限(在/tmp/nfs目录执行命令) (51)9.建立设备节点 (51)10.将busybox-1.13.3/root中的内容复制到/tmp/nfs (51)11.复制配置文件 (52)12.制作yaffs2根文件系统 (52)实训9 简易Linux驱动程序 (53)实训目的: (53)实训条件: (53)实训步骤: (53)1.启动vmware虚拟机 (53)2.编辑源文件 (53)3.建立Makefile文件 (53)4.编译、安装 (54)5.加载驱动程序模块 (54)6.卸载驱动程序模块 (54)实训10设计LED设备驱动程序 (55)实训目的: (55)实训条件: (55)实训步骤: (55)1.启动vmware虚拟机 (55)2.复制内核源代码 (55)3.编辑源文件 (55)4.把myled_driver加入内核代码树,并编译 (58)5.把myled_driver下载到开发板并安装使用 (58)6.编制led测试程序 (59)7.卸载myled_driver驱动程序 (60)实训报告: (60)实训11设计按键设备驱动程序 (61)实训目的: (61)实训条件: (61)1.启动vmware虚拟机 (61)2.复制内核源代码 (61)3.编辑源文件 (61)4.编制按键测试程序 (64)实训12设计按键设备驱动程序 (66)实训条件: (66)1.启动vmware虚拟机 (66)2.复制内核源代码 (66)3.编辑源文件 (66)4.编制按键测试程序 (69)实训13 综合项目——设计按键控制LED程序 (71) 实训目的: (71)实训条件: (71)实训内容: (71)实训报告: (71)实训14 附加项目——安装和使用skyeye (72)实训目的: (72)实训条件: (72)实训步骤: (72)1.安装SkyEye (72)2.运行示例程序 (72)3.配置文件说明 (75)实训1 在虚拟机上安装Linux系统实训目的:1、学习在windows环境下,虚拟机VMWare的安装和使用2、学习在虚拟机VMWare上安装Linux(发行版Fedora 9)实训条件:1、已经安装winxp系统的计算机2、VMWare7.0安装程序(VMware_Workstation.rar)3、Fedora 9安装光盘iso映像文件(Fedora-9-i386-DVD.iso)实训步骤:1. 安装和使用VMWare71.1.解压并安装VMware(1)解压缩VMware_Workstation.rar到D盘根目录下,不能解压到含有中文路径的目录下,否则安装过程中或使用中可能会出现问题。
嵌入式系统(STM32微控制器)实训指导书意法半导体公司的STM32微控制器具有32位字长的CPU,使用精简指令系统(RISC)。
精简指令系统的指令字长固定,译码方便,相对于复杂指令系统(CISC),精简指令系统的处理效率更高。
具有32位字长CPU的STM32系列微控制器的处理能力远高于8位和16位单片机,同时集成了与32位CPU相适应的强大外设(如双通道ADC、多功能定时器、7通道DMA、SPI等),能够完成过去一般单片机所无法达到控制功能。
现在,已经形成了以8位单片机为主流的低端产品和以32位微控制器为主流的高端产品两大市场。
对于自动化领域的从业人员,了解32位微控制器的结构、特点,掌握其使用方法,是很有必要的。
一、关于学习方法此前,我们已经学习过《C语言程序设计》、《微机原理》、《单片机原理及应用》等相关课程。
这些课程的学习是系统的、完整的、全面的,是有老师讲授的。
这种学习方法,适合在学校学习一些重要的基础理论课程。
在工作中,我们常常会遇到新的东西,需要以已有的知识作为基础,去解决问题、完成任务。
这就需要不同于前述的另一种学习方法。
这种方法是建立在自学基础上的,以解决实际问题为目的,允许通过局部的、模仿性的手段,来实现既定目标。
这种方法在工程实践中的应用是非常普遍的。
“白猫黑猫,能抓住老鼠就是好猫”。
能解决问题的方法就是好方法。
本次实训采取的方法是:将参考资料发给同学,同学自学其中需要的部分。
在指导教师引导下,体验各个控制项目、理解各组成部分,再以原控制软件为基础进行修改和移植,获得要达到的控制效果。
在本次实训中,我们使用的微控制器型号为STM32F103RB。
STM32F103RB是STM32微控制器系列中的一种,内部具有128KB程序存储器、20KB随机读写存储器、1个16位高级定时器、3个16位通用定时器、2个SPI、2个I2C、3个USART、1个USB、1个CAN、2个ADC。
芯片为64引脚LQFP封装,有51个I/O引脚。
嵌入式系统开发实训嵌入式系统是一种硬件和软件结合的微型计算机系统,用于嵌入到其他设备中运行。
嵌入式系统应用广泛,包括智能手机、路由器、摄像头、电子游戏机、汽车、医疗设备、航空航天等。
嵌入式系统开发实训涉及硬件和软件两个方面。
硬件部分主要包括电路设计和嵌入式系统板的组装。
软件部分则包括嵌入式系统的程序设计和调试。
硬件方面,首先需要设计PCB电路板。
在设计电路板前,需要明确所需的电路元件和电路理论知识。
根据需求和设计要求,选择合适的元器件并在电路板上进行布线。
在设计过程中,需要注意电路的稳定性、可靠性和电磁兼容性等。
设计完成后,进行PCB制板和组装测试。
软件方面,嵌入式系统开发需要使用专门的开发软件。
常见的嵌入式系统开发工具包括Keil、IAR、CodeWarrior、MPLAB等。
在开发软件中,可以使用高级编程语言如C语言、C++等进行编程。
通过编写程序,可以实现嵌入式系统的各种功能。
例如,对外设的读写、处理器控制、以及数据存储等。
在软件编写过程中,需要注意嵌入式系统的资源限制和实时性。
由于嵌入式系统具有有限的存储空间和处理能力,因此需要进行优化。
例如,简化算法、精简代码和压缩数据。
同时,实时性也是嵌入式系统开发中需要注意的问题。
针对实时需求,可以采用中断处理、多任务处理等方式来处理各种事件和任务。
综上所述,嵌入式系统开发实训需要在硬件和软件两个方面进行深入学习和培训。
在硬件方面,需要掌握电路设计、制板和组装测试等技术。
在软件方面,需要掌握嵌入式系统开发工具的使用和编程能力。
以上技能的掌握可以帮助实训者们在嵌入式系统行业中获得更好的职业发展机会。
嵌入式系统(STM32微控制器)实训指导书意法半导体公司的STM32微控制器具有32位字长的CPU,使用精简指令系统(RISC)。
精简指令系统的指令字长固定,译码方便,相对于复杂指令系统(CISC),精简指令系统的处理效率更高。
具有32位字长CPU的STM32系列微控制器的处理能力远高于8位和16位单片机,同时集成了与32位CPU相适应的强大外设(如双通道ADC、多功能定时器、7通道DMA、SPI等),能够完成过去一般单片机所无法达到控制功能。
现在,已经形成了以8位单片机为主流的低端产品和以32位微控制器为主流的高端产品两大市场。
对于自动化领域的从业人员,了解32位微控制器的结构、特点,掌握其使用方法,是很有必要的。
一、关于学习方法此前,我们已经学习过《C语言程序设计》、《微机原理》、《单片机原理及应用》等相关课程。
这些课程的学习是系统的、完整的、全面的,是有老师讲授的。
这种学习方法,适合在学校学习一些重要的基础理论课程。
在工作中,我们常常会遇到新的东西,需要以已有的知识作为基础,去解决问题、完成任务。
这就需要不同于前述的另一种学习方法。
这种方法是建立在自学基础上的,以解决实际问题为目的,允许通过局部的、模仿性的手段,来实现既定目标。
这种方法在工程实践中的应用是非常普遍的。
“白猫黑猫,能抓住老鼠就是好猫”。
能解决问题的方法就是好方法。
本次实训采取的方法是:将参考资料发给同学,同学自学其中需要的部分。
在指导教师引导下,体验各个控制项目、理解各组成部分,再以原控制软件为基础进行修改和移植,获得要达到的控制效果。
在本次实训中,我们使用的微控制器型号为STM32F103RB。
STM32F103RB是STM32微控制器系列中的一种,内部具有128KB程序存储器、20KB随机读写存储器、1个16位高级定时器、3个16位通用定时器、2个SPI、2个I2C、3个USART、1个USB、1个CAN、2个ADC。
芯片为64引脚LQFP封装,有51个I/O引脚。
《嵌入式系统开发实训》实训指导书V1.0.doc《嵌入式系统开发实训》指导书一、实训的目的和作用实训是培养和锻炼学生在学习完《嵌入式系统开发》后综合应用所学理论知识解决实际工程设计和应用问题的能力、进行工程实训的重要教学环节,它具有动手、动脑,理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
《嵌入式系统开发》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。
所以通过有针对性的实训,使学生学会系统地综合运用所学的技术理论知识,提高学生在嵌入式应用方面的开发与设计本领,系统的掌握嵌入式系统设计方法。
本实训是配合课堂教学的一个重要的实践教学环节,不仅要培养学生的实际动手能力,检验学生对本课程学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
培养学生事实求是和严肃认真的工作态度。
通过本实训使学生深入了解嵌入式系统开发的步骤与方法,掌握嵌入式系统的软硬件协同开发要点及使用方法。
掌握能够根据实际问题综合应用嵌入式软件、硬件的基本技能,编写相应的程序。
巩固和强化理论教学内容,综合课程教学中的实验环节,培养和锻炼学生的工程实践能力,具备嵌入式系统软硬件协同开发应用程序的能力。
二、实训主要内容与要求要求每个学生(或小组)都要自己动手独立设计完成一个典型的嵌入式应用小系统。
设计题目可以在给出的参考题目中选,也可以自己选设计题目,但难度不应小于参考题目,需经指导教师审查后方可确定是否采纳或修改设计题目。
一般以1~2人为一个小组,分工协作,可以进行充分的讨论和互助。
完成所选课题的硬件和软件的设计与调试。
独立解决设计和调试过程中遇到的基本问题。
总结整个实践过程,写出实训报告(包括方案选择比较、总体思路、理论分析、系统设计,软件流程图,加注释的源程序,调试过程中遇到的问题及解决办法,总结与体会,参考文献)。
实验五按键输入实验实验目的:利用板载的 4 个按键,来控制板载的两个LED 的亮灭和蜂鸣器的开关。
通过本实验,将了解到STM32F1 的IO 口作为输入口的使用方法。
内容要点:1.STM32 IO 口简介STM32F1 的IO 口在上一章已经有了比较详细的介绍,这里我们不再多说。
STM32F1 的IO口做输入使用的时候,是通过调用函数GPIO_ReadInputDataBit()来读取IO 口的状态的。
了解了这点,就可以开始我们的代码编写了。
这一个实验,我们将通过ALIENTEK 战舰STM32 开发板上载有的 4 个按钮(WK_UP、KEY0、KEY1 和KEY2),来控制板上的2 个LED(DS0 和DS1)和蜂鸣器,其中WK_UP 控制蜂鸣器,按一次叫,再按一次停;KEY2 控制DS0,按一次亮,再按一次灭;KEY1 控制DS1,效果同KEY2;KEY0 则同时控制DS0 和DS1,按一次,他们的状态就翻转一次。
有源蜂鸣器自带了震荡电路,一通电就会发声2.硬件设计本实验用到的硬件资源有:1)指示灯 DS0、 DS12) 4 个按键: KEY0、 KEY1、 KEY2、和 WK_UP。
DS0、 DS1 以及蜂鸣器和 STM32 的连接在上两章都已经分别介绍了,在战舰 STM32 开发板上的按键 KEY0 连接在 PE4上、KEY1 连接在 PE3上、KEY2 连接在 PE2上、WK_UP 连接在 PA0上。
如图所示:按键与STM32 连接原理图这里需要注意的是: KEY0、 KEY1 和 KEY2 是低电平有效的,而 WK_UP 是高电平有效的,并且外部都没有上下拉电阻,所以,需要在 STM32 内部设置上下拉。
3.软件设计key.h#ifndef __KEY_H#define __KEY_H#include "sys.h"#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)//读取按键0#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//读取按键1#define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)//读取按键2#define WK_UP GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)//读取按键3(WK_UP)#define KEY0_PRES 1 //KEY0 按下#define KEY1_PRES 2 //KEY1 按下#define KEY2_PRES 3 //KEY2 按下#define WKUP_PRES 4 //WK_UP 按下(即WK_UP/WK_UP)void KEY_Init(void); //IO 初始化u8 KEY_Scan(u8); //按键扫描函数#endif这段代码里面最关键就是 4 个宏定义:#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4) //读取按键0#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3) //读取按键1#define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2) //读取按键2#define WK_UP GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) //读取按键3(WK_UP)然后我们打开USER 文件夹Template. uvprojx,按新建按钮新建一个文件,然后保存在HARDWARE->BEEP 文件夹下面,保存为key.c。
嵌入式系统实验操作流程实验一:LED显示效果实验任务:选用GPIOA口的8位输出控制8个LED灯实现花样显示,使8个LED从左到右逐个点亮、再从左到右逐个熄灭,然后从右到左逐个点亮、再从右到左逐个熄灭反复循环(逐个点亮或熄灭时间相隔1秒钟),观察实验效果,调整点亮时间。
软件平台:Keil uVision4;硬件平台:Crotex-M3 ARM板操作步骤:1.填写实验记录本后,在电脑最后一个硬盘新建好实验文件目录,将内核文件CMISI 和库文件Fwlib拷入在以自己学号和名字命名的文件下面作为每个实验的共享。
新建一个以该实验名字命名的文件夹用来存放今天实验所做的文件。
在该文件下面新建Project、Obj、List和User四个文件。
2.打开Keil uVision4,新建MDK工程,保存工程到Project文件夹下。
选择STM32F103RCT为目标芯片。
在弹出的对话框中,加入启动代码提示中选择否,因为要在后面选用ST库的启动代码。
3.建好工程后调出工程文件管理器,即在Target 1上右击,在弹出的快捷菜单中选择Manage Components。
4.改Project Targets为STM32F103RCT6,在Groups添加四个工作组,分别为Startup、CMSIS、Lib、User。
5.添加启动代码,按路径CMSIS→Startup,然后添加startup_stm32f10x_hd.s6.在CMSIS中添加STM32F的内核相关文件,选中CMSIS添加按钮,在弹出的对话框中选择CMSIS文件夹,添加core_cm3.c和system_stm32f10x.c两个文件。
7.在Lib中添加库文件,选中添加按钮,在弹出的对话框中选择Fwlib→src,在其中依次添加文件stm32f10x_gpio.c、stm32f10x_rcc.c、stm32f10x_flash.c三个文件。
8.在User添加main.c及stm32f10x_it.c,添加路径为User文件夹。
嵌入式系统基础实验教程课程设计一、课程目标本课程旨在培养学生对嵌入式系统的认识和应用技能,包括嵌入式系统的基本概念、嵌入式系统中的常用硬件和软件、嵌入式系统的设计和开发方法、嵌入式系统的实验方法等。
二、课程大纲1. 嵌入式系统的基本概念1.1 嵌入式系统的定义和特点 1.2 嵌入式系统与通用计算机的区别 1.3 嵌入式系统的应用领域2. 嵌入式系统中的常用硬件和软件2.1 常用的处理器架构 2.2 常用的嵌入式操作系统 2.3 嵌入式系统中的外设3. 嵌入式系统的设计和开发方法3.1 嵌入式系统的设计原理 3.2 嵌入式系统的软件开发环境 3.3 嵌入式系统的硬件开发环境4. 嵌入式系统的实验方法4.1 嵌入式系统的仿真技术 4.2 嵌入式系统的调试和测试技术 4.3 嵌入式系统的实际应用案例三、教学方法本课程采用理论讲解与实践相结合的教学方法,通过课堂讲解、案例分析、实验实践等方式,让学生深入了解嵌入式系统的基本概念、常用硬件与软件、设计开发方法与实验方法。
同时,学生将通过小组作业完成一个嵌入式系统的设计与实验项目,深入了解嵌入式系统的实际应用。
四、实验项目1. 基于Arduino的智能小车设计本项目要求每个小组完成一个基于Arduino的智能小车设计,可以实现小车跟随线路行驶、避障、巡线、追光等基本功能。
在设计过程中,学生需要掌握Arduino的基本编程方法、电子元件的运用方法和系统调试方法,并通过小车的实际运作,深入了解嵌入式系统的应用。
2. 基于STM32的智能家居设计本项目要求每个小组完成一个基于STM32的智能家居设计,可以实现家庭环境的自动化控制、语音识别、智能监测等功能。
在设计过程中,学生需要掌握STM32的基本编程方法、外设驱动方法和系统调试方法,并通过实际操作,深入了解嵌入式系统的实际应用。
五、考核方式本课程采用综合评定的方式进行考核,包括小组作业、课堂表现和考试成绩等因素,以全面评估学生的综合能力和实际应用能力。
《嵌入式系统原理与设计》实验指导书学院:班级:指导教师:实验一ARMSYS平台开发环境及工具熟悉一、实验目的1、掌握ARMSYS平台开发环境2、学习ARM 的端口配置方法3、掌握ARM STD2.51 开发平台的使用方法二、实验设备硬件:THUS-1 型嵌入式(ARM)实验/开发系统;ARM 仿真器套件(包括仿真器、25 针并口延长线、14 针(或20 针)排线);串口线(2、3 平行);PC 机(Pentumn100)软件:PC 机操作系统Windows 98/2000/NT/XP ;ARM STD2.51 集成开发环境;仿真器驱动程序三、实验内容熟习ARM SDT2.51 平台的开发环境。
四、实验原理1、超级终端的建立①点击“开始→程序→附件→通讯→超级终端”,进入图1,选择COM1,点击确定;图1②如图2,输入名称,选择图标(第一个),点击确定;图2③对端口进行如下设置,并确定:图3注意:当关闭超级终端时提示是否保存,选择“是”,下次不需要再建,直接打开“ARM”即可。
2、JTAG的设置①将JTAG口与目标板连接好;②双击桌面图标,打开ARM7调试代理,将其设置为如图4所示,然后点击Test按钮。
如果JTAG口与目标板连接好,则在ARM7调试代理的左侧的空白处会出现“Detect ARM7TDMI”的字样。
图4注意:在运行SDT的调试器ADW调试程序的过程中,始终不要关闭ARM7调试代理。
3、ARM SDT的应用ARM SDT 是ARM 公司推出的一整套集成开发工具。
SDT 经过逐年维护和更新,目前最新版本为2.5.2。
新建一个项目的步骤如下:①运行ARMSDT2.5 集成开发环境(ARM Project Manager),点击开始菜单中的程序组的ARM SDT V2.51中的ARM Project Manager启动主程序或者点击桌面图标启动主程序。
出现主程序界面,如图5所示。
图5②若要新建一个项目,选择File|New 菜单,在对话框中选择PROJECT,新建一个工程文件(project1),如图6所示。
嵌入式系统设计实训指导书实训任务:复习、实践、巩固在《嵌入式系统设计》课程中学习的嵌入式系统开发技术的主要思想、方法和流程,深入学习8051系列器件的功能和应用,在仿真嵌入式环境下学习C语言的应用程序设计。
通过本次实训,使学生掌握嵌入式技术的主要设计流程,掌握主要内核接口的原理和使用方法,掌握简单嵌入式系统的设计原理和方法。
实训环境:1、系统设计环境:Proteus 系统开发环境2、软件设计环境:Keil开发环境实训项目一:跑马灯设计要求:设计以AT89C51单片机为核心的硬件系统,编写C程序驱动与P1 口连接的8个LED灯按照以下规则进行工作:1:所有LED每隔一秒进行一次亮灭转换,2:所有LED依次被点亮,维持时间1秒。
3:自己设计一种闪烁方案。
操作步骤:1、在Proteus环境中设计硬件系统1、首先点击File-》new design,建立一个新的设计;2、点击挑选原件按钮“P”,弹出原件选择界面(见下图),在关键字“Keywords”栏输入‘AT89C51’,选择单片机;2、点击确定后将单片机安放在设计界面合适的位置,然后继续在期间选择窗口选择LED以及地线(在Terminal Mode中选择Ground)并进行连线,生成完整电路原理图。
3、将设计文件保存在以自己名字命名(字母或数字)的文件夹里。
二、在Keil环境中进行软件设计1、打开keil软件,点击Project->New Project 建立新的项目,该项目保存在Proteus项目的keil子文件夹中,例如,Proteus设计保存在D:/exp1文件夹下,则Keil项目保存在D:/exp1/keil文件夹下,两个项目采用同样的名称,均为exp1。
2、选择目标器件:在CPU选择界面选择“ATMEL-AT89C51”;点击两次确定后完成项目新建;3、新建文件,编写C代码;点击’File->New’生成代码设计界面,编写完代码后将其保存在’keil’文件夹,4、将代码文件加入工程:在工程管理窗口点击‘source group 1 ’处点击右键,选择‘Add file to……’在该工程中新建代码文件,注意文件名要与工程名相同,且后缀为’c’,保存在’keil’子文件夹;5、编译代码;点击’Project->Build Target’编译工程;三、联调设置1、在Keil环境工程管理窗口中右击’Target 1’->Options for target1,;2、选择‘Output’对话框,选择‘Create HEX File ’3、选择‘Debug对话框,选中‘Use Remote……’,在下拉菜单中选择‘Proteus VSM Simulator‘4、点击确定,再次编译工程。
嵌入式系统实验指导王艳春李英一张劲松实验一嵌入式微处理器系统的开发环境一、实验环境PC机一台软件: ADS 1.2集成开发环境一套二、实验目的1.了解嵌入式系统及其特点;2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序三、实验内容1.嵌入式系统的开发环境、基本配置2.使用汇编指令完成简单的加法实验四、实验步骤(1)在D:\新建一个目录,目录名为experiment。
(2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。
启动ADS 1.2 如图1-1所示:图1-1启动ADS1.2(3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择“New…”菜单。
这样就会打开一个如图1-2 所示的对话框。
选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。
图1-2 新建文件在这个对话框中为用户提供了7 种可选择的工程类型:1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库;3)Empty Project:用于创建一个不包含任何库或源文件的工程;4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件;5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件;6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。
嵌入式系统实训教程马兴录2013-03-18目录第1章单片机实验教程 (1)1.1 单片机开发环境的搭建 (1)1.1.1 单片机开发环境介绍 (1)1.1.2 单片机开发环境的搭建 (1)1.1.3 联机调试 (3)1.1.4 练习 (4)1.2 单片机联机调试功能试验 (5)1.2.1 观察各类存储单元 (5)1.3 单片机定时器实验 (7)1.3.1 实验目的 (7)1.3.2 设计要求 (7)1.3.3 实验原理 (7)1.3.4 实验步骤 (7)1.3.5 常见问题 (8)1.3.6 练习 (8)1.4 单片机中断系统实验 (9)1.4.1 实验目的 (9)1.4.2 设计要求 (9)1.4.3 实验原理 (9)1.4.4 实验步骤 (10)1.4.5 练习 (13)1.5 简单交通灯控制系统的设计 (14)1.5.1 实验目的 (14)1.5.2 实验要求 (14)1.5.3 程序设计 (14)1.5.4 练习 (15)1.6 单片机串行通讯接口实验 (16)1.6.1 实验目的 (16)1.6.2 实验要求 (16)1.6.3 实验原理 (16)1.6.4 通讯协议 (17)1.6.4 实验步骤 (18)1.7 单片机课程设计 (19)1.7.1 课程设计要求 (19)1.7.2 提交 (19)第2章ARM程序设计实验 (20)2.1 ARM混合编程实验 (20)2.1.1 实验目的 (20)2.1.2 实验要求 (20)2.1.3 实验原理 (20)2.1.4 实验内容 (22)第1章单片机实验教程1.1 单片机开发环境的搭建本节目标:搭建Keil C51单片机编程开发环境,以及Proteus仿真环境,实现两者的联机调试。
1.1.1 单片机开发环境介绍目前,51单片机的开发大都使用C51编程语言,基本不再使用汇编语言。
这大大简化了单片机应用程序的开发。
当前使用最多的开发环境是Keil C51。
目前最高版本为uVision 4,除支持51系列单片机外,还可支持大多数的ARM芯片。
Keil开发环境本身带有模拟器,可以模拟调试单片机应用程序。
也可以与Proteusl联合实现软硬件联调,达到更好的仿真效果。
Protues是硬件线路板的设计开发软件,用来设计硬件线路连接原理图及印刷电路板图等,是常用的硬件线路版设计软件。
同时,它还具有较强的硬件仿真能力,可以形象直观地仿真硬件的运行情况,特别是它可以仿真多种常见的处理器,允许给处理器提供相应的程序并仿真运行。
因此目前最为流行的单片机学习及开发环境是Keil C51 + Proteus。
1.1.2 单片机开发环境的搭建本文以Proteus 7.5和Keil uVision 2为例来搭建51单片机的开发环境。
(1)安装Keil uVision2。
(安装完后,要将补丁文件复制到\keil\C51\bin文件夹内)(2)安装Ptoteus 7.5。
(安装crack时,要关闭杀毒软件;Keil驱动要等安装完Keil 之后再安装)上述两软件均安装在默认文件夹内。
Proteus安装在C:\Program Files\Labcenter Electronics文件夹内,Keil安装在c:\keil文件夹内。
如果只使用keil编写C51应用程序,编译生成可执行文件(后缀为.hex)供Proteus 使用,则两个软件无需配置,各自独立使用即可,以下步骤则无需进行。
如想实现Keil与Proteus的联机调试功能,则需要进行如下配置:(1)运行Proteus软件包内的"\Keil驱动\vdmagdi.exe" ,将驱动安装到keil的文件夹内。
安装时,选择“AGDI Driver for uVision2”,然后选择安装目录为c:\keil即可。
(2)运行"ISIS 7 Professional"菜单"Debug(调试)",选中"Use Remote Debug Monitor(使用远程调试监控)",该选项前应该有“√”。
(3)创建或打开Keil C的工程后,选择菜单"Project"->"Options for Target 'Target 1' ",打开"Options for Target 'Target 1' "窗口后,选择"Debug"选项卡,选择右边的Use:"Proteus VSM Simulators",确定,如下图所示:图1 Keil工程的调试选项(4)确保keil生成的可执行文件与proteus项目中单片机所执行的文件为同一个文件。
Keil的输出配置:如输出文件名为ledc.hex,所在文件夹选择好,Create HEX File选项前打“√”。
图2 Keil 工程的输出选项然后在Proteus的项目中,双击单片机器件,弹出如下窗口:图3 Proteus项目内的单片机程序文件在该窗口内选择Program File为keil生成输出的ledc.hex。
1.1.3 联机调试寻找可用的Proteus简单例程。
如51单片机的流水灯例程。
内部包括Proteus项目(后缀为.DSN)以及对应的C51程序项目文件(后缀为.uv2)。
用Proteus打开.DSN的项目。
确保该项目中的单片机程序为ledc.hex,菜单选项"Use Remote Debug Monitor"前应该有“√”。
进入Keil环境,打开.uv2的项目文件。
确保编译输出为ledc.hex;确保Debug选项如图1所示。
(1)编译C51工程。
选择菜单选项Project→Build target(2)进入调试模式。
选择菜单选项Debug→Start/Stop Debug Session为观察方便,可将两个软件窗口并排在桌面上,如下图所示:(3)在Keil内单步执行C51程序(按F10),可以看到Proteus内的指示灯有相应的亮灭变化。
(选择菜单View→Disassembly Windows可以只保留C语句)1.1.4 练习(1)针对流水灯硬件设计实例,自行创建相应的C51应用项目,实现流水灯从中间向两边流动的效果。
(2)在Proteus内,自行添加红、黄、绿不同颜色的指示灯,然后编写C51程序,让这些灯闪烁起来。
1.2 单片机联机调试功能试验本实验要学会利用Keil开发环境,观察单片机内部的各类存储器,掌握程序存储器、数据存储器、SFR各自的特点及使用方法。
熟练掌握联机调试单片机程序的方法。
1.2.1 观察各类存储单元(1)CPU内部寄存器的观察进入程序调试运行模式,Keil开发环境界面如图所示:左侧显示CPU内部的各寄存器名称及其内容,随着程序的运行,内容发生变化的寄存器会议高亮颜色标注出来。
(2)C语言变量内容的观察:打开“View→Watch & Call Stack Window”。
在C语言变量名字上按鼠标右键,选择“Add XXX to Watch Window”,这样,该变量的内容就会显示在Watch Windows中,并随着程序的执行而变化。
如图所示:按F2可以修改变量名或删除该变量。
(3)断点的设置:在C语句的最左端双击(或选择菜单项Debug→Insert/Remove Breakpoint)可以添加或删除断点。
这样可以使用Debug Go(或F5键)全速运行至断点位置。
1.3 单片机定时器实验1.3.1 实验目的本实验要学会单片机定时器的设定及使用。
1.3.2 设计要求设计一个倒计时秒表。
要求利用两个7端数码管组成一个2位数的倒计时秒表,根据给定初始值,倒计数至0。
1.3.3 实验原理(1)单片机定时器8051单片机内部集成了2个16位的计数器。
可以根据需要将其作为定时器使用。
这时,定时器的计数频率为系统CLK/12。
如果CPU采用12MHz的晶振,则定时信号源的频率固定为12MHz/12=1MHz。
如果定时周期设定为50ms,则需要计数0.05S/1MHz=50000个脉冲。
因为单片机定时器为加1计数器,所以,计数器初始值应设定为65536-50000=15536(即16进制的3CB0)。
另外,还需要设置定时器工作模式寄存器TMOD。
如果使用定时器0,16位定时器方式,则TMOD=0x01。
(2)数码管显示原理1.3.4 实验步骤(1)学习实验例程:数码管显示用Proteus软件打开其原理图;用Keil软件打开配套的C语言工程项目。
编译运行程序,观察数码管的显示情况,了解数码管的显示原理。
重点学习C语言中数码管编码表的作用及用法。
(2)修改原理图打开Proteus软件,修改数码管例程,添加一个7段数码管,接至P1端口。
注意数码管要选择共阳极类型,公共端要连接VCC。
(3)修改程序打开Keil软件,打开数码管的配套工程项目。
定义变量sec,用于存放秒数。
Char sec=99;显示两位数的方法:While(1){P2=tab[sec/10]; //显示十位数P1=tab[sec%10]; //显示个位数If(--sec<0)sec=99;//重新计数Delay(0xff);}(4)利用定时器实现准确延时修改delay()函数如下:V oid delay(int nsec){int i;TMOD=0x01;//16 bits,internal pulse countingfor(i=0;i<20*nsec;i++){TH0=0x3c;TL0=0xb0; //Initial value=65535-50000=15535,0.05s in 12MHzTF0=0;TR0=1; //start Timer 0while(TF0==0); //Wait for end flag TF0,delay for 0.5sTR0=0; //stop timer 0}}1.3.5 常见问题(1)添加的数码管不亮:原因1:数码管的公共端没有接电源;或者电源与公共段之间应该单独加Line;原因2:程序的问题:注意keil项目的输出文件就是proteus中单片机所使用的文件;另外,程序修改后,要重新编译。
1.3.6 练习再增加一个两位倒计时秒表,并编写配套程序,实现两个秒表各自倒计时(时间初值不同)。
1.4 单片机中断系统实验1.4.1 实验目的(1)本实验要学会单片机中断系统的工作原理,掌握定时中断程序的编写方法。
(2)掌握数码管动态显示的方法及编程。
1.4.2 设计要求(1)将1.3实验中的倒计时秒表程序,用定时中断方式实现。