ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:471.97KB ,
资源ID:2815665      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2815665.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整word版msp430单片机实验报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

完整word版msp430单片机实验报告.docx

1、完整word版msp430单片机实验报告 实 验 报 告 课程名称: 单片机原理及应用 实验题目: 实用多功能定时器 学生姓名: 谢照 学 号: 2014110144 专业班级: 自动化 二零一六 年 五 月 七 日一、课程实验目的 . 1二、实验要求. 1三、课程实验硬件电路. 23.1、硬件电路结构. 23.2、电路原理. 23.2.1、显示电路. 23.2.2、按键检测电路. 3四、实验步骤. 6五、软件设计. 65.1、倒计时主程序. 65.2、中断程序设计. 7六、调试与结论. 7七、附录. 8一、目的(1)熟练运用CCS开发环境和Proteus仿真软件,巩固和加深单片机原理课程知识

2、的理解和运用。(2)综合本学期所学的按键检测以及液晶的动态显示原理,设计出以MSP430G2553为核心的以LCD1602为显示的倒计时系统。(3)熟悉各元器件的性能和设置元件参数,进一步提高学生单片机应用系统的设计能力。 (4) 培养学生综合分析问题、发现问题和解决问题的能力。二、实验要求(1)设计一个倒计时器,定时范围99分60秒,用液晶作为显示器。4个按键控制,分别是分钟加一、秒钟加一、清零和开始停止键。按分钟加一键时,分钟显示值加1,最大99 ;按秒钟加一键时,秒钟显示值加1,最大60;按清零键时,分钟、秒钟显示值都清零;按开始键,则开始倒计时。显示值为零时停止倒计时,且报警器报警,直

3、到按停止键报警器停止报警。按开始键后,分钟加一、秒钟加一、清零键不起作用。按停止键可以暂停。倒计时为零后,按停止键,显示值恢复设定值,按开始键又可以工作。(2)总体要求如下:1、方案论证,确定总体电路原理图。 2、画硬件仿真电路图。3、绘制程序流程图,编写C语言源程序。4、安装调试,实现倒计时器的基本功能。三、硬件电路3.1、电路结构图:多功能定时器主要由三个最基本模块组成,一是以LCD1602液晶为基础的显示电路,二是以四个按键为核心的控制电路,三是以MSP430G2553为核心的信号发生电路。3.2、电路原理:3.2.1显示电路(1)LCD显示器是通过给不同的液晶单元供电,控制其光线的通过

4、与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过) (2)由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且还自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。 LCD1602采用标准的14引脚(无背光)或16引脚(带背光)接口,各引脚接口

5、说明如表:(3)LCD1602共有11条控制指令如表:3.2.2按键检测电路按键检测电路(1)单片机IO口独立按键检测原理:由电路原理图可以看出,按键的一端与电源地相连,另一端与单片机的P1口相连,这也就意味着当按键按下的时候与按键相连单片机IO口将被拉低,换句话说,当单片机检测到与按键相连的IO口被拉低就证明此按键被按下,那门我们将此功能上一个层次来说呢,按键就是一个人机接口。那么按键的操作并没有我们想象的“按下松开”那么简单,在实际应用中,手动操作需要消抖。(2)按键的消抖:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用,一个按键开关在

6、闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法。(3)按键按下产生的波形图(3)硬件与非消抖图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0

7、。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),只要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。(4)软件延时消抖如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms20ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms20ms的延时,待后沿抖动消失后才能转入该键的处理程序。本实验中采用软件延时消抖。四、实

8、验步骤: 1. 用Proteus设计1602液晶显示接口电路; 2. 在CCS中编写液晶显示控制语言程序,编译通过后,与Proteus联合调试; 3. 在Proteus中仿真模拟。 实验电路图:五、软件设计 5.1 倒时计器主程序 程序的的开始时先设定延时时间,检测按键是否按下,如果有按键按下,进入相应的按键处理函数。每当进入定时中断一次变量秒钟自动减一,当秒钟等于0时即为计时一分,此时分钟减一,秒钟重新赋初值,并且之前设定的倒计时初值自动减一,同时进行相关的显示5.2中断程序设计本程序以中断加查询的方法来检测按键是否按下,中断大约每秒钟查询一次,当有按键按下时,程序进入中断服务函数,清零中断

