16位单片机实验指导书

16位单片机应用实验指导书电子与信息工程学院2O15年2月实验一MC9S12XS128入门实验一.实验目的1.熟悉CodeWarrior嵌入式开发系统软硬件环境,掌握其使用方法及调试方式。

2.掌握S12 GPIO接口的使用方法及编程方法。

3.熟悉S12单片机的C语言程序编程框架。

4.理解样例中的第一个C语言程序代码。

二.实验设备及其连接1.PC机一台2.S12嵌入式开发实验板一套3.接线原理图实验板上有8个发光二级管和4个按钮开关, 8个发光二级管由单片机的PB口8个IO引脚控制, PB0-PB7输出低电平时LED点亮, 输出高电平时LED熄灭。

4个独立的按键输入直接连接到PP口的PP4-PP7引脚, 常态下为高电平, 按键按下时, CPU相应I/O引脚将检测到低电平, XS128芯片的PP口是有中断功能的IO口, 除了可用查询方式检测IO口的状态以外,我们也可以用中断的方式读入按键的状态。

三.实验内容1.使用CodeWarrior嵌入式开发系统的软硬件环境,掌握其使用方法及调试方式。

2.调试运行提供的样例程序light,观看实验结果。

(软件使用参见第四部分)3.运行样例程序,观察小灯的闪烁和对应的程序实现;调整延时的长短,继续观察小灯的闪烁。

4.尝试新建自己的工程,自编程序,实现用4个开关控制4个小灯的亮灭. 4个开关分别接在端口P的PTP4~PTP7口,4个小灯则接在PORTB0~PORTB3口, 参见第二部分连接图. 编程实现用这4个开关控制4个小灯,按钮开关按下时,对应小灯亮,否则为暗。

提示:新建工程时芯片选择HCS12X family-〉mc9s12xs128,connection 选择TBDML,然后下一步输入工程路径和名称,再3次下一步,选择默认选项,然后下一步、完成。

在main.c 文件中加入你的代码,主要通过设置数据方向寄存器DDRB DDRP和数据寄存器PORTB PTP来实现开关控制小灯的功能。

代码举例:(具体编程时要作修改)DDRB=0x00; //将端口B控制8个小灯全亮DDRB= 0xff; //将端口B的8个管脚都设为输出Temp=PTP& 0xf0;//读入端口P的高4脚的状态Temp1 =Temp>>4; //Temp右移4位四.CodeWarrior嵌入式开发环境的基本使用方法1.运行CodeWarrior IDE嵌入式开发平台,点击菜单命令“File\Open”打开light文件夹中的project.mcp工程文件,按F7或者Project\Make菜单编译,若有错,修改再编译直至通过。

2.点击菜单命令“Project\Debug”或按F5进入调试界面进行程序调试或程序写入●程序调试: 点击菜单命令“Run\Start”或按F5开始运行,或者也可操作其他单步执行等选择。

●程序写入过程:(a)点击菜单命令“TBDML HCS12\Reset”(b) 点击菜单命令“TBDML HCS12\Flash”,同时选择FLASH_C000和ALL_PPAGES地址区, 点击Erase按钮作擦除操作,完成后地址区域显示为空(Blank)。

(c) 点击Load按钮,输入或选择:工程文件夹\bin文件夹下的abs文件或s19文件,点击打开就开始文件写入,完成后相应地址区域显示为已编程(Programme)。

(d) 按实验箱核心板右下角reset按钮,观察实验运行结果。

五、实验小结实验二串口通信(SCI)实验一.实验目的1.进一步熟悉Codewarrior嵌入式开发系统环境及调试下载方法。

2.加强串口通信(SCI)基本原理及编程原理的理解。

3.理解课本中的程序代码。

4.运用查询方式和中断方式实现通串口通信。

二.实验设备及其连接1.PC机一台2.S12嵌入式开发系统一台3.串行通信线一根三.实验内容1.理解串行通信(SCI)原理。

2.理解和调试运行课本的样例程序,比较查询实现方式和中断实现方式的不同。

