(3.2)--B08040720 - 嵌入式系统原理实验指导书V5.pdf
《(3.2)--B08040720 - 嵌入式系统原理实验指导书V5.pdf》由会员分享,可在线阅读,更多相关《(3.2)--B08040720 - 嵌入式系统原理实验指导书V5.pdf(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌嵌入入式式系系统统原原理理实实训训教教程程V5.02目录目录第 1 章 单片机实验教程.11.1 单片机开发环境的搭建.11.1.1 单片机开发环境介绍.11.1.2 单片机开发环境的搭建.11.1.3 联机调试.31.1.4 练习.41.2 单片机联机调试功能试验.81.2.1 观察各类存储单元.81.3 数码管的显示.91.3.1 实验目的.91.3.2 设计要求.91.3.3 实验原理.91.3.4 实验步骤.101.4 单片机定时器实验.121.4.1 实验目的.121.4.2 设计要求.121.4.3 实验原理.121.4.4 实验步骤.121.4.5 常见问题.141.4.6 练
2、习.141.5 单片机串行通讯接口实验.151.5.1 实验目的.151.5.2 实验要求.151.5.3 实验原理.151.5.4 实验步骤.161.6 单片机中断系统实验.191.6.1 实验目的.191.6.2 设计要求.191.6.3 实验原理.191.6.4 实验步骤.201.6.5 练习.211.7 中断方式下的单片机串行通讯接口实验.221.7.1 实验目的.221.7.2 实验要求.221.7.3 实验原理.221.7.4 通讯协议.231.7.4 实验步骤.241.8 简单交通灯控制系统的设计.251.8.1 实验目的.251.8.2 实验要求.251.8.3 程序设计.25
3、1.8.4 练习.2631.9 单片机课程设计.271.9.1 课程设计要求.271.9.2 设计题目.271.9.3 提交.27自动进样器控制系统设计.281.1 设计要求.281.2 需求分析.281.3 总体设计.281.4 详细设计.281.4.1 主转盘电机的转动控制.281.4.2 主转盘的定位.29第 2 章 ARM 程序设计实验.302.1 ARM 混合编程实验.302.1.1 实验目的.302.1.2 实验要求.302.1.3 实验原理.302.1.4 实验内容.322.2 ARM 的 GPIO 接口实验.332.2.1 实验目的.332.2.2 实验要求.332.2.3 实
4、验原理.332.2.4 实验步骤.352.2.5 练习.372.3 ARM 的 AD 接口实验.382.3.1 实验目的.382.3.2 实验要求.382.3.3 实验原理.382.3.4 实验步骤.422.4 ARM 综合应用设计.442.4.1 设计要求.442.4.2 设计题目.442.4.3 提交要求.45第 3 章 嵌入式操作系统 uC/OS-II 实验.463.1 基于 uC/OS-II 的多任务编程实验.463.1.1 实验目的.463.1.2 实验要求.463.1.3 实验原理.463.1.4 实验步骤.473.1.5 思考题.493.1.6 练习.493.2 基于 uC/OS
5、-II 的多任务编程实验.503.2.1 实验目的.503.2.2 实验要求.503.2.3 实验原理.5043.2.4 实验步骤.513.2.5 思考题.53第 4 章 嵌入式 Linux 实验.544.1 嵌入式 Linux 交叉开发环境的搭建.544.1.1 实验目的.544.1.2 实验要求.544.1.3 实验设备.544.1.4 实验步骤.544.1.5 课后练习.564.2.1 实验目的.584.2.2 实验要求.584.2.3 实验步骤.584.3 嵌入式 Linux 下应用程序设计(1).594.3.1 实验目的.594.3.2 实验要求.594.3.3 实验原理.594.3
6、.4 实验步骤.594.3.5 思考题.60参考程序 serial.c.604.4 嵌入式 Linux 下网络应用程序设计(1).634.4.1 实验目的.634.4.2 实验要求.634.4.3 实验原理.634.4.4 实验步骤.654.4.4.1 基本程序的编译运行:.654.4.4.2 修改程序,实现指示灯远程控制.654.4.5 思考题.664.5 嵌入式 Linux 下网络应用程序设计(2).694.5.1 实验目的.694.5.2 实验要求.694.5.3 实验原理.694.5.4 实验步骤.71第 5 章 基于嵌入式 Linux 的远程监控系统的设计.74第 6 章 嵌入式 L
7、inux 实验(Smart210).766.1 嵌入式 Linux 交叉开发环境的搭建.764.1.1 实验目的.764.1.2 实验要求.764.1.3 实验设备.764.1.4 实验步骤.774.1.5 课后练习.786.2.1 实验目的.796.2.2 实验要求.796.2.3 实验步骤.791第第 1 章章 单片机实验教程单片机实验教程1.1 单片机开发环境的搭建单片机开发环境的搭建本节目标:搭建 Keil C51 单片机软件开发环境,安装 STC 下载工具及 USB 串口驱动,学会编写简单的单片机 C 语言程序,能编译并将该程序下载到单片机中运行。感兴趣的同学还可以安装硬件线路板开发
8、仿真软件 Proteus,在不具备开发板的情况下1.1.1 单片机开发环境介绍单片机开发环境介绍目前,51 单片机的开发大都使用 C51 编程语言,基本不再使用汇编语言。这大大简化了单片机应用程序的开发。当前使用最多的开发环境是 Keil C51。目前最高版本为 uVision 5,除支持 51 系列单片机外,还可支持大多数的 ARM 芯片。Keil 开发环境本身带有模拟器,可以模拟调试单片机应用程序。也可以与 Proteus 联合实现软硬件联调,达到更好的仿真效果。Protues 是硬件线路板的设计开发软件,用来设计硬件线路连接原理图及印刷电路板图等,是常用的硬件线路版设计软件。同时,它还具
9、有较强的硬件仿真能力,可以形象直观地仿真硬件的运行情况,特别是它可以仿真多种常见的处理器,允许给处理器提供相应的程序并仿真运行。因此目前最为流行的单片机学习及开发环境是 Keil C51+Proteus。1.1.2 单片机开发环境的搭建单片机开发环境的搭建本文以 Proteus 7.5 和 Keil uVision 2 为例来搭建 51 单片机的开发环境。(1)安装 Keil uVision2。(安装完后,要将补丁文件复制到keilC51bin 文件夹内)(2)安装 Ptoteus 7.5。(安装 crack 时,要关闭杀毒软件;Keil 驱动要等安装完 Keil之后再安装)上述两软件均安装
10、在默认文件夹内。Proteus 安装在 C:Program FilesLabcenterElectronics 文件夹内,Keil 安装在 c:keil 文件夹内。如果只使用如果只使用 keil 编写编写 C51 应用程序,编译生成可执行文件(后缀为应用程序,编译生成可执行文件(后缀为.hex)供)供 Proteus使用,则两个软件无需配置,各自独立使用即可,以下步骤则无需进行。使用,则两个软件无需配置,各自独立使用即可,以下步骤则无需进行。如想实现 Keil 与 Proteus 的联机调试功能,则需要进行如下配置:(1)运行 Proteus 软件包内的 Keil 驱动vdmagdi.exe,
11、将驱动安装到 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 VSM2Simulators,确定,如下图所
12、示:图 1 Keil 工程的调试选项(4)确保 keil 生成的可执行文件与 proteus 项目中单片机所执行的文件为同一个文件。Keil 的输出配置:如输出文件名为 ledc.hex,所在文件夹选择好,Create HEXFile 选项前打“”。图 2 Keil 工程的输出选项3然后在 Proteus 的项目中,双击单片机器件,弹出如下窗口:图 3 Proteus 项目内的单片机程序文件在该窗口内选择 Program File 为 keil 生成输出的 ledc.hex。1.1.3 联机调试联机调试寻找可用的 Proteus 简单例程。如 51 单片机的流水灯例程。内部包括 Proteus
13、 项目(后缀为.DSN)以及对应的 C51 程序项目文件(后缀为.uv2)。用 Proteus 打开.DSN 的项目。确保该项目中的单片机程序为 ledc.hex,菜单选项UseRemote Debug Monitor前应该有“”。进入 Keil 环境,打开.uv2 的项目文件。确保编译输出为 ledc.hex;确保 Debug 选项如图1 所示。(1)编译 C51 工程。选择菜单选项 ProjectBuild target(2)进入调试模式。选择菜单选项 DebugStart/Stop Debug Session为观察方便,可将两个软件窗口并排在桌面上,如下图所示:(3)在 Keil 内单步
14、执行 C51 程序(按 F10),可以看到 Proteus 内的指示灯有相应的亮灭变化。(选择菜单 ViewDisassembly Windows 可以只保留 C 语句)41.1.4 练习练习(1)针对流水灯硬件设计实例,自行创建相应的 C51 应用项目,实现流水灯从中间向两边流动的效果。(2)在 Proteus 内,自行添加红、黄、绿不同颜色的指示灯,然后编写 C51 程序,让这些灯闪烁起来。1.1.5 使用单片机开发板使用单片机开发板(1)安装 keil官方网站:http:/下载 keil C51 product。注意:下载的是评估版,对 C51 来说,编译后的程序大小限制在 2KByte
15、s 之内。(2)安装下载工具 stc-isp官方网站:http:/下载“STC-ISP 下载编程烧录软件”(3)将 STC 系列单片机型号添加到 keil 中(4)创建新的工程项目选择单片机种类5(5)编写单片机程序首先,要包含头文件:#include 然后,保存该文件(如名称为 t1.c)将该程序文件添加到项目中:在 SourceGroup1 上点击右键,选择“Add files to.”,将 t1.c 加入项目。(6)编译生成可下载程序6选中”Create HEX File”选项。然后编译生成 HEX 可下载文件 m1.hex(6)下载程序到单片机打开 STC-ISP 程序,选择单片机型号
16、,所用串口(注意有 CH340 信息的串口),打开程序文件,然后按“下载编程”按钮。将单片机开发板的电源开关重新打开,就可以下看到程序下载到单片机上并立即运行了。78(4)1.2 单片机联机调试功能试验本实验要学会利用 Keil 开发环境,观察单片机内部的各类存储器,掌握程序存储器、数据存储器、SFR 各自的特点及使用方法。熟练掌握联机调试单片机程序的方法。1.2.1 观察各类存储单元观察各类存储单元(1)CPU 内部寄存器的观察进入程序调试运行模式,Keil 开发环境界面如图所示:左侧显示 CPU 内部的各寄存器名称及其内容,随着程序的运行,内容发生变化的寄存器会议高亮颜色标注出来。(2)C
17、 语言变量内容的观察:打开“ViewWatch&Call Stack Window”。在 C 语言变量名字上按鼠标右键,选择“Add XXX to Watch Window”,这样,该变量的内容就会显示在 Watch Windows 中,并随着程序的执行而变化。如图所示:按 F2 可以修改变量名或删除该变量。(3)断点的设置:在 C 语句的最左端双击(或选择菜单项 DebugInsert/Remove Breakpoint)可以添加或删除断点。这样可以使用 DebugGo(或 F5 键)全速运行至断点位置。91.3 数码管的显示数码管的显示1.3.1 实验目的实验目的本实验要学习数码管的显示原
18、理,掌握利用单片机的 IO 口控制数码管显示,学会数码管静态显示与动态显示编程。1.3.2 设计要求设计要求(1)利用实验板上的单个数码管轮流显示 0-9;(2)利用动态显示方法,使用两位数码管轮流显示 0-991.3.3 实验原理实验原理(1)数码管的连接电路实验板上共有 8 个共阴极数码管。每个数码管的 8 个段(7 段数码管+小数点)分别接在锁存器 74HC573 的 8 个输出引脚上。而 74HC573 的输出是由 P00-P07 决定的。当 573 芯片的 LE 引脚接 VCC 时,573 作为驱动芯片使用。当对应 P0 的引脚为高电平时,相应的 LED段就亮。8 个数码管的片选信号
19、由 138 译码器提供。译码器的输入为 P22_4,用于决定 8 个数码管中哪一个亮。8 个数码管每次只有 1 个亮。(2)静态显示只使用 1 个数码管,让它显示内容。针对电路图,如果让 LED1-LED8 中的 LED1 为低电平,LED2-8 为高电平,则只有最右侧的数码管可以亮。数码管上显示的内容取决于 P00_7引脚上的信号电平。如果 P0=0 xff;即 LCD0_7 引脚全为高电平,则数码管的 8 段均亮。如果要显示数字 2,则需要数码管的 a,b,g,e,d 段亮:10这样,需要 P00=0 x5b;找出每个数字显示的编码,放到数组中,便于使用:unsigned char cod
20、e DIG_CODE10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,x6d,0 x7d,0 x07,0 x7f,0 x6f;其中,code 关键词的作用是将数组元素放到程序存储器存储,便于节省数据存储器。这样该数组只用于读操作,不能修改其内容。(3)动态显示采用 138 译码器,保证了每次只有 1 个数码管亮。要在不同的数码管上同时显示数字,需要利用视觉暂留的原理,让单片机快速第轮流在不同数码管上显示数字。1.3.4 实验步骤实验步骤(1)编写 C51 程序,只让最右侧数码管的 a 段亮。分析:138 译码器的输出保证 LED1 引脚为低电平,其它为高电平。这样,P22、P2
21、3、P24 引脚需要都是低电平。P2=0;a 段是由 P00 引脚控制的。P0=1;(2)在数码管上显示数字 2需要 P0=0 x5b;(3)在 8 个数码管上轮流显示 0-7参考程序:#include unsigned char code DIG_CODE10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/显示 09 的值void delay()int i,j;for(i=0;i100;i+)for(j=0;j100;j+);main()char i;while(1)for(i=0;i8;i+)P2=i2;/为什么?
22、P0=DIG_CODEi;delay();dpgfedcba0101101111(4)要在 8 个数码管上稳定显示 0-7,只需要调整延时时间,达到视觉暂留的效果即可。修改延时函数 delay()。调整延时时间,观察数码管上不同的显示效果。数码管的亮度及对比度与延时时间有关吗?最简开发板的数码管接法:采用共阳极数码管,P0 口控制数码管的段位,P2 口的 P20-3 经过三极管功率放大后,接公共的阳极控制端。P23 控制最右侧的数码管,P20 控制最左侧的数码管。121.4 单片机定时器实验单片机定时器实验1.4.1 实验目的实验目的本实验要学会单片机定时器的设定及使用。1.4.2 设计要求设
23、计要求设计一个倒计时秒表。要求利用两个 7 端数码管组成一个 2 位数的倒计时秒表,根据给定初始值,倒计数至 0。1.4.3 实验原理实验原理(1)单片机定时器8051 单片机内部集成了 2 个 16 位的计数器。可以根据需要将其作为定时器使用。这时,定时器的计数频率为系统 CLK/12。如果 CPU 采用 12MHz 的晶振,则定时信号源的频率固定为 12MHz/12=1MHz。如果定时周期设定为 50ms,则需要计数 0.05S/1MHz=50000 个脉冲。因为单片机定时器为加 1 计数器,所以,计数器初始值应设定为 65536-50000=15536(即 16进制的 3CB0)。另外,
24、还需要设置定时器工作模式寄存器 TMOD。如果使用定时器 0,16 位定时器方式,则 TMOD=0 x01。(2)数码管显示原理实验 1.4 实现了数码管的动态显示,可以在两个数码管上显示不同的数字。1.4.4 实验步骤实验步骤(1)创建 Keil C 项目,实现两位数码管的动态显示。char d=60;/要显示的数字while(1)13/显示个位数P2=0;P0=DIG_CODEd%10;delay();/显示十位数P2=12;P0=DIG_CODEd/10;delay();(2)将这段程序改为函数:void disp_digit(char d)/显示个位数P2=02;P0=DIG_CODE
25、d%10;delay();/显示个位数P2=1=0)for(i=0;i50;i+)disp_digit(sec);/该函数内部调用 delay()两次,用时 20mssec-;1.4.5 常见问题常见问题(1)添加的数码管不亮:原因 1:数码管的公共端没有接电源;或者电源与公共段之间应该单独加 Line;原因 2:程序的问题:注意 keil 项目的输出文件就是 proteus 中单片机所使用的文件;另外,程序修改后,要重新编译。1.4.6 练习练习再增加一个两位倒计时秒表,并编写配套程序,实现两个秒表各自倒计时(时间初值不同)。151.5 单片机串行通讯接口实验单片机串行通讯接口实验1.5.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 3.2-B08040720 嵌入式系统原理实验指导书V5 3.2 B08040720 嵌入式 系统 原理 实验 指导书 V5
限制150内