东南大学MCU第五六次实验(共16页)_第1页
东南大学MCU第五六次实验(共16页)_第2页
东南大学MCU第五六次实验(共16页)_第3页
东南大学MCU第五六次实验(共16页)_第4页
东南大学MCU第五六次实验(共16页)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东南大学自动化学院(xuyun)实 验 报 告课程名称: MCU技术(jsh)及课程设计 第 三 次实验(shyn)实验五:键盘扫描实验实验六:ADC 模数转换院 (系): 自动化 专 业: 自动化 姓 名: 学 号: 实 验 室: 实验组别: 同组人员: 实验时间: 2015年 5 月 14日评定成绩: 审阅教师: 实验(shyn)五 键盘扫描(somio)实验实验目的(md)和要求1. 实验目的不论在任何机器上,输入永远是一个永恒的问题,有了输入才能让控制器按要求发出相应的控制指令,达到相应的控制效果,本次实验将会介绍实验箱上自带键盘的输入内容。2. 实验要求 按下目标板KeyBoard上

2、的按键,最右边的LED数码管显示对应数字。实验原理(1) 矩阵键盘的读取如图 5-1 所示,该键盘为 8*3bit。图 5-1 矩阵键盘读取示意图一旦有按键按下,TM1638 中相关的寄存器的值就会改变(按键按下时相应字节由 0 变1),具体对应关系如图 5-2 所示。(键盘不全,没有加、减、等于、AC 等几个键)图 5-2 按键(n jin)对应关系图MSP430f6638 试验箱按键对应(duyng)关系为图 5-3 所示。图 5-3 MSP430f6638 试验箱按键对应(duyng)关系图图 5-3 MSP430f6638 试验箱按键对应关系图 注意: 1) 键盘用坐标形式表示,空白位

3、表示本开发板暂未用到。2) TM1638 最多可以读 4 个字节,不允许多读。读数据字节只能按顺序从BYTE1-BYTE4 读取,不可跨字节读。例如:硬件上的 K2 与 KS8 对应按键按下时,此时想要读到此按键数据,必须需要读到第 4 个字节的第 5BIT 位,才可读出数据。 3) 当 K1 与 KS8,K2 与 KS8,K3 与 KS8 三个按键同时按下时,此时 BYTE4所读数据的 B4,B5,B6 位均为 1。 4) 组合键只能是同一个KS,不同的K引脚才能做组合键;同一个K与不同的KS引脚不可以做成组合键使用。5) 例如:如果 Keyboard 的按键1按下,根据图 5-3,我们可以

4、从读取按键值,程序实现参考:unsigned char c4; /对应BYTE1-BYTE4 unsigned int key_value=0 x00; /暂存TM1638读取的按键值 unsigned int i; STB_high; STB_low; TM1638_Write(0 x42); /写地址 _delay_us(1); for(i=0;i4;i+) ci=TM1638_Read(); /读取按键值 STB_high; if(c0&BIT2) /根据图5-3判断读取的按键 key_value |= BIT1; /如果(rgu)是,则判断(pndun)为按键1按下 下面(xi mia

5、n)给出 TM1638.c 中 read_key 主体函数,编写自己的 main 函数调用read_key 来实现所需功能。 unsigned char Read_key(void) unsigned char c4; unsigned int key_value=0 x00; unsigned int i; STB_high; STB_low; TM1638_Write(0 x42); _delay_us(1); for(i=0;i4;i+) ci=TM1638_Read(); STB_high; if(c0&BIT2) key_value |= BIT1; else if(c0&BIT6)

6、 key_value |= BIT4; else if /此处编写对应按键关系判断 for(i=0;i16;i+) if(0 x01i)=key_value) break; return i; 实验方案与实验步骤1. 实验流程图2. 实验(shyn)步骤(bzhu)(1) 将PC与开发板相连(xin lin);(2) 建立CCS工程;(3) 选择对该工程进行编译链接,生成.out 文件。然后选择 ,将程序下载到实验板中。程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择 F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程