3.编制一个查询方式通信程序和一个中断方式通信程序实现以下功能:通过PC机发送一个命令以控制接在PORTB口的8个小灯亮暗状态,具体是:各个小灯初始状态都为暗,首先进行通信测试,PC机发送“AA”,若单片机接收到则8个小灯全亮,并回送字符“AA”; PC机发送“55”,若单片机接收到则8个小灯全暗,并回送字符55;PC机发送字符串“11”,PORTB的0口灯亮;发送“10”,PORTB的0口灯暗;发送“21”,PORTB的1口灯亮;发送“20”,PORTB的1口灯暗;依此类推。

PC机方程序使用超级终端或者其他串口工具软件。

四.编程提示1.按照结构要求写好编程代码和注释。

2.计算波特率,SCIInit.h(SCI初始化子程序)设置SCI比特率寄存器(SCIBDH,SCIBDL),设置允许SCI、正常码输出、8位数据、无校验,即设置SCI控制寄存器1(SCI0CR1)相应位,设置是否允许发送与接收、是中断接收还是查询接收,即设置SCI控制寄存器2(SCI0CR2)相应位。

3.查询方式通信程序的主程序主体是一个主动查询循环,我们可以让系统查询接受一定字节的数据,然后进行判断决定后续操作。

计算波特率,SCIInit.h(SCI初始化子程序)设置SCI比特率寄存器(SCIBDH,SCIBDL),设置允许SCI、正常码输出、8位数据、无校验,即设置SCI控制寄存器1(SCI0CR1)相应位,设置是否允许发送与接收、是中断接收还是查询接收,即设置SCI控制寄存器2(SCI0CR2)相应位。

4.中断方式通信程序的主程序主体是一个死循环,但该循环体是一个空循环体,所有接收和发送数据程序代码放在中断程序中,这里没有检测代码,数据开始发送和接收的条件就是中断的条件。

五、实验小结实验三定时器实验一.实验目的1.进一步熟悉CodeWarrior嵌入式开发系统环境、C语言、调试方式。

2.复习串行口的相关原理以及编程方法。

3.理解用定时器实现计数定时和输入捕捉的基本工作原理以及实现方法。

4.理解课本中的程序代码。

二.实验设备及其连接1.PC机一台2.S12嵌入式开发系统一台3.串行通信线一根三.实验内容1.理解定时器计时的原理。

2.调试运行定时器溢出中断样例程序。

在超级终端软件环境中观察时间输出,修改程序,将串口输出时间改为正确数字输出(十进制)。

3.编制一个利用定时器中断计数的程序。

要求在串口输出时钟不变的基础上, 设计计数器,每500ms计数器加1,该计数范围为从0至255,超过又重新清0再计数,每次的数字通过分别接在PORTB0~PORTB7口的八个小灯以二进制值动态显示,注意小灯走向:端口数值为“0”时小灯亮,为“1”时小灯暗。

四.编程提示1.按照结构要求写好编程代码和注释。

2.时间输出值为2位十进制值字符输出。

3.根据定时间隔计算时间参数。

4.输入捕捉由一个通道改为4个通道,中断处理也要有相应的4个处理函数。

六.实验小结实验四键盘中断实验一.实验目的1.熟练运用CodeWarrior嵌入式开发系统环境、汇编、C语言、调试方式。

2.复习串行通信接口(SCI)的内容。

3.加强键盘中断基本原理及编程原理的理解。

4.理解运行课本中的程序代码。

5.理解“行扫描”法的原理并能进行键值识别和键值编码。

6.理解键盘接线原理图。

实验箱提供一个4*4的16键键盘,用于键盘中断信号的输入。

系统提供手动接线方式:将键盘接入单排插孔,键盘连接图如下图所示,PTH0-3接列输入,PTH4-7接行输出。

图4-1MCU与键盘的连接二.预习要求1.仔细阅读本实验指导书。

2.复习有关的键盘中断和串行通信接口(SCI)的章节。

3.熟悉MC9S12键盘模块的工作方法及编程。

4.根据实验内容要求编写好程序,为实验做充分地准备。

三.实验设备及其连接1.PC机一台2.S12嵌入式开发系统一台3.串行通信线一根4.小键盘一个5.万用表一个四.实验内容1.理解键盘模块及键盘中断的原理。

2.运行与理解各子程序。