9、标志位,并进入按键查询函数,判断按键功能,然后执行相应的操作,达到设定时间和清零的效果。六、调试与结论调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。程序的调试应一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等.最后逐步将各子程序连接起来进行联调。本系统的程序的编写就是在CCS软件中用C语言完成的。在程序中用到了一个中断,为了使倒计时的时间准确,必须计算延时时间,当程序完成之后,生成HEX文件。再利用Proteus软件进行仿真。 经过仿真和测试,程序在运行时完全没有闪烁。在程序中,每一秒钟检测中断一次

10、,变量 秒自减。电路中的四个个按键可以分别用来设定倒计时的计数范围,经过测试与分析,此系统稳定可用,满足设计要求。附录:程序#include #include string.h#define uchar unsigned char#define uint unsigned intvoid P24_Onclick();void P25_Onclick();void P26_Onclick();void P27_Onclick();void display();void write_dat(uchar dat);void write_com(uchar com); /写命令函数#define CP

11、U_F (double)1100000)#define delay_us(x) _delay_cycles(long)(CPU_F*(double)x/1000000.0)#define delayms(x) _delay_cycles(long)(CPU_F*(double)x/1000.0)const uchar table1= TIME: ;const uchar table2=00:00;const uchar table3=0123456789;#define SET_RS P2OUT |= BIT0#define RST_RS P2OUT &= BIT0#define SET_RW

12、 P2OUT |= BIT1#define RST_RW P2OUT &= BIT1#define SET_E P2OUT |= BIT2#define RST_E P2OUT &= BIT2uchar const led_tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar key,flag=0;unsigned char disp_buf4;int fen =0,miao=0;void write_com(uchar com) /写命令函数 RST_RS; RST

13、_RW; P1OUT= com; SET_E; delay_us(1); RST_E;void write_dat(uchar dat) SET_RS; RST_RW; P1OUT=dat; SET_E; delay_us(1); RST_E;void system_Initial(void) P1DIR = 0xFF; P1SEL = 0x00; P1OUT = 0x00; P2IE |= (BIT4+BIT5+BIT6+BIT7); P2IES |= (BIT4+BIT5+BIT6+BIT7); P2IFG &=(BIT4+BIT5+BIT6+BIT7); /液晶初始化 P2DIR = B

14、IT0 + BIT1+ BIT2; RST_E; write_com(0x38); /设置16*2显示 ,5*7点阵,8位数据接口 delay_us(5); write_com(0x01); /显示清屏 delay_us(5); write_com(0x0C); /显示开关,光标设置 delay_us(5); write_com(0x06);/显示开关,光标设置 delay_us(5); _EINT();void P2_IODect() unsigned int Push_Key=0; Push_Key=P2IFG&(P2DIR); _delay_cycles(10000); if(P2IN&

15、Push_Key)=0) switch(Push_Key)/ case BIT0: P10_Onclick(); break;/ case BIT1: P11_Onclick(); break;/ case BIT2: P12_Onclick(); break;/ case BIT3: P13_Onclick(); break; case BIT4: P24_Onclick(); break; case BIT5: P25_Onclick(); break; case BIT6: P26_Onclick(); break; case BIT7: P27_Onclick(); break; de

16、fault: break; void P24_Onclick() if(flag = 1) flag=0; else flag = 1;void P25_Onclick() fen=0; miao=0; display();void P26_Onclick() fen+; display();void P27_Onclick() miao+; display();void display() unsigned char i; disp_buf3 = fen / 10; disp_buf2 = fen % 10; disp_buf1 = miao/ 10; disp_buf0 = miao% 10; write_com(0x80);/ 数据指针设置,第一行显示 delay_us(5); for(i=0;i 0) miao-; else do P4OUT = BIT0; delayms(1); while(flag=1); else if(miao 0) miao-; else miao = 59; fen -; display(); else display(); P4OUT &= BIT0; delayms(1000);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2