嵌入式微控制器技术实验任务书(附程序和仿真图)
嵌入式系统实验指导指导书完整版
嵌入式系统实验指导王艳春李英一张劲松实验一嵌入式微处理器系统的开发环境一、实验环境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 格式的目标文件库。
嵌入式技术实验及设计
实验三 uC/OS-II进程的同步和通信
n 二 、实验内容及要求
n 编程实现哲学家就餐问题。问题的描述: 有5个哲学家,其生活方式 是交替的进行思考和吃进餐。他们共用一张圆桌,分别坐在周围的5 张椅子上,在圆桌上有五个碗和五支筷子,平时一个哲学家进行思考, 饥饿时便试图取其左、右靠近他的筷子,只有在他拿到两支筷子时才 能进餐。进餐毕,放下筷子继续思考
n 要求:
n (1)键盘上的1-5数字键分别代表5个哲学家申请吃饭
n (2)要求大家列出所有可能出现的状况,而且屏幕上必须将最新的状态
显示出来,如:
n
(1)哲学家X正在进餐 (2)哲学家X申请进餐未果
n
(3)哲学家X正在思考……..
n
注:申请进餐未果维持显示5s后改为显示正在思考
n (3)每位哲学家的进餐时间为1分钟,进餐次数不做限定
n 要求: n (1)资源必须被互斥使用 n (2)程序的运行结果必须跟优先级反转的理论分析结果一致 n (3)出现反转效果后,修改程序,避免出现优先级反转,并
给出理论和实验结果的对比分析。
实验三 uC/OS-II进程的同步和通信
n 一、实验目的 n 掌握uC/OS-II的进程的同步和通信的机制和方法。
实验一 任务的创建与多任务设计
一、实验目的 1、理解任务管理的基本原理 2、掌握uC/OS-II中多任务设计和调度的基本方法
实验一 任务的创建与多任务设计
二 、实验内容及要求 1、编写一个有3个任务的应用程序,每个任务均会在显示器上显 示一个字符,并让3个任务具有不同的等待时间,观察应用程序运 行中任务被调度的情况。 2、编写一个有2个任务的应用程序,每个任务均会在显示器上显 示一个字符,当调度器进行5次调度之后,这些显示的字符会在显 示器上构成一个字符串“Hello World”。 3、设计Task1, Task2两个任务,Task1不断地挂起自己,再被任 务Task2解挂,解挂时,输出Task1被Task2解挂的信息,两个任务 不断地切换执行。观察两个任务的调度情况,并给出解释和说明。
《微机原理与嵌入式系统基础--实验指导书》
微机原理与嵌入式系统基础实验指导嵌入式系统教研室2010年4月7日第1章ADS 1.2 IDE工具简介 (3)1.1 ADS 1.2简介 (3)1.2 ADS 1.2集成开发环境练习 (4)第2章ARM指令系统及运算基础实验 (10)2.1 二进制数加减运算 (10)2.2 带符号数的加减法运算 (13)2.3 简单分支程序设计 (15)2.4 数据块转储实验(循环程序设计) (16)2.5 数值1到数值100的累加程序设计 (17)2.6 搜寻最大数、最小数程序设计 (19)2.7 数据排序实验(申辉补充本部分内容) (21)2.8 子程序实验(申辉补充本部分内容) (21)第3章ARM(LPC2000系列)体系结构实验 (22)3.1 EasyARM2131实验板简介 (22)3.2 JTAG仿真器的启动与设置 (22)3.3 基于嵌入式系统的C语言程序实验 (24)3.4 GPIO输出控制实验1(单点) (25)3.5 GPIO输出控制实验2(多点) (27)3.6 GPIO输入实验 (29)3.7 外中断实验 (30)3.8 定时器基本功能实验1(匹配反转输出功能应用)(马博补充本部分内容) (33)3.9 定时器基本功能实验2(定时器中断) (34)3.10 UART串行数据通信实验1(查询方式) (36)3.11 UART 串行数据通信实验2(中断方式) (40)第1章ADS 1.2 IDE工具简介1.1 ADS 1.2简介ARM ADS全称为ARM Developer Suite,是由ARM公司提供的专门用于ARM 处理器应用开发和调试的综合性工具软件。
目前使用的ADS1.2版本是一款功能强大的开发工具和易于使用的集成开发环境(Integrated Development Environment,IDE)。
它可以安装在Windows NT4,Windows 2000,Windows 98,Windows 95,Windows XP和Windows Me等操作系统。
嵌入式系统的开发与应用实习任务书
嵌入式系统的开发与应用实习任务书一、实习目的:通过一个参数个数不固定函数的设计和调试,练习嵌入式系统C程序的设计方法。
二、实习内容编写一个简化的仿scanf函数,名为myscanf函数,实现从键盘中输入十进制整数和小数型实数的功能。
该函数格式如下int myscanf(char *formatstr,...)在VC平台上开发。
三、实习具体要求1.第一个参数是格式字符串,格式只识别%d和%f这两种格式,分别表示十进制int型数据(32位有符号整数)和小数格式的double型数据。
在格式字符串中,如果发现%后有其它字符(非d和非f),认为有错,停止处理,并打印出错信息,返回-1。
2.当然输入的整数数据超出范围时,按出错处理,停止处理,并打印出错信息,返回-1。
由于小数格式double类型的整数部分最多可以到达三百多位,因此我们不处理超出数据范围的错误。
3.在格式的其他字符匹配中,只要有不匹配的字符,按出错处理,停止处理,并打印出错信息,返回-1。
4.该函数只处理一行数据,不处理跨行数据。
5.当处理正确完成后,返回值就是输入的整数和实数的总个数。
6.可以使用C语言本身所带的gets函数。
五、实习报告要求1.所提交内容包括程序设计书和程序清单两部分2.所做程序必须保证程序的健壮性。
在完成基本功能的同时,能处理各种错误处理以及意外事件。
3.提交的程序设计书应该包含各个过程的功能、参数说明。
并用流程图表示该过程的算法。
4.所提交的程序必须结构清晰,层次分明。
程序应该有比较好的可读性。
程序清单中至少30%是注解。
// test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>#include <string.h>#include <stdarg.h>#define MAX_LEN 200#define MAX_POSINTSTR "2147483647" //最大整数字符串#define MAX_NEGINTSTR "2147483648" //最小整数绝对值字符串/*判断一个整数字符串是否越界如果越界则返回1-,否则返回0intstr:用于判断的整数字符串*/int defineoverflow(char *intstr){int n1,i,n2;char standstr[15];if(intstr[0]=='-'){//如果是负数,则用最小整数绝对值进行判断strcpy(standstr, MAX_NEGINTSTR);intstr++; //越过负号}else{//如果是负数,则用最小整数绝对值进行判断strcpy(standstr, MAX_POSINTSTR);if(intstr[0]=='+')intstr++; //越过正符号}n1 = strlen(intstr);n2 = strlen(standstr);//整数字符串位数过长,则定越界,返回-1if(n1 > n2)return -1;//整数字符串位数较短,则肯定不越界,返回0if(n1 < n2)return 0;//如果位数一样,从最高位开始比较for(i = 0; i < n1;i++){if(intstr[i] < standstr[i])return 0;if(intstr[i] > standstr[i])return -1;}//如果刚好是极限值return 0;}/*从整型字符串得到整数值intstr:整形字符串返回值是所得到的整数*/int getintvalue(char *intstr){int sgn; //符号变量,表示该整数的正负int v = 0;char *p = intstr;if(intstr[0]=='-'){sgn = -1;p++;}else{sgn = 1;if(intstr[0]=='+')p++;}while(*p!='\0'){v = v*10 + (*p - '0');p++;}v = v * sgn;return v;}/*从实型字符串得到double值doublestr:整形字符串返回值是所得到的实数值*/double getdoublevalue(char *doublestr){int sgn; //符号变量,表示该整数的正负double v = 0;char *p = doublestr;double k = 10; //小数的比例因子if(doublestr[0]=='-'){sgn = -1;p++;}else{sgn = 1;if(doublestr[0]=='+')p++;}while(*p!='\0' && *p!='.'){v = v*10 + (*p - '0');p++;}if(*p=='.'){ p++;while(*p!='0'){v += (*p - '0')/k;k = k* 10;p++;}}v = v * sgn;return v;}/*匹配普通字符串,要求输入字符串中指定位置之处存在一个完全匹配的子串ppf :一个二维指针,它所指向的指针值就是格式字符串中的开始匹配的位置,当匹配结束后,它所指向的指针值应该是下一个匹配的起始位置,传回给调用函数ppin:一个二维指针,它所指向的指针值就是输入字符串中的开始匹配的位置,当匹配结束后,它所指向的指针值应该是下一个匹配的起始位置,传回给调用函数成功返回0,否则返回-1。
嵌入式系统实验指导书(6个实验)
嵌入式系统实验指导书襄樊学院物理与电子信息学院实验要求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的方波。
嵌入式系统原理与应用实验指导书(合稿+习题)
嵌入式系统原理与应用实验指导书南航金城学院2013.2目录目录 (1)第一部分试验箱硬件结构 (2)第二部分实验 (11)实验一ADS1.2集成开发环境练习 (11)实验二汇编指令实验1 (17)实验三汇编指令实验2 (20)实验四汇编指令实验3 (23)实验五ARM微控制器工作模式实验 (28)实验六 C语言程序实验 (33)实验七 C语言调用汇编程序实验 (36)实验八GPIO输出控制实验 (39)实验九GPIO输入实验 (46)实验十外部中断实验 (50)实验十一UART通讯实验 (56)实验十二I2C接口实验 (64)实验十三定时器实验 (75)实验十四PWM DAC实验 (81)实验十五ADC实验 (87)实验十六RTC实验 (94)实验十七步进电机控制实验 (101)实验十八直流电机控制实验 (105)附录1 DeviceARM2410 专用工程模板 ..................................................... 错误!未定义书签。
第一部分试验箱硬件结构MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。
采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口。
MagicARM2410实验箱参考如图1.1所示。
图1.1 MagicARM2410实验箱外观图MagicARM2410实验箱功能框图如图1.2所示。
图1.2 MagicARM2410实验箱功能框图1.1 S3C2410A芯片简介S3C2410A是Samsung公司推出的16/32位RISC处理器(ARM920T内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能等特点。
嵌入式技术基础(下)实训指导书
实训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.分析工作点稳定的共发射极放大电路性能。
嵌入式实验报告(RVD、AXD、CVT6410)
武汉理工大学学生实验报告书实验课程名称嵌入式系统应用实验开课学院计算机科学与技术学院指导老师姓名陈建军学生姓名学生专业班级2013 —2014 学年第一学期实验一实验环境的搭建一、RVDS2.2的搭建1.RVDS2.2的安装(1)在基础光盘\实用工具\ rvds2.2安装程序.rar。
解压缩该软件包(2)双击打开setup.exe,开始安装RVDS2.2。
(3)选择agree,点击Browse选择安装路径(4)使用典型安装。
(5)选择关联文件类型,只保留对mcp(rvds工程)的关联。
1.RVDS的注册(1)license(2)将安装文件目录下的Crack文件拷贝到C:\Program Files\ARM目录下:(3)双击keygen,产生Licence.dat(4)选择Licence(5)打开6410RVDS\软件\rvds2.2安装程序\rvds目录下的”破解方法.txt”。
(6)打开C:\Program Files\ARM\Crack\目录下的patch.exe,选择Patch(7)在C盘建立flexlm目录,把Licence.dat文件拷贝到目录中(8)设置环境变量LM_LICENSE_FILE = c:\flexlm\license.dat3.RVDS2.2创建配置工程(1)打开RVD(2)新建文件(3)在Project选项签中,选择ARM Executable Image(3)填写工程名和选择路径后,点击确定完成创建(4)把seg实验中的main.c和init.s文件拷贝到工程目录下。
(5)为新添加文件选择一个目标属性。
选择Debug,作为调试。
(6)点开Targets选项,左键双击Debug打开Language Settings。
在RealViewAssembly。
将Architecture or Processor下拉菜单改为ARM1176JZF-S。
在RealView Compile将Architecture or Processor的下拉菜单改为ARM1176JZF-。
嵌入式系统(STM32微处理器)实训指导书
嵌入式系统(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引脚。
嵌入式系统(STM32微处理器)实训指导书
嵌入式系统(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引脚。
嵌入式软件实训任务书6页
郑州轻工业学院计算机与通信工程学院“嵌入式软件”小学期任务书一、题目1.基于mini2440开发板,设计裸机定时器中断控制LED灯闪烁的程序。
2.编写从A/D转换器的通道x获取模拟数据,并将转换后的数字量以波形的形式在LCD上显示的程序。
3.触摸屏驱动程序设计。
4.语音录放程序设计。
5.分析Bootloader启动流程,在mini开发板上成功移植引导程序vivi。
6.分析Bootloader启动流程,在mini开发板上成功移植引导程序U-boot。
二、实训的性质和任务1.巩固和强化学生的嵌入式系统的基本概念和开发流程,掌握基本知识和基本技能;2.掌握硬件开发平台、开发资源和软件开发环境,尤其是裸机嵌入式系统开发方法;3.掌握汇编和C语言混合编程技巧,熟悉系统启动引导过程,能够成功移植嵌入式系统引导程序。
4.培养和训练学生综合利用所学基本知识和基本技能进行小型裸机程序开发的技能。
三、实训的基本要求通过本次实训,学生应达到以下几个方面的要求:1.素质要求以积极认真的态度对待本次课程,遵章守纪,团队协作。
善于发现问题,分析问题,解决问题,努力培养自己的独立工作能力。
2.知识要求通过本次实训使学生基本能够掌握嵌入式系统的特点、性能,掌握开发板的硬件资源,熟悉S3C2440的功能和接口。
3、能力要求熟练ADS集成开发环境的使用,熟练掌握ADS开发和调试裸机程序的过程和方法。
学生应具有一定的查阅教材、数据手册和各类相关资料的能力,进而养成自我学习的习惯。
掌握底层硬件资源的驱动开发过程。
四、实训内容及要求实训时间共4周,以MINI2440开发板为实验硬件平台,采用ADS集成开发环境,使学生在课程内容基础上,加强对嵌入式系统的理解和裸机应用的设计。
分析嵌入式CPU引导程序的功能和引导过程,学会裸机驱动程序的开发以及简单应用程序的设计。
以下提供6个项目的详细内容及要求,可根据情况选择其中2~4个项目进行训练。
实训开始第1天,布置任务,进行总体规划,项目任务分析,分析实训内容,讲解相关知识,分析题目类型和设计要点,引导学生入门。
嵌入式课程设计_任务书
言实现。使用ADS1.2开发环境。利用嵌入式实验系统实现硬件仿真。
工作计划与进度安排:
13周周一编写应用程序代码。
13周周二、周四调试程序、撰写课程设计报告、答辩。
指导教师:
201年月日
专业负责人:
201年月日
学院教学副院长:
201年月日
课程设计任务书
学院
专业
学生姓名
班级学号
课程设计题目
基于ARM9的UART驱动程序设计
实践教学要求与任务:
设计ARM9核CPUSC3C2410的UART接口驱动程序。程序主要功能:
键盘敲击的字符通过PC机的串口发送给实验箱上的ARM的CPU板的
串口0,ARM的CPU板上的串口得到字符后,通过ARM把它送给CPU板上
嵌入式实验指导书
嵌入式系统基础实验指导书桂陈彭宇兴主编刘显荣主审重庆科技学院电子信息工程学院自动控制实验教学中心2009.06实验一熟悉MagicARM2410实验平台的使用一、实验目的1、熟悉ADS12集成开发环境的使用。
2、学习Wiggler JTAG 仿真器连接及使用。
二、实验设备1、硬件:PC机1台MagicARM2410教学实验开发平台1台2、软件:Windows 98/2000/XP操作系统ADS 1.2集成开发环境三、实验项目1、工程的编辑。
2、工程的调试。
3、DeviceARM2410 专用工程模板。
4、Wiggler JTAG 仿真器的安装与应用。
四、实验内容与步骤1、工程的编辑(1)点击Windows 操作系统的【开始】->【程序】->【ARM Developer Suite v1.2】->【CodeWarrior for ARM Developer Suite】启动Metrowerks CodeWarrior,或双击“CodeWarrior for ARM Developer Suite”快捷方式启动。
启动ADS1.2 IDE 如图1.1 所示。
图 1.1 启动ADS1.2 IDE(2)点击【File】菜单,选择【New…】即弹出New 对话框,如图1.2 所示。
选择工程模板为ARM 可执行映象(ARM Executable Image)或Thumb 可执行映象(Thumb Executable Image),或Thumb、ARM 交织映象(Thumb ARM Interworking Image),然后在【Location】项选择工程存放路径,并在【Project name】项输入工程名称,点击【确定】按钮即可建立相应工程,工程文件名后缀为mcp(下文有时也把工程称为项目) 。
图 1.2 New 对话框(3)建立一个文本文件,以便输入用户程序。
点击“New Text File”图标按钮,如图1.3 所示。
嵌入式微控制器技术实验任务书(附程序和仿真图)
“嵌入式微控制器技术”实验任务书(电气、自动化)一、实验目的与要求:1、熟练掌握基于SST89E554RC微控制器的Keil C51集成开发工具的操作及调试程序的方法(包括:仿真调试与脱机运行间的切换方法);掌握其他相关微控制器集成开发工具的使用及调试方法;2、熟练掌握基于SST89E554RC单片机核心板及I/O扩展实验系统的电路结构原理、设计与应用;掌握其他相关微控制器最小系统设计与应用;3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下的基于51单片机控制器数字接口电路的硬件、软件设计方法与功能调试;4、完成本实验课程所要求的全部实验内容,并写出实验报告。
二、微机原理与接口技术综合实验室资源简介实验室为以下实验活动提供条件:1、基于唐都实验系统的微机原理与接口技术实验(包括汇编语言、C语言/C++语言软件编程实验和16位/32位微机接口电路应用实验);2、基于SST89E554RC微控制器技术软/硬件实验(提供支持汇编语言、C语言编程的Keil C51集成开发工具、最小核心板+唐都实验系统箱);3、基于DSP2407、DSP2812、DSP28335微控制器技术软件/硬件实验(提供支持C语言编程的TI公司的CCS集成开发工具、DSP系列学习开发板、直流电机、步进电机、液晶);4、基于Freescale的16位MC9S12XS128微控制器技术应用实验(提供支持C语言编程的CodeWarrier 5.0 For S12集成开发工具、HF-MC9S12XS128EVB-A 核心板);5、基于ARM的16/32位ARM7LPC2103TDMI-S微控制器技术基础实验(提供支持C、C++语言编程的ARM公司推出的ARM微控制器ADS 1.2集成开发工具、EasyARM2103开发板);6、基于ARM Cortex™-M3先进内核的LM3S1138微控制器技术基础实验(提供支持C语言编程的IAR5.11集成开发工具、EasyARM1138开发板);7、基于LabVIEW虚拟仪器技术的NI ELVIS II+实验仪器,提供信号与系统实验、单级倒立摆控制实验、基于面包板DIV设计三、嵌入式微控制器技术实验内容及要求本课程实验学时为16学时(8次实验),实验将以开放实验方式进行,实验内容包括SST89E554RC微控制器实验和DSP2812微控制器实验,鼓励学生自主学习,在完成相关实验内容后,及时提交给指导老师进行检查验收并自主进行相关微控制器技术应用学习与实验。
嵌入式实训指导书
嵌入式系统设计实训指导书实训任务:复习、实践、巩固在《嵌入式系统设计》课程中学习的嵌入式系统开发技术的主要思想、方法和流程,深入学习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、点击确定,再次编译工程。
嵌入式课程设计任务书
嵌入式课程设计任务书设计要求:相比与嵌入式系统的期末作业,该课程设计要求同学们基于LM3s9b92开发板或在此开发板的基础上进行扩展设计一个具有实用性、系统性的嵌入式电子产品。
LM3s9B92控制器具有丰富的内部资源,即用于运动控制的PWM模块,处理模拟信号的ADC、模拟比较器,用于串行通信的外设接口UART、I2S接口、USB接口、CAN接口、以太网接口等,以及存储器SDCard、Flash外设等。
希望同学们积极应用开发板上除触摸屏以外的资源,设计自己的电子产品。
设计任务:两个人一组,同学们既可以根据自己的兴趣爱好设计产品,也可以从下文给出的题目中选择一个进行设计,类型一:几种外设的组合应用例如:智能数据采集系统的设计与实现该题目的系统架构如上图,要求能实现以下功能:1、传感器采集的数据实时显示,并以某种形象、直观化的显示方式2、可以查阅历史采集数据,将历史数据存储在flash 或者sd卡中。
类型二:基于以太网接口的开发例如“基于嵌入式以太网的远程温度监控系统的设计和实现”题目的系统架构如上图,要求能实现以下功能:1、传感器采集的数据实时简单显示2、MCU作为web服务器,PC端可以通过以太网访问服务器,实时观察传感器采集数据或者工作状态等。
类型三:基于Flash或者SD卡、I2S等的开发题目1:数码复读机的设计与实现功能要求:1、应用I2s接口可以实现简短语音的实时录入,并以文件的形式存放到flash或者sd卡上2、触摸屏上显示已经录入的语音文件列表。
3、可以选择性回放及删除已经录入的语音。
题目2:带USB接口功能的MP3实现。
类型四:基于PWM模块的开发题目1:基于PWM的直流电机控制系统的设计(联系变频电风扇)要求:要求能控制电机的正反转、调速等功能。
题目2:基于PWM的无刷刷直流电机控制系统的设计(联系变频电风扇、电动车等)要求:要求能控制电机的正反转、调速等功能。
题目3:基于PWM的智能灯光控制。
《嵌入式系统设计》实验指导书-
电子科技大学微机课程组嵌入式系统设计实验指导书2015年9月目录第一部分嵌入式系统仿真实验系统简介1第一节、开发平台软件资源及文档1第二节、开发平台软件安装1第二部分实验项目说明2第一节、实验项目列表2第二节、实验项目使用建议2第三部分嵌入式开发系统实验案例指导3实验一、多任务程序的建立和运行3一.实验目的3二.实验内容3三.预备知识3四.实验设备与工具3五.实验原理与说明3六、实验步骤4七、思考题8实验二、基于操作系统的任务调度和进程管理9一.实验目的9二.实验内容9三.预备知识9四.实验设备与工具9五.实验原理与说明9六、实验步骤10七、思考题12第一部分嵌入式系统仿真实验系统简介以VC++ 6.0为实验基础软禁平台仿真模拟在uC/OS嵌入式操作系统系统环境下多任务程序的运行和调试,使学生可以在一个纯软件的环境中了解、熟悉嵌入式软件的运行和调试方法。
第一节、开发平台软件资源及文档1)VC6.0集成开发环境;2)配套实验指导书的实验源代码,分为两类:仿uc/OS部分和任务程序部分3)实验环境的工程文件4)实验指导书;第二节、开发平台软件安装1、编译调试环境的安装在XP平台下安装VC6.0;2、实验文件拷贝把实验文件拷贝d:\ucosexperiment目录下第二部分实验项目说明第一节、实验项目列表表1列出了本指导书提供的所有实验项目。
表1 实验项目列表项目编号实验项目课时数实验性质项目类别实验环境1 多任务程序的建立和运行 4软件验证Windows2 基于操作系统的任务调度和进程管理 4 综合实验分为两种种类别:验证性实验,综合设计实验。
●验证实验:本系列实验的基础部分,属于必做内容;●综合设计实验:让使用者在相关的软件环境下实现按实验要求修改相应的软件实现相应的功能。
第二节、实验项目使用建议本实验共提供2个实验项目,可以根据同学个人兴趣和具体的实验情况来进行选择,每一组实验基本涵盖本实验课程要求学生掌握的技能,包括C语言基础、应用程序编程等内容。
嵌入式控制系统实验报告
嵌入式控制系统实验报告学校专业班级学号姓名指导教师年月日实验一:ARM 调试环境和ADS的使用一、实验目的:了解ARM系统的基本开发环境和手段,建立调试系统和ADS编译系统使用方法和技巧。
二、实验内容和要求●设备连接方法●启动服务器软件●调试系统的配置●学习编辑编译程序●学习调试方法三、实验主要仪器设备和材料嵌入式系统实验箱,微机四、实验方法、步骤及结构测试1.设备连接:上电时注意观察指示灯状态,ProbeICE-ARM 上设有三个指示灯,分别是:CFG(配置)、Busy(工作中)、PWR(电源)。
在ProbeICE-ARM 在供电正确、内部电路工作正常时,三个指示应是:CFG:闪烁,表明配置正确Busy:灭,表明仿真器处于空闲态。
仿真器工作时(比如程序下载)闪烁PWR:常亮,表明供电正确注意:务必在断电情况下连接ProbeICE-ARM 和目标板。
带电插拔可能会对仿真器造成永久损害!请使用仿真器配套的专用直流电源,其他电源可能导致意想不到的问题出现!2.启动服务器软件使用ProbeICE-ARM 仿真器之前须安装服务器(Server)和调试环境(ADS1.2 或SDT251)。
ProbeICE-ARM 使用与Multi-ICE 2.2 兼容的服务器软件ProbeICE-Server。
请按以下步骤启动和使用ProbeICE-Server:启动:从Windows 开始菜单中选择ProbeICE-Server 启动,或从服务程序安装目录中直接启动。
配置:从主菜单File →Auto-configure。
如果连接和配置正常,会有相应的ARM 内核提示信息,出现如图所示的画面,表明服务器已经识别目标板ARM 内核并作好准备为它服务了。
现在您可以启动调试软件开始调试了。
如果没有成功,就在File菜单中重新装载配置文件2410.CFG3.启动ADS调试开发环境运行软件ARM Developer Suit v1.2----CodeWarrior ARMDeveloper Suit4.新建项目:激活File菜单的New项,输入项目名称,选择项目存盘路径。
自动化2013级《嵌入式微控制器应用系统综合设计》课程设计任务书
自动化2013级“嵌入式微控制器应用系统综合设计”课程设计任务书一、课程设计目的“嵌入式微控制器应用系统综合设计”课程设计是自动化专业本科生的必修课。
本课程设计综合了模电/数电技术、微机原理与接口技术和自动控制理论等相关知识应用,通过基于嵌入式微控制器应用系统的硬件原理和软件编程的分析、设计与调试,让学生对嵌入式微控制器系统应用有一个较全面的理解,掌握基于嵌入式微控制器应用系统软硬件设计的基本方法和技术,同时,也为下一阶段相关专业课程的学习和应用设计实验,提供良好基础和平台。
本次课程设计任务中的每个题目允许2-3人选择,要求每个同学独立完成所选课题的设计与调试,并独立完成课程设计报告(手工书写)。
报告内容应包括:电路原理图,工作原理详述,电路印制板图,程序流程图及程序,系统调试结果及结论分析等。
希望同学们认真阅读课程设计任务书,认真查阅资料,圆满完成本次课程设计。
二、课程设计内容及要求1、嵌入式微控制器类型选择:在完成本学期“嵌入式微控制器技术”课程学习和相关基本实验基础上,为丰富本次课程设计中可选微控制器类型。
实验室提供SST89E554RC微控制器开发板、Freescale系列-MC9S12XS128EVB-A微控制器实验系统、DSP2812开发板、DSP28335开发板、EasyARM2103开发板、EasyARM1138开发板等,每个同学可以根据课题的需求分析和设计任务要求进行相关类型的微控制器应用设计。
2、基于SST89E554RC嵌入式微控制器设计题:题目一:基于实验室小型步进电机控制系统设计(2-3人选)设计要求:(1)、使用汇编语言或C语言;(2)、程序功能要求:通过小键盘给定,实现步进电机启动/停止、正转/反转、加速/减速设置与控制,数码管(或液晶屏)显示当前步进电机状态及相关参数,简单故障诊断与报警。
(3)、上位机监控功能要求:通过串口或USB口实现上/下位机通信,能够显示步进电机当前状态及运行参数(数据显示或动画显示),能够从上位机控制下位机之步进电机工作。
嵌入式微处理器结构与应用实验指导书-11.10.24
目录目录 ............................................................................... - 1 -第一章嵌入式实验系统的资源介绍 ............................... - 2 -第二章基于ARM系统资源的实验 ................................... - 19 -实验一 ARM ADS1.2开发环境创建与简要介绍.......... - 20 -实验二基于ARM的汇编语言程序设计 ......................... - 28 -实验三基于ARM的C语言程序设计 ............................. - 34 -实验四基于ARM的硬件BOOT程序的基本设计........... - 39 -实验五 ARM的I/O接口实验 .......................................... - 44 -实验六 ARM的中断实验 .................................................. - 50 -第一章嵌入式实验系统的资源介绍ARM实验箱硬件资源概述本实验所采用的实验系统采用了目前在国内普遍认同的ARM920T核,32位微处理器,在实验板上有丰富的外围扩展资源(数字、模拟信号发生器,数字量IO输入输出,语音编解码、控制对象、人机接口等单元),可以完成ARM的基础实验、算法实验、控制对象实验和数据通信实验、以太网实验。
图1-1-1 ARM9嵌入式实验系统的功能框图1.1 实验系统的硬件资源总揽☆CPU单元:内核ARM920T,芯片三星的S3C2410,工作频率最高202MHz;☆动态存储器:64MB,芯片HY57V561620;☆海量存储器:32MB,芯片K9F5608;☆ USB单元: 1个主接口,两个设备接口,芯片PDIUSBD12;☆网络单元: 10/100M以太网,芯片AX88796;☆ UART单元: 2个,最高通信波特率115200bps;☆语音单元: IIS格式,芯片UDA1341TS,采样频率最高48KHz;☆ LCD单元: 5.7寸,256色,320X240像素;☆触摸屏单元:四线电阻屏,320X240,5.7寸;☆ SD卡单元:通信频率最高25MHz,芯片W86L388D,兼容MMC卡;☆键盘单元: 4X4键盘,带8位LED数码管;芯片HD7279A;☆模拟输入输出单元:8个带自锁的按键,及8个LED发光管;☆ A/D转换单元:芯片自带的8路10位A/D,满量程2.5V;☆步进电机单元:两相四拍式,步距角1.8°,0.1安;☆直流电机单元:有刷;☆温度控制单元:集成温控模块;☆信号源单元:波形三种,频率20-120KHz,三路输出;☆标准键盘及PS2鼠标接口;☆标准的IDE硬盘接口;☆达盛公司的Tech_V总线接口;☆调试接口: 20针JTAG;☆CPLD单元;☆电源模块单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“嵌入式微控制器技术”实验任务书(电气、自动化)一、实验目的与要求:1、熟练掌握基于SST89E554RC微控制器的Keil C51集成开发工具的操作及调试程序的方法(包括:仿真调试与脱机运行间的切换方法);掌握其他相关微控制器集成开发工具的使用及调试方法;2、熟练掌握基于SST89E554RC单片机核心板及I/O扩展实验系统的电路结构原理、设计与应用;掌握其他相关微控制器最小系统设计与应用;3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下的基于51单片机控制器数字接口电路的硬件、软件设计方法与功能调试;4、完成本实验课程所要求的全部实验容,并写出实验报告。
二、微机原理与接口技术综合实验室资源简介实验室为以下实验活动提供条件:1、基于唐都实验系统的微机原理与接口技术实验(包括汇编语言、C语言/C++语言软件编程实验和16位/32位微机接口电路应用实验);2、基于SST89E554RC微控制器技术软/硬件实验(提供支持汇编语言、C语言编程的Keil C51集成开发工具、最小核心板+唐都实验系统箱);3、基于DSP2407、DSP2812、DSP28335微控制器技术软件/硬件实验(提供支持C语言编程的TI公司的CCS集成开发工具、DSP系列学习开发板、直流电机、步进电机、液晶);4、基于Freescale的16位MC9S12XS128微控制器技术应用实验(提供支持C语言编程的CodeWarrier 5.0 For S12集成开发工具、HF-MC9S12XS128EVB-A 核心板);5、基于ARM的16/32位ARM7LPC2103TDMI-S微控制器技术基础实验(提供支持C、C++语言编程的ARM公司推出的ARM微控制器ADS 1.2集成开发工具、EasyARM2103开发板);6、基于ARM Cortex™-M3先进核的LM3S1138微控制器技术基础实验(提供支持C语言编程的IAR5.11集成开发工具、EasyARM1138开发板);7、基于LabVIEW虚拟仪器技术的NI ELVIS II+实验仪器,提供信号与系统实验、单级倒立摆控制实验、基于面包板DIV设计三、嵌入式微控制器技术实验容及要求本课程实验学时为16学时(8次实验),实验将以开放实验方式进行,实验容包括SST89E554RC微控制器实验和DSP2812微控制器实验,鼓励学生自主学习,在完成相关实验容后,及时提交给指导老师进行检查验收并自主进行相关微控制器技术应用学习与实验。
实验一系统认识实验(基于SST89E554RC)基本部分:按照实验指导书之“2.1 系统认识实验”(P17~P23页)容要求,熟悉实验环境及方法,完成基于汇编语言程序例的实验调试与验证。
提高部分:完成实验指导书之“2.2 数码转换实验”。
题目一:汇编语言实现BCD码整数转换二进制整数(验证性)题目二:汇编语言实现二进制整数转换十进制整数的设计(设计性)实验二数据传送与排序程序设计实验(基于SST89E554RC)基本部分:按照实验指导书之“2.5 数据排序实验”(P33页)容要求完成调试与验证。
提高部分:汇编语言编程实现把(R2,R3)源RAM区首址的(R6,R7)个字节数据,传送到(R4,R5)目的RAM区,完成目的区数据升序排列。
实验三数字量输入输出实验(基于SST89E554RC)基本部分:按照实验指导书之“3.1 数字量输入输出实验”基本实验项目要求,完成汇编语言和C语言基本程序功能调试与验证。
提高部分:(任选一题)题目一:LED交通灯控制(使用8255接口芯片)要求:使用汇编语言和C语言编程。
功能为:通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。
题目二:LED灯控制(使用8255接口芯片)要求:使用汇编语言、C语言编程。
功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。
ORG 0000HLJMP MAINORG 0003HLJMP INT00ORG 0030HMAIN:MOV SP,#70HSETB IT0SETB EASETB EX0CLR PX0MOV DPTR,#0FF7FHMOV A,#80HMOVX DPTR,AMOV R0,#0MOV DPTR,#0FF7CHLOOP:CJNE R0,#0,L1MOV A,#0FFHMOVX DPTR,AW0: CJNE R0,#0,LOOPAJMP W0L1: CJNE R0,#1,L2 MOV A,#00HMOVX DPTR,AW1: CJNE R0,#1,LOOP AJMP W1L2: CJNE R0,#2,L3 MOV A,#0FEH; MOV R1,#8W2: MOVX DPTR,A LCALL DELAYRL ACJNE R0,#2,LOOP SJMP W2;DJNZ R1,W2;LJMP LOOPL3: CJNE R0,#3,L4 MOV A,#7FHW3: MOVX DPTR,A LCALL DELAYRR ACJNE R0,#3,LOOP SJMP W3L4:MOV A,#0FEHW4: MOVX DPTR,A LCALL DELAYRL ARL ACJNE R0,#4,LOOP SJMP W4DELAY:MOV R7,#255D1: MOV R6,#255 DJNZ R6,$DJNZ R7,D1RETORG 0FFHINT00:PUSH ACCPUSH PSWINC R0CJNE R0,#5,LLMOV R0,#0LL: POP PSWPOP ACCRETIEND实验四中断系统实验(基于SST89E554RC)基本部分:按照实验指导书之“3.2 中断系统实验”中相关实验项目要求,完成汇编语言和C语言基本程序功能调试与验证。
提高部分:(要求:Proteus环境下,任选一题完成)在完成交通灯基本功能基础上,当有急救车到达时,两向交通信号为全红,以便让急救车通过。
假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。
本实验题以按键为中断申请,表示有急救车通过。
ORG 0000HLJMP MAINORG 0003HLJMP INT00ORG 0030HMAIN:MOV SP,#70HSETB IT0SETB EASETB EX0CLR PX0MOV DPTR,#0FF7FHMOV A,#80HMOVX DPTR,AMOV DPTR,#0FF7CH LOOP:MOV A,#1EHMOVX DPTR,ALCALL DELAY2MOV R1,#3LH2:MOV A,#1DHMOVX DPTR,ALCALL DELAYMOV A,#1FHMOVX DPTR,ALCALL DELAYDJNZ R1,LH2MOV A,#33HMOVX DPTR,ALCALL DELAY2MOV R1,#3LH3:MOV A,#2BHMOVX DPTR,ALCALL DELAYMOV A,#3BHMOVX DPTR,ALCALL DELAYDJNZ R1,LH3LJMP LOOPDELAY2:MOV R0,#8LH1:LCALL DELAYDJNZ R0,LH1RETDELAY:MOV R4,#25MOV R5,#100MOV R6,#100D2:DJNZ R6,D2MOV R6,#100DJNZ R5,D2MOV R5,#100DJNZ R4,D2RETINT00:PUSH ACCPUSH PSWMOV A,#1BHMOVX DPTR,A ; MOV R0,#5 LH: LCALL DELAY ; DJNZ R0,LHPOP PSWPOP ACCRETIEND实验五定时器/计数器实验(基于SST89E554RC)基本部分:按照实验指导书之“3.3 定时/计数器实验”基本实验项目要求、完成汇编语言和C语言程序功能调试与验证。
提高部分:(要求:Proteus环境下,任选一题完成)题目一:定时器控制LED灯要求:由单片机部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。
P1口的P1.0-P1.7分别接八个发光二极管。
编写程序模拟时序控制装置。
开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。
题目二:计数器实验要求:单片机部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。
使用T1作定时器,50ms中断一次,看T0每0.50来了多少脉冲,将其数值按二进制在LED灯上显示出来,5秒后再次测试。
ORG 0000HLJMP MAINORG 000BHLJMP INTT0ORG 0030HMAIN: MOV SP,#60HMOV TH0,#3CHMOV TL0,#0B0HMOV TMOD,#1MOV IE,#82HMOV R0,#20MOV R1,#1MOV A,#0FAHSETB TR0HERE: MOV P1,AAJMP HEREINTT0:PUSH PSWDJNZ R0,GHMOV R0,#20CJNE R1,#1,L1MOV A,#0FAHSJMP EDL1: CJNE R1,#2,L2RL ASJMP EDL2: CJNE R1,#3,L3 MOV A,#0AFHSJMP EDL3: CJNE R1,#4,L4RL ASJMP EDL4: CJNE R1,#5,L5MOV A,#0AAHSJMP EDL5: CJNE R1,#6,L6RL ASJMP EDL6: CJNE R1,#7,L7MOV A,#00HSJMP EDL7: MOV A,#0FFHMOV R1,#0ED: INC R1GH: POP PSWRETIEND实验六A/D、D/A转换实验(基于SST89E554RC)基本部分:按照实验指导书之“4.3 A/D转换实验”项目要求和“4.4 D/A 转换实验”项目要求,完成汇编语言和C语言程序功能调试与验证。
提高部分:(要求:Proteus环境下完成)小键盘(或开关量)给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经过A/D采样后,将采样数据用LED灯显示当前模拟信号值大小及变化状态。
#include<reg51.h>#include<math.h>#include<intrins.h>#define uchar unsigned charsbit S1=P2^0;sbit S2=P2^1;sbit S3=P2^2;sbit S4=P2^3;sbit DA_DIN=P2^4;sbit DA_CLK=P2^5;sbit DA_CS=P2^6;sbit cs=P3^0;sbit clk=P3^1;sbit dat=P3^2;sbit P3_3 = P3^3;bdata uchar addata;sbit adin0=addata^0;unsigned char cishu;void quyan(void);void delay_s(unsigned char n){unsigned char i;for(i=0;i<n;i++);}uchar tlc549ad(void){uchar i;clk=0;cs=0;_nop_();for(i=0;i<8;i++){ //dat=1;clk=1;delay_s(20);adin0=dat;addata=addata<<1;clk=0;}cs=1;return addata;}void TLC5615_DA_conver(unsigned int DA_data) //TLC5615DA转换程序{unsigned char i;DA_data=DA_data<<2;DA_CS=1;DA_CLK=0;DA_DIN=0;DA_CS=0;for(i=0;i<16;i++){DA_data=DA_data<<1;DA_DIN=CY;DA_CLK=1;delay_s(0x02);DA_CLK=0;delay_s(0x02);}DA_CS=1;for(i=0;i<13;i++)delay_s(0xff);//P1=tlc549ad();delay_s(0xff);}void sin_fun(unsigned char APx){float x,y;unsigned int DA;quyan();while(1){for(x=0;x<(2*3.1415);x+=0.1){y=sin(x);DA=APx+y*APx;TLC5615_DA_conver(DA);}if(((S1==0)||(S2==0)||(S3==0))||((S1==1)&&(S2==1)&&(S3==1)&&(S4==1))) {TR0=0;break;}}}void sanjiao(unsigned int APx,unsigned char step){unsigned int x;quyan();while(1){for(x=0;x<2*APx;x+=step)TLC5615_DA_conver(x);for(x=2*APx;x>1;x-=step)TLC5615_DA_conver(x);if(((S1==0)||(S2==0)||(S4==0))||((S1==1)&&(S2==1)&&(S3==1)&&(S4==1))) {TR0=0;break;}}}void fangb(unsigned char APx,unsigned int num){unsigned int x;quyan();while(1){for(x=0;x<num;x++)TLC5615_DA_conver(2*APx);for(x=0;x<num;x++)TLC5615_DA_conver(0);if(((S4==0)||(S2==0)||(S3==0))||((S1==1)&&(S2==1)&&(S3==1)&&(S4==1))) {TR0=0;break;}}}void jvcb(unsigned char APx,unsigned int wide){unsigned int x,Y;quyan();while(1){for(x=0;x<wide;x+=1){Y=APx-10*x;TLC5615_DA_conver(Y);}if(((S1==0)||(S3==0)||(S4==0))||((S1==1)&&(S2==1)&&(S3==1)&&(S4==1))) {TR0=0;break;}}}void quyan(void){ cishu=10;TH0=0x3c;TL0=0xb0;TMOD=0x01;IE=0x82;TR0=1;}time0 () interrupt 1 using 1{TH0=0x3c;TL0=0xb0;cishu--;if(cishu==0){P1=tlc549ad();cishu=10;}}void main(void){while(1){P0=0xc0;P1=0x00;TLC5615_DA_conver(0);if((S1==0)&&(S2==1)&&(S3==1)&&(S4==1)){P0=0xf9;fangb(255,50);}else if((S1==1)&&(S2==0)&&(S3==1)&&(S4==1)){P0=0xa4;jvcb(250,25);}else if((S1==1)&&(S2==1)&&(S3==0)&&(S4==1)){P0=0xb0;sanjiao(250,25);}else if((S1==1)&&(S2==1)&&(S3==1)&&(S4==0)){P0=0x99;sin_fun(250);}}}实验七步进电机控制实验基本部分:1、按照实验指导书之“5.1步进电机实验”项目要求,完成基于SST89E554RC微控制器的C语言程序功能调试与验证;2、按照DSP2812开发板使用说明书之“实验二十二步进电机实验(四相单四拍)”项目要求,完成基于DSP2812微控制器的C语言程序功能调试与验证;提高部分:(任选一题完成)1、在分析掌握基于SST89E554RC微控制器实现步进电机控制原理基础上,实现步进电机速度可调和方向可调;2、在分析掌握基于DSP2812微控制器实现步进电机控制原理基础上,实现步进电机速度可调和方向可调#include <reg51.h>sbit p30=P3^0;sbit p32=P3^2;sbit p31=P3^1;unsigned char L_value[2][8] = {0x0E0, 0x0C0, 0x0D0, 0x090, 0x0B0, 0x030, 0x070, 0x060,0x060, 0x070, 0x030, 0x0B0, 0x090, 0x0D0, 0x0C0,0x0E0};//步进电机正反转表unsigned char a[4] = {0xff,0x08, 0xfc,0xfe };unsigned char speed=3;void delay(unsigned int time){unsigned int i;for(i=0; i<time; i++);}void main(){ unsigned char m;IT0=1;EA=1;EX0=1;PX0=0;p30=1;p31=1;while(1){while(~p30){P2=a[speed];for(m=0; m<8; m++){P1 = L_value[~p31][m];delay(4000*speed);}}if(p30)for(;p30==1;) P2=a[0];}}void extern0()interrupt 0{speed--;if(speed==0)speed=3;P2=a[speed];}实验八直流电机开环控制实验基本部分:1、按照实验指导书之“5.2直流电机PWM调速实验”项目要求,完成基于SST89E554RC微控制器的C语言程序功能调试与验证;2、按照DSP2812开发板使用说明书之“实验二十一直流电机实验”项目要求,完成基于DSP2812微控制器的C语言程序功能调试与验证;提高部分:(任选一题完成)3、在分析掌握基于SST89E554RC微控制器实现直流电机控制电路原理基础上,实现电机速度可调;4、在分析掌握基于DSP2812微控制器实现直流电机控制原理基础上,实现电机速度波段式可调#include <reg51.h>#define T_value (unsigned char)0xf0 // T 周期值#define TH0_value (unsigned char)0xFE // 定时器 T0 计数值(高)#define TL0_value (unsigned char)0x00 // 定时器 T0 计数值(低)unsigned char a[4] = {~0xfe,~0xfc,~0x08,~0xff};unsigned char speed[3] = {0xb0,0x80,0x40};sbit DRV = P1^7;sbit KG = P1^0;unsigned char T_Count; // 延时次数unsigned char T1_value=0xb0; // T 周期中高电平周期 T1 值unsigned char Tx;unsigned char j=0;void int_tim0() interrupt 1{TH0 = TH0_value;TL0 = TL0_value;T_Count--;}void intern0() interrupt 0{j++;TR0=0;if(j==3){j=0;}T1_value=speed[j];Tx = T1_value;T_Count=0;DRV=1;TR0=1;P2=a[j];}void main(){TMOD = 0x01; // 定时器0初始化,定时基数TH0 = TH0_value;TL0 = TL0_value;TR0 = 1;ET0 = 1;IT0=1; //外中断0EX0=1;PX0=1;DRV =1; //P17电平T_Count = T1_value;Tx = speed[0];while(1){if(KG)for(;KG==1;){P2=a[3];DRV =1;EA=0;j=0;}Tx=speed[j];T_Count =0;while(~KG){EA = 1;P2=a[j];if(T_Count == 0){DRV = ~DRV;Tx = T_value - Tx;T_Count = Tx;}}}}四、实验报告基本容要求1、实验题设计容、目的和要求;2、软件、硬件环境要求;3、给出硬件电路原理图并分析;4、程序设计框图及程序清单; 5 、实验调试步骤及结果分析;6、结论。