3.主程序运行课本的样例程序,实现一个中断方式的16键键盘程序,使用“行扫描”法识别按键。

请检查实验箱键盘键定义值是否与程序运行结果一致,若不一致,请修改。

由于键值不是ASCII码,所以超级终端中不能正确显示,修改程序,用8个小灯显示键值,超级终端中显示键定义值。

4.编制简易键盘操作小游戏。

PORTB口连接8个调试小灯,要求在任何时候只有一个小灯暗,其他小灯都亮,每1 秒钟(或更短的时间)暗的那个小灯位置向左移位,若键盘在某一时刻按下与小灯位置值相同的键,则在串口输出该键的键面定义值(键的ASCII码值)加上一个$符号, 若不相同则只输出该键的键面定义值,观察串口输出,$符号显示多的说明得分多。

五.编程提示1.按照结构要求写好编程代码和注释。

2.键盘一般都是矩阵排列的,行和列分别接在MCU的I/O口上,其中列线通过设置内部上拉电阻接+5V,该端口先定义为输入端,行线直接与端口相连,该端口定义为输出端。

当键盘上没有被按下时,所有的行线和列线断开,且列线都呈高电平。

当键盘上某个键闭合时,则与该键对应的行线和列线短路,对于16键键盘,此时行值和列值的组合就是识别这个键的键值的一个字节,PTH0-PTH 3分别接四根列线,PTH4-PTH 7分别接四根行线。

行扫描法是使键盘的某一行输出为低电平,其余行为高电平,然后读取列值,如果列值中有某位为低电平,则表明该行和列交点处的键被按下;若为全高则再扫描下一行,直至扫描完全部的行线为止。

这样就可以确定是哪一行哪一列交点的键被按下。

3.采用键盘中断方式。

PTH端口引脚与键盘中断输入引脚复用,PTH7-PTH4为行线(输出),定义无内部上拉电阻,PTH3-PTH0为列线(输入),定义内部有上拉电阻,设置键盘中断允许寄存器,当键盘有键被按下时,立即产生中断,中断程序处理按键事件,比如确定哪个键被按下,然后转换为该键的定义值。

4.键盘的键面标示码(即定义值)与MCU识别的键值对应关系通过列表对应起来,即键盘定义表对应表示。

当通过“行扫描”法获得某个键的键值时,通过查表法就可以得到它的定义值。

5.该键盘中断方式程序的主程序主体是一个死循环,且是一个空循环体,所有处理的过程代码放在中断程序中。

六.实验小结实验五 数码管LED 实验一.实验目的1.理解8段数码管的基本原理(如图5-1和图5-2)。

2.理解8段数码管的显示和编程方法。

3.理解4连排共阴极8段数码管与MCU 的接线图(如图5-3)。

二.预习要求1.仔细阅读本实验指导书。

2.复习有关的定时器溢出中断的章节。

3.熟悉LED 的工作方法及编程。

4.根据实验内容要求编写好程序。

三.实验设备及其连接1.PC 机 一台 2.S12嵌入式开发系统 一台 3.串行通信线 一根 4.4连排共阴极8段数码管一个图5-2数码管外形图5-1 数码管 图5-3 MCU 与4连排8段数码管的连接a b c d e f g dp四.实验内容1.理解8段数码管原理。

合集下载

单片机实验指导书

单片机实验指导书

μVision2 支持所有的Keil 80C51 的工具软件,包括C51 编译器、宏汇编器、链接器/定位器、软硬件调试器和目标文件到HEX 格式文件转换器等,μVision2 可以自动完成编译、汇编、链接程序等操作。

μVision2 具有强大的软件环境、友好的操作界面和简单快捷的操作方法。

双击桌面上的Keil μVision2 快捷图标,可以进入如图1-1 所示的集成开发调试环境,各种调试工具、命令菜单都集成在此开发环境中。

菜单栏提供了各种操作菜单,如编辑器操作、工程维护、程序调试、窗体选择以及操作帮助等。

工具栏按钮和快捷键可以快速执行μVision2命令。

常用的菜单栏及相对应的工具栏按钮与快捷键介绍如表1-1~表1-6所列。