7、序。实验设备与器材配置德研电科 MSP430F6638 单片机 上海德研电子科技有限公司 Code Composer Studio (CCStudio)集成开发环境 上海德研电子科技有限公司实验记录显示数字: 显示(xinsh)字母(zm): 按下”AC”+”-”=”时点亮LED灯:实验(shyn)总结实验(shyn)最初版代码并不能保持数字(shz)的显示,即按下键盘上的数字时,数码管显示,手松开时,数码管显示”0”,后在代码中加入延迟后解决该问题,程序能够顺利运行。附上源代码#include #include TM1638.hconst uint8_t Num16=0 x3F,0 x06,

8、0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71;/段码const uint8_t Addr8=0 x08,0X0a,0X0c,0X0e,0X00,0X02,0X04,0X06;/地址const uint8_t Key20=0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08,0 x09,0 x0a,0 x0b,0 x0c,0 x0d,0 x0e,0 x0f,0 x10,0 x11,0 x12,0 x13;/0-9,a-f,

9、+,-,=,ACint read_key(void);/只显示(xinsh)一个数码管void main(void) WDTCTL = WDTPW + WDTHOLD;/ Stop watchdog timer P4DIR |= BIT4+BIT5+BIT6;/+,-,=,ac P4OUT &= 0X87; P3DIR |= BIT2+BIT4+BIT5; init_TM1638(); int key_value=0; int key_value_p=0; int i=0; while(1) key_value=read_key(); for(i=0;i20;i+) if(key_value=

10、Keyi) key_value=i; if(key_value=0) Write_DATA(Addr7,Numkey_value); if(key_value=0 x20) Write_DATA(Addr7,Numkey_value_p); switch (key_value) case 16:P4OUT &= 0X87;P4OUT |= BIT4;break;/+ case 17:P4OUT &= 0X87;P4OUT |= BIT5;break;/- case 18:P4OUT &= 0X87;P4OUT |= BIT6;break;/= case 19:P4OUT &= 0X87;P4O

11、UT |= BIT6+BIT5+BIT4;break;/AC default:P4OUT &= 0X87;break; if(key_value!=0 x20) key_value_p=key_value; 实验(shyn)六 ADC 模数转换实验目的(md)和要求1. 实验(shyn)目的(md)在 MSP430 的实时控制和智能仪表等应用系统中,控制或测量对象的有关变量,往往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量。利用传感器把各种物理信号测量出来,转换为电信号,经过模数转换(ADC)变成数字量,这样才能被MSP430处理和控制。本实验通过ADC将电位器的变化实时显示在 L

12、ED 上。 (1) 掌握ADC的基本原理和编程方式。 (2) 熟练应用MSP430F6638的ADC12模块及其4种工作模式。 (3) 了解单片机如何进行数据采集。2. 实验要求 (1) 调节电位器,观察实验板上的 LED 数码管显示。随着电位器的转动,LED 数码管实时显示电位器电压的转换值。采用ADC中断方式实现。 (2) 输入模拟电压的转换结果满足公式: NADC=4095(Vin VR-)/(VR+ - VR-)。 (3) 本实验推荐使用万用表,观察电位计中间引脚对地电压。 (4) 为了增强转换结果的稳定性,采用均值滤波的方法,即某一时刻的电压值采用该时刻位置前推n个采样值的均值来表示

