当前位置:文档之家› 单片机实验报告

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865姓名:冉靖指导教师:王文涛2014年 6月1日一. 以下是端口的各个寄存器的使用方式:1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。

2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。

3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。

4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。

5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。

6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。

7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。

8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。

9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。

二.实验相关电路图:1 MSP430F6638 P4 口功能框图:主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接:2按键模块原理图:我们需要设置两个相关的寄存器:P4OUT和P4DIR。

其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。

主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:3 LED指示灯模块原理图:P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器:#define P4IN (PBIN_H) /* Port 4 Input */#define P4OUT (PBOUT_H) /* Port 4 Output */#define P4DIR(PBDIR_H) /* Port 4 Direction */#define P4REN (PBREN_H) /* Port 4 Resistor Enable */三实验分析1 编程思路:关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。

程序流程图:2 关键代码分析:#include<msp430f6638.h>void main(void){WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗P4DIR |= BIT5; // 设置4.5口为输出模式P4OUT |= BIT0; // 选中P4.0为输出方式P4REN |= BIT0; // P4.0使能while (1) // Test P1.4{if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高P4OUT |= BIT5; //使P4.5置高elseP4OUT &= ~BIT5; // else reset}}四实验步骤与现象实验步骤:1. 将PC 和板载仿真器通过USB 线相连;2. 打开IAR 5.30集成开发工具,选择IAR Debug->Add->Add Files,导入所建文件夹中相应的工程文件;3.选择对该工程进行编译链接,生成编译文件。

然后选择将程序序下载到实验板中。

程序下载完毕之后,可以选择运行程序,也可以选择单步调试程序。

也可以程序下载之后,按下终止调试,软件界面恢复到原编辑程序的画面。

再按下实验板的复位键,运行程序。

实验现象按下S7 后,LED5 熄灭,松开后恢复点亮。

未按下S7时:按下S7时:松开手后,LED5又亮了。

Lab1-2 多个按键对LED灯的控制实验实验原理按键与LED 模块的电路连接在上一个实验中做过介绍,这里不再赘述,请阅读3.1.1.3 章节。

由于LED 灯不在同一个端口上,为了可以直接使用int 进行索引操作,程序中将IO 口的相关寄存器的地址声明为结构体并保存在数组中。

即首先声明了保存寄存器地址的结构:typedef struct{ const volatile uint8_t* PxIN;volatile uint8_t* PxOUT;volatile uint8_t* PxDIR;volatile uint8_t* PxREN;volatile uint8_t* PxSEL; } GPIO_TypeDef;之后声明所需操作的IO 端口的结构体GPIO4、GPIO5、GPIO8,如:const GPIO_TypeDef GPIO4 = { &P4IN, &P4OUT, &P4DIR, &P4REN, &P4SEL };const GPIO_TypeDef GPIO5 = { &P5IN, &P5OUT, &P5DIR, &P5REN, &P5SEL };const GPIO_TypeDef GPIO8 = { &P8IN, &P8OUT, &P8DIR, &P8REN, &P8SEL };程序分析编程思路设置各个引脚变量并且初始化,开启定时器XT1,然后循环检查按键是否按下,如果按下,就把IO 电平取反,并且延时100ms(此处用延时来确定了扫描频率)。

程序流程图:关键代码分析:宏定义和参数定义:typedefstruct//以指针形式定义P8口的各个寄存器{constvolatile uint8_t* PxIN; //定义一个不会被编译的无符号字符型变量volatile uint8_t* PxOUT;volatile uint8_t* PxDIR;volatile uint8_t* PxREN;volatile uint8_t* PxSEL;} GPIO_TypeDef;段式液晶显示参数对应关系:二实验分析1.编程思路在写程序操作段式液晶之前首先就是要先配置好系统时钟,即选为系统时钟配置合适的晶振,然后就是要配置好与段式液晶相连的IO 口,即确定相应IO 口的工作模式,再通过操作IO 口对段式液晶进行初始化,最后再通过控制IO 口使段式液晶显示出需要的信息来。