图1-1μVision2 集成环境界面表1-1 文件菜单和文件命令(File)表1-2 编辑菜单和编辑器命令(Edit)表1-3视图菜单(View)表1-4工程菜单和工程命令(Project)表1-5 调试菜单和调试命令(Debug)表1-6外围器件菜单(Peripheral)第2章单片机原理实验通过本章的实验,旨在使学生掌握Keil C51 的操作方法,学习80C51 的指令系统及汇编语言的程序设计方法。

2.1系统认识实验2.1.1实验目的1. 学习Keil C51 集成开发环境的操作;2. 熟悉TD-51 系统板的结构及使用。

2.1.2实验设备PC机一台2.1.3实验内容编写实验程序,将00H~0FH共16个数写入单片机内部RAM的30H~3FH空间。

通过本实验,学生需要掌握Keil C51软件的基本操作,便于后面的学习。

2.1.4实验步骤1. 创建Keil C51 应用程序在Keil C51 集成开发环境下使用工程的方法来管理文件,所有的源文件、头文件甚至说明性文档都可以放在工程项目文件里统一管理。

下面创建一个新的工程文件C51.Uv2,以此详细介绍如何创建一个Keil C51 应用程序。

16位单片机实验程序讲解

16位单片机实验程序讲解

16位单片机实验程序讲解1、用C实现发光二极管单向循环点亮//=============================================================== //// The information contained herein is the exclusive property of// Sunplus Technology Co. And shall not be distributed, reproduced,// or disclosed in whole in part without prior written permission.//// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.// ALL RIGHTS RESERVED//// The entire notice above must be reproduced on all authorized copies.////==============================================================// 工程名称:led1_C.scs// 功能描述: 用C实现发光二极管单向循环点亮// 文件来源:《61板实验教程》"实验一发光二极管单向循环点亮“// 硬件连接:IOA低8位接至SEG接口控制LED的导通// IOB6连至DIG7通过ULN2003A控制8个LED的共阴极电平状态。

// IDE环境:SUNPLUS u'nSPTM IDE 1.8.0//// 涉及的库:// 组成文件:// main.c//// 日期: 2004/8/16//===============================================================#define P_IOA_Data (volatile unsigned int *)0x7000#define P_IOA_Buffer (volatile unsigned int *)0x7001#define P_IOA_Dir (volatile unsigned int *)0x7002#define P_IOA_Attrib (volatile unsigned int *)0x7003#define P_IOB_Data (volatile unsigned int *)0x7005#define P_IOB_Buffer (volatile unsigned int *)0x7006#define P_IOB_Dir (volatile unsigned int *)0x7007#define P_IOB_Attrib (volatile unsigned int *)0x7008#define P_Watchdog_Clear (volatile unsigned int *)0x7012//=============================================================// 函数名称: Delay()// 日期:20040816// 功能描述: 实现延时// 语法格式: void Delay(void);//入口参数: 无// 出口参数: 无// 注意事项: 仅为用户模型//=============================================================void Delay(){ //延时子程序unsigned int i;for(i=0; i<32768; i++){*P_Watchdog_Clear=0x0001; //清WatchDog}}//=============================================================// 函数名称: int main()// 日期:20040816// 功能描述: 发光二极管单向循环点亮// 语法格式: void main(void);// 入口参数: 无// 出口参数: 无// 注意事项: 仅为用户模型//=============================================================int main(){int LedControl = 0x0001;*P_IOA_Dir = 0x00ff; //设置A口低8位为同向低输出*P_IOA_Attrib = 0x00ff;*P_IOA_Data = 0x0000;*P_IOB_Dir=0x0040; //设置B6口为高电平输出,保证LED共阴极接地*P_IOB_Attrib=0x0040;*P_IOB_Data=0x0040;while(1){*P_IOA_Data = LedControl; //送数据到A口LedControl = LedControl << 1;if(LedControl > 0x00FF)LedControl = 0x0001;Delay();}}//=============================================================// main.c 结束//=============================================================2、用C实现发光二极管双向循环点亮//=============================================================== //// The information contained herein is the exclusive property of// Sunplus Technology Co. And shall not be distributed, reproduced,// or disclosed in whole in part without prior written permission.//// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.// ALL RIGHTS RESERVED//// The entire notice above must be reproduced on all authorized copies.////==============================================================// 工程名称:led2_C.scs// 功能描述: 用C实现发光二极管双向循环点亮// 文件来源:《61板实验教程》"实验二发光二极管双向循环点亮“// 硬件连接:IOA低8位接至SEG接口控制LED的导通// IOB6连至DIG7通过ULN2003A控制8个LED的共阴极电平状态。

基于单片机的单通道16位数据采集系统设计

基于单片机的单通道16位数据采集系统设计

摘要:数据采集系统是指将温度、压力、流量、位移等工业现场的各种物理量通过传感器变为电信号,经过放大、A/D采样转化为数字量后,由单片机进行储存和显示。

数据采集系统主要由传感器、模拟信号调理电路、数据采集电路三部分组成。

本设计主要是利用单片机集成的ADC模-数转化器直接将采集到的模拟信号转化为数字信号。

讲述了整个系统的工作流程和工作原理。

将采集的数据经过放大器放大之后再进入A/D转换器,然后直接通过串口传送的单片机上,可以直接在LED端显示温度数据值并进行简单的数据处理。

关键词:单片机;传感器;数据采集;数据储存目录一、概述 (1)1.1 设计背景 (1)1.2 系统性能指标 (1)二、数据采集系统综述 (2)2.1 数据采集的意义与作用 (2)2. 2 数据采集系统的结构形式 (2)2. 3 数据采集系统的基本功能 (3)三、系统硬件设计 (3)3. 1 系统结构图 (3)3. 2 信号放大模块 (3)3. 3 A/D转化模块 (6)3. 4 单片机数据采集与控制模块 (7)3. 5 LED显示模块 (9)四、系统的总体电路 (9)五、系统的PCB图 (10)六、心得与体会 (10)参考文献 (12)一概论1.1 设计背景为了确切测量某一测试对象的各种特性数据,我们常常需要借助各种仪表和各种手段(直接测量或者遥测)来获取各种各样的测量数据。

但这些数据中通常含有大量的变化误差、设备误差以及在传输过程中(当采用遥测方式时)引入的各种干扰所造成的误差等。

而且这些数据量通常都会很大,有意义的部分和无意义的部分混杂在一起,如果不加取舍的直接应用,必然会造成极大的不便。

传统靠人工控制的温度、湿度、液压等信号的测量、力控系统,外围的电路比较复杂,而且测量的精度较低,分辨力不高,需要进行温度校准(非线性校准、温度补偿、传感器标定等);而且体积较大,使用不方便,更重要的是参数的设定是需要的有其它仪表的参与,外界设备多,成本高,因而越来越适应不了社会的要求。

《单片机原理及应用》实验指导书(C语言)

《单片机原理及应用》实验指导书(C语言)

《单片机原理及应用》实验指导书(C语言)《单片机原理及应用》实验指导书(C语言)某某大学物电学院微机教研室某某2022前言由于单片机具有高可靠性、超小型、低价格、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。

由于目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机,所以本实验指导书为学习MCS-51单片机的学生,配合《单片机原理及应用》课程的教学,结合本学院自制单片机教学实验板编写了这本实验指导书。

《单片机原理应用及》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设与计算机的连接,或者软硬兼施地研制单片机应用系统,不通过加强动手是不能获得预期效果的。

本实验指导书提供多个实验的指导性材料,有些实验还有一些有一定难度的选做项目,可以根据课时的安排和教学要求进行取舍。

为了达到某些实验的目的,书中提供的参考程序与实际应用中的程序会有些差别,所以不一定是最优的。

由于时间紧迫,需要赶课程进度与实验时间的同步,加上编者学识有限,如有不妥之处,欢迎读者批评指正。

实验须知1.实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备,编写好实验中要求自编或修改的程序;完成实验前要求完成的准备工作后方可以上机实验,否则不得上机操作。

2.各种电源的电压和极性不能接错,严禁带电接线和接插元器件。

通电前须经过指导教师检查认可后方能通电。

3.不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。

4.严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。

5.实验中若损坏仪器或元器件,应及时向指导教师报告。

6.在实验室内保持安静和卫生,不得随意走动和喧哗,集中精力完成实验。

7.实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。

单片机实验实验指导书

单片机实验实验指导书

目录实验一P1口输入、输出实验 (1)实验二P3口输出控制继电器实验 (4)实验三简单I/O实验(交通灯控制) (6)实验四外部中断实验(急救车与交通灯实验) (8)实验五定时器实验 (11)实验六8155输入输出实验 (13)实验七矩阵键盘实验 (15)实验八8279显示实验 (17)实验九串并转换实验 (20)实验十A/D转换实验 (22)实验十一步进电机控制实验 (24)实验十二D/A转换实验 (27)实验十三传送带控制系统综合实验 (29)实验十四机械手控制实验 (32)实验一 P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

延时时间500ms。

2.P1口做输入口,接八个开关,以74LS273作输出口,编写程序读取开关状态,将状态写入P0口,在发光二极管上显示出来。

二.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

三.实验电路及连接实验1-1电路图如下:图1.1实验1-2中:P1.0-P1.7接八个按钮K1-K8,P0.0-P0.7接八个发光二极管L1-L8。

四.实验说明1.P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止,因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响,若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对延时子程序DELAY: MOV R0,#00HDELAY1: MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ指令均需要两个机器周期,而一个机器周期时间长度为12/12MHZ(假设晶振频率是12MHZ),所以该段程序执行时间为:((0B3+1)*256+1)*2*12/12000000=100ms五.实验程序流程图实验要求1的程序框图:实验要求2的程序框图:图1.2 图1.3六、调试方法第一步:打开位于d:\单片机实验\实验一\1_1.uv2,进行实验1_1打开位于d:\单片机实验\实验一\1_2.uv2,进行实验1_2第二步:在资源管理器中如打开.src文件,在程序窗口中输入已编好的程序,保存。

MSP430系列十六位超低功耗单片机教学实验系统实验教程

MSP430系列十六位超低功耗单片机教学实验系统实验教程
另外,MSP430 系列单片机采用矢量中断,支持十多个中断源,并可以任意嵌套。用中断请求将 CPU 唤醒只要 6us,通过合理编程,既以降低系统功耗,又可以对外部事件请求作出快速响应。
在这里.需要对低功耗问题作一些说明。 首先,对一个处理器而言,活动模式时的功耗必须与其性能一起来考察、衡量,忽略性能来看功耗是 片面的。在计算机体系结构中,是用 W/MIPS(瓦特/百万指令每秒)来衡量处理器的功耗与性能关系的, 这种标称方法是合理的。MSP430 系列单片机在活动模式时耗电 250uA/MIPS,这个指标是很高的(传统 的 Mcs51 单片机约为 10~20mA/MIPS)。 其次,作为一个应用系统,功耗是整个系统的功耗,而不 仅仅是处理器的功耗。比如,在一个有多个输入信号的应用系统中,处理器输入端口的漏电流对系统的耗 电影响就较大了。MSP430 单片机输入端口的漏电流最大为 50nA,远低于其他系列单片机(一般为 l~10uA)。 另外,处理器的功耗还要看它内部功能模块是否可以关闭.以及模块活动情况下的耗电.比如低电压 监测电路的耗电等。还要注意,有些单片机的某些参数指标中.虽然典型值可能很小,但最大值和典型值 相差数十倍,而设计时要考虑到最坏情况,就应该关心参数标称的最大值,而不是典型值。总体而言, MSP430 系列单片机堪称目前世界上功耗最低的单片机,其应用系统可以做到用一枚电池使用 10 年。
MSP430 系列单片机有独特的时钟系统设计,包括两个不同的时钟系统:基本时钟系统和锁频环(FLL 和 FLL+)时钟系统或 DCO 数字振荡器时钟系统。由时钟系统产生 CPU 和各功能模块所需的时钟,并且这 些时钟可以在指令的控制下打开或关闭,从而实现对总体功耗的控制。由于系统运行时使用的功能模块不 同,即采用不同的工作模式,芯片的功耗有明显的差异。在系统中共有种活动模式(AM)和 5 种低功耗模式 (LPM0~LPM4)。

16位单片机 期末大作业实验报告

上海电力学院16位单片机实验报告实验名称:使用键盘中断、PWM及LED数码管的实验专业:姓名:班级:学号:一、实验目的使用使用键盘中断、PWM 及LED 数码管实现用键盘调整PWM 呼吸灯的渐变快慢,同时用LED 显示当前的速度级:1、PWM 占空比(如图1)。

2、16键键盘中断(如图2)。

图2键盘中断接线原理图3、8段LED 数码管(如图3)。

图3 LED 数码管结构图(a) 25%的占空比图1 PWM 占空比示意图时钟 PWM (b) 50%的占空比时钟PWM (c) 75%的占空比时钟PWM二、实验设备及其连接(一)、试验设备:1.PC机一台2.S12嵌入式开发系统一台3.导线九根4.小键盘一个5.4连排共阴极8段数码管一个(二)、设备连接:1.键盘采用手动接线,将键盘接入双排插孔下一排插孔;2.PTP0~3分别接键盘接线处的1~4;3.PTA0~3分别接5-8;4.8段数码管插到指定位置;5.小灯接PP7口。

三、实验内容1.在键盘中断主程序里添加PWM及LED的头文件(.h)及源文件(.c),并在键盘中断主程序main.c中添加PWM占空比小灯及LED显示程序:2.在中断程序isr.c中添加PWM占空比小灯及LED显示程序:3.运行程序并记录实验现象:四、程序展示1.添加头文件声明。

2.在main.c 中添加time 变量及LEDbuf[4]数组,其中time 用来改变PWM 渐变中的Delay 延时时间,LEDbuf 则用来显示每次按键改变的速度值:main.c 程序展示:#include "Includes.h" //包含总头文件//在此添加全局变量定义uint8 iii;uint8 period;uint8 duty;uint8 time=100;uint8 LEDbuf[4];//主函数void main(){//0.1 主程序使用的变量定uint32 mRuncount=0; //运行计数器//运行计数器//uint8 period,duty,time=10;//0.2 关总中断DisableInterrupt();//0.3 芯片初始化MCUInit(FBUS_32M);//0.4 模块初始化Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //RUN指示灯初始化为暗SCIInit(0,FBUS_32M,9600); //串口0初始化KBInit(); //键盘初始化PWMInit(7); //初始化PWM通道1 LEDInit();//Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //RUN指示灯初始化为暗//0.5 开放中断EnableSCIReInt0; //开放SCI0接收中断EnableKBint(); //开放键盘中断EnableInterrupt();DDRB=0xff;PORTB=0x00; //开放总中断period = 0xFF; //PWM周期duty=0x00;LEDbuf[0]='0'; //待显示数据0000LEDbuf[1]='0';LEDbuf[2]='0';LEDbuf[3]='0';// 主循环for(;;){ //int i,j,k;LEDShow(LEDbuf);// Light_Change(Light_Run_PORT,Light_Run); //指示灯的亮、暗状态切换//}//---------------------------------------------------------------------//2.通过占空比的变化来调节小灯的亮度for(duty=0;duty<0xff;duty++){PWMSetting(7,period, duty); //不断增加PWM的占空比LEDShow(LEDbuf);Delay(time);}//延时for(duty=0xff;duty>0;duty--){PWMSetting(7,period, duty); //不断增加PWM的占空比LEDShow(LEDbuf);Delay(time);}//延时}}3.在isr.c中添加对按键的判断,当按下按键时,缩短Delay延时使得小灯闪烁速度加快,同时改变LEDbuf数组的值使得LED显示当前的按键值(速度级)。

MSP430系列十六位超低功耗单片机教学实验系统实验教程

MSP430系列十六位超低功耗单片机教学实验系统实验教程MSP430系列十六位超低功耗单片机是德州仪器公司(TI)推出的一款高性能单片机,被广泛应用于嵌入式系统及物联网领域。

为了帮助初学者快速上手MSP430系列单片机,TI公司推出了MSP430系列十六位超低功耗单片机教学实验系统及相应的实验教程。

以下为一份MSP430系列十六位超低功耗单片机教学实验系统实验教程。

实验一:基础实验实验内容:1.学习MSP430系列单片机的基本特性和功能。

4.学习如何使用MSP430系列单片机的GPIO口进行输入输出控制。

实验步骤:2.安装MSP430-GCC编译器,并将其配置到系统环境变量中。

3.编写一个简单的程序,实现将MSP430系列单片机的GPIO口配置为输出模式,并输出高电平或低电平信号。

5.通过观察开发板上的LED灯是否亮起来,判断GPIO的输出是否成功。

实验二:时钟系统实验实验内容:1.学习MSP430系列单片机的时钟系统和时钟源。

2.学习如何配置和使用MSP430系列单片机的时钟系统。

实验步骤:1.配置MSP430系列单片机的时钟系统,选择合适的时钟源和时钟频率。

2.编写一个程序,实现在不同时钟频率下,通过GPIO口控制LED灯的闪烁频率。

实验三:定时器实验实验内容:1.学习MSP430系列单片机的定时器及其相关功能。

2.学习如何配置和使用MSP430系列单片机的定时器。

实验步骤:1.配置MSP430系列单片机的定时器模块,设置定时时间和定时器模式。

2.编写一个程序,实现定时器中断,当定时时间到达时,通过GPIO口控制LED灯的闪烁。

实验四:串口通信实验实验内容:1.学习MSP430系列单片机的串口通信模块和相关配置。

2.学习如何配置和使用MSP430系列单片机的串口通信功能。

实验步骤:1.配置MSP430系列单片机的串口通信模块,设置波特率和数据位数。

2.编写一个程序,实现通过串口发送字符串数据,并通过串口接收并显示接收到的数据。

单片机实验指导书2016

北京化工大学信息科学与技术学院单片机原理及应用实验指导书郭青2016年4月单片机实验指导书一、实验系统简介1.实验采用天祥电子公司的GTX TX-1D单片机实验箱。

2.实验板上单片机采用的是STC公司的STC89C52单片机作为主控模块,完全兼容AT89S52单片机,并配置有多种实验模块,可以通过连线将各模块有机结合,进行综合实验。

3.STC89C52可以在线编程,不需要频繁插拔,通过USB接口与PC机相连。

4.程序编译采用Keil C仿真编译系统,可进行编程以及程序编译,生成.OBJ以及.HEX目标文件5.编译完成的.HEX文件通过USB接口写入到实验板上的单片机中,即编程,并直接运行。

6.编程软件的文件名STC-isp V6.82E。

二、实验简要步骤1、启动运行环境正确连接实验系统,确认各个开关处于正确位置,打开实验机电源。

2、编程运行Keil C软件,建立工程,选择器件为STC89C52(如库中无STC MCU,可选择AT89C52),编写源程序,并添加到工程中,然后进行编译。

3、进行实验运行STC-ISP V6.82E软件,点击选择单片机芯片STC89C516RD+,点击打开程序文件,选择欲加载的.HEX文件,点击下载,将程序写入到单片机中,当写入完成后即自动运行。

4、观察并记录实验结果。

如现象不正确,返回第2步,修改源程序。

三、用户手册,电路原理图,工具软件等百度云盘: /s/1skFeFBv密码: 3xfk实验一、读程序存储器及简单I/O实验一、实验要求:1、P1口作输出口,接8只发光二极管,程序存储器的0500H~0509H单元依次存放着数字0~9的ASCII码,编程将其依次读出写入到内部RAM的30H~39H单元,并同时送P1口输出显示。

2、P1口作输出口,接8只发光二极管,编写程序,使发光二极管循环点亮。

二、实验目的1、熟悉实验系统的使用及调试方法。

2、学习80C51汇编语言程序编写。

单片机原理与应用实验指导书(含参考程序)

单片机实验实验说明:实验一和二做一次实验三和四做一次实验五和六分别做一次实验一 P1口实验一一、实验目的:1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

二、实验设备:EL-MUT-II型实验箱,8051CPU板三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。

四、实验原理:P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。

作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。

8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。

可以用第二个实验做一下实验。

先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。

再来看一下延时程序的实现。

现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。

在系统时间允许的情况下可以采用后一种方法。

本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。

现要写一个延时0.1s的程序,可大致写出如下:MOV R7,#X (1)DEL1:MOV R6,#200 (2)DEL2:DJNZ R6,DEL2 (3)DJNZ R7,DEL1 (4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH经计算得X=127。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档