13、,而不是直接用当前的采样值。本实验中推荐n=8.实验原理(1) 实验板主控芯片MSP430F6638的ADC12模数转换模块支持12位精度模数转换,主要由具有采样与保持功能的12位转换器内核、采样选择控制、参考电压发生器以及16个字转换控制缓冲区组成。(2) ADC12提供4种转换模式,分别是单通道单次转换、序列通道多次转换、单通道多次转换、序列通道多次转换。(3) ADC12转换器使用流程1.设置转换模式。2.输入模拟信号。3.选择启动信号。4.关注转换结束信号。5.存放转换数据以及采用查询或者中断方式读取数据。(4) ADC的中断向量和中断机制ADC12是一个多源中断:有18个中断标志(A

14、DC12IFG0ADC12IFG15与ADC12TOV,ADC12OV),但是只有一个中断向量,这18个中断标志的优先级顺序与对应的中断向量值见表6-1。表 6-1 ADC12 个中断标志(biozh)位对应的 ADC12IV 值优先级顺序从高到低依次为:数据溢出(y ch)标志ADC12OVIFG,时间(shjin)溢出中断标志ADC12TOVIFG,转换存储器的标志ADC12IFG0,ADC12IFG1ADC12IFG15。各中断标志将产生一个036的偶数,0表示没有中断或没有中断标志位置位;其他数字(236)对应于相应中断标志位。其中ADC12OVIFG和ADC12TOIFG会自动复位,

15、ADC12IFGx需在用户软件中复位,或通过访问对应转换存储器ADC12MEMx的标志位自动复位。(5) ADC12模块的硬件电路结构如图6-1所示,开发板接口位置如图6-2所示,其中P6.6为ADC采样的输入信号,该接口已经连接到电位计输出口,我们可以通过开发板上TP16进行观察测试。图 6-1 ADC12模块硬件电路图相关引脚定义:图6-2 开发板上ADC模块接口实验(shyn)方案与实验步骤1. 实验(shyn)流程图2. 实验(shyn)步骤(bzhu)(1) 将PC与开发板相连;(2) 建立CCS工程;(3) 选择对该工程进行编译链接,生成.out 文件。然后选择 ,将程序下载到实验

16、板中。程序下载完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择 F3 查看具体函数。也可以程序下载之后,按下,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程序。实验设备与器材配置德研电科 MSP430F6638 单片机 上海德研电子科技有限公司 Code Composer Studio (CCStudio)集成开发环境 上海德研电子科技有限公司实验(shyn)记录转动(zhun dng)电位器,数码管显示不同(b tn)数值(最小为0,最大为2.499): 实验总结程序能够顺利运行。思考题或讨论题(1) ADC的参考电压如何进行选择?(2) ADC的四种工作状态有何异

17、同? (3) ADC的中断机制如何实现? (4) 本文的编程涉及到整数的显示问题,如何在 LED 上一位位显示? 提示:采用除 10 取余数的方法,例如 2048,则有 Num0 = 2048 % 10 = 8; Num1 = (2048 / 10) % 10 = 4; Num2 = (2048/ 100) % 10 = 0; Num2 = (2048/ 1000) % 10 = 2; 然后显示 2,0,4,8 四个数字即可。 (5) 如何启动转换?如何判断转换是否结束? (6) ADC 采样时,采用此前时刻多个采样值的平均值作为当前值,即均值滤波方法的意义何在?附上源代码#include #

18、include TM1638.hunsigned int result;unsigned int Val4;int i;int temp = 0;double tmp;int ind = 0;const uint8_t Num16 = 0 x3F, 0 x06, 0 x5B, 0 x4F, 0 x66, 0 x6D, 0 x7D, 0 x07, 0 x7F, 0 x6F, 0 x77, 0 x7C, 0 x39, 0 x5E, 0 x79, 0 x71; /段码const uint8_t Addr8 = 0 x08, 0 x0a, 0 x0c, 0 x0e, 0 x00, 0 x02, 0 x04, 0 x06; /地址(dzh)void main(void)WDTCTL = WDTPW+WDTHOLD; / Stop WDTP3DIR |= BIT2 + BIT4;init_TM1638();P6SEL |= BIT6;ADC12CTL0 = ADC12ON + ADC12SHT0_2 + REFON + ADC12REF2_5V;ADC12CTL1 = ADC12SHP;ADC12MCTL0 = ADC12SREF_0 + ADC12INCH_6;/ADC12IE = BIT6;for (i = 0;i 0 x3600

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论