配置操作可直接读写MSP430f6638 内部LCD 驱动器相关寄存器来完成需设置P5.3,P5.4,P5.5 作为LCD 的COM 口,S0—S11 为LCD 的段选,清空LCD 寄存器,启动LCD 模块,配置相关的寄存器包括P5SEL、LCDBPCTL0、LCDBCTL0、LCDBMEMCTL、LCDBCTL0,寄存器详解可看文档介绍;显示过程首先确定位及其相应位的断码数据,即确定LCDMEM[x]的值,x 表示相应的位,可直接调用已有的液晶驱动函数来完成。

2.程序流程图:3.代码分析首先需要了解几个驱动函数的用法a) voidLCDSEG_SetDigit(intpos, int value);该函数的作用为在段式液晶的第pos位上显示数字value,其中1<=pos<=6,0<=value<=F,当value为-1时表示清除该位上数字的显示。

b) voidLCDSEG_DisplayNumber(int32_t num, intdppos);该函数的作用为在段式液晶上显示一个num的整数,dppos为小数点要显示的位置,0<=num<=999999,0<=dppos<=3,当dppos=0表示不显示小数点。

一实验原理本实验应用的是MSP430F6638 的IO 口中断,主板S7 上按键连接到P4.0 口,当S7 按键被按下时,P4.0 口电平由高变成低触发一个中断事件,然后在P4 口的中断函数中填写代码改变LED5 灯的状态。

按键模块原理图:LED指示灯模块原理图:二实验分析1.编程思路需要设置P4.5 口为输出状态以控制LED5 灯状态,还需要使能P4.0 口的上拉电阻,选择P4.0 口中断沿,使能中断,清中断标志位,然后进入等待状态,最后再写一个P4 口的中断服务函数,在函数中改变LED5灯的点亮状态。

当有按键被按下既产生了中断事件,程序转向中断服务函数并改变LED5灯的状态。

用到的寄存器有P4DIR、P4REN、P4OUT、P4IES、P4IFG、P4IE。

<msp430f6638.h>)WDTCTL = WDTPW + WDTHOLD; //关闭看门狗三实验步骤与现象实验步骤:1.打开开发软件IAR,创建一个MSP430f6638 的空工程;2.完成以上代码的编写;3.将代码编译下载到开发板中运行,将开发板上P17的1.0和4.5的两个接头分别用两根线连接,再将两根导线的另一端接触,观察LED5 灯灭状态。

实验现象:实验一ADC转换实验一实验原理模数转换器(ADC)是指将连续的模拟信号转换为离散的数字信号的器件。

真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。

在A/D 转换中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是离散量,所以进行转换时只能按一定的时间间隔对输入的模拟信号进行采样,然后再把采样值转换为输出的数字量。

实验中通过旋转拨盘电位器(R13)改变ADC 端输入电压,然后依据电压高低分为几档通过LED1~LED5 显示出来。

拨盘电位器模块电路原理图:二程序分析1.编程思路熟悉了MSP430F6638 中的ADC12 模块原理之后便可对其控制寄存器进行配置,设计采样模式,时刻得到电位器的输出端电压值。

并通过其大小,设定范围从而来控制LED 灯的亮灭。

2.程序流程图4.实验步骤与现象实验步骤1. 根据编程思路设计结构与实现方法。

2. 按照流程图实现代码编写,并在编译器上进行编译改错。

3. 将程序烧入开发板中进行调试与检测。

4. 通过调节电位器查看LED 灯的变化是否符合设计要求。

实验现象实验二DAC 实验一实验原理数模转换模块(DAC)数模转换是将数字量转换为模拟电量(电流或电压),使输出的模拟电量与输入的数字量成正比。

实现这种转换功能的电路叫数模转换器(DAC)。

D/A 转换器基本上由4 个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。

数字量以串行或并行方式输入、存储于数字寄存器中,数字寄存器输出的各位数码,分别控制对应位的模拟电子开关,使数码为1 的位在位权网络上产生与其权值成正比的电流值,再由求和电路将各种权值相加,即得到数字量对应的模拟量。

DAC 模块电路原理图:T2为DAC的外接输出端口,对应于P7.6,输出电压最大值为VCC,最小值为GND。

相关主题