您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > msp430单片机实验报告
0实验报告课程名称:单片机原理及应用实验题目:实用多功能定时器学生姓名:谢照学号:2014110144专业班级:自动化二零一六年五月七日1目录一、课程实验目的...................................................................................1二、实验要求..............................................................................................1三、课程实验硬件电路.............................................................................23.1、硬件电路结构....................................................................................23.2、电路原理............................................................................................23.2.1、显示电路.........................................................................................23.2.2、按键检测电路.................................................................................3四、实验步骤..............................................................................................6五、软件设计..............................................................................................65.1、倒计时主程序.....................................................................................65.2、中断程序设计......................................................................................7六、调试与结论..........................................................................................7七、附录........................................................................................................82一、目的(1)熟练运用CCS开发环境和Proteus仿真软件,巩固和加深单片机原理课程知识的理解和运用。(2)综合本学期所学的按键检测以及液晶的动态显示原理,设计出以MSP430G2553为核心的以LCD1602为显示的倒计时系统。(3)熟悉各元器件的性能和设置元件参数,进一步提高学生单片机应用系统的设计能力。(4)培养学生综合分析问题、发现问题和解决问题的能力。二、实验要求(1)设计一个倒计时器,定时范围99分60秒,用液晶作为显示器。4个按键控制,分别是分钟加一、秒钟加一、清零和开始停止键。按分钟加一键时,分钟显示值加1,最大99;按秒钟加一键时,秒钟显示值加1,最大60;按清零键时,分钟、秒钟显示值都清零;按开始键,则开始倒计时。显示值为零时停止倒计时,且报警器报警,直到按停止键报警器停止报警。按开始键后,分钟加一、秒钟加一、清零键不起作用。按停止键可以暂停。倒计时为零后,按停止键,显示值恢复设定值,按开始键又可以工作。(2)总体要求如下:1、方案论证,确定总体电路原理图。2、画硬件仿真电路图。3、绘制程序流程图,编写C语言源程序。4、安装调试,实现倒计时器的基本功能。3三、硬件电路3.1、电路结构图:多功能定时器主要由三个最基本模块组成,一是以LCD1602液晶为基础的显示电路,二是以四个按键为核心的控制电路,三是以MSP430G2553为核心的信号发生电路。3.2、电路原理:3.2.1显示电路(1)LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)(2)由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且还自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。LCD1602采用标准的14引脚(无背光)或16引脚(带背光)接口,各引脚接Msp430g2553信号发生电路按键检测报警电路液晶显示电路4口说明如表:(3)LCD1602共有11条控制指令如表:3.2.2按键检测电路按键检测电路5(1)单片机IO口独立按键检测原理:由电路原理图可以看出,按键的一端与电源地相连,另一端与单片机的P1口相连,这也就意味着当按键按下的时候与按键相连单片机IO口将被拉低,换句话说,当单片机检测到与按键相连的IO口被拉低就证明此按键被按下,那门我们将此功能上一个层次来说呢,按键就是一个人机接口。那么按键的操作并没有我们想象的“按下松开”那么简单,在实际应用中,手动操作需要消抖。(2)按键的消抖:通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如下图。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。按键的抖动,可用硬件或软件两种方法。(3)按键按下产生的波形图6(3)硬件与非消抖图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为1;当键按下时,输出为0。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),只要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。(4)软件延时消抖如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms~20ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~20ms的延时,待后沿抖动消失后才能转入该键的处理程序。本实验中采用软件延时消抖。四、实验步骤:1.用Proteus设计1602液晶显示接口电路;2.在CCS中编写液晶显示控制语言C程序,编译通过后,与Proteus联合调试;3.在Proteus中仿真模拟。实验电路图:7五、软件设计5.1倒时计器主程序程序的的开始时先设定延时时间,检测按键是否按下,如果有按键按下,进入相应的按键处理函数。每当进入定时中断一次变量秒钟自动减一,当秒钟等于0时即为计时一分,此时分钟减一,秒钟重新赋初值,并且之前设定的倒计时初值自动减一,同时进行相关的显示5.2中断程序设计本程序以中断加查询的方法来检测按键是否按下,中断大约每秒钟查询一次,当有按键按下时,程序进入中断服务函数,清零中断标志位,并进入按键查询函数,判断按键功能,然后执行相应的操作,达到设定时间和清零的效果。六、调试与结论调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。程序的调试应一个模块一个模块地进行,首先单独调试各功8能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等.最后逐步将各子程序连接起来进行联调。本系统的程序的编写就是在CCS软件中用C语言完成的。在程序中用到了一个中断,为了使倒计时的时间准确,必须计算延时时间,当程序完成之后,生成HEX文件。再利用Proteus软件进行仿真。经过仿真和测试,程序在运行时完全没有闪烁。在程序中,每一秒钟检测中断一次,变量秒自减。电路中的四个个按键可以分别用来设定倒计时的计数范围,经过测试与分析,此系统稳定可用,满足设计要求。9附录:程序#includeMSP430f249.h#includestring.h#defineucharunsignedchar#defineuintunsignedintvoidP24_Onclick();voidP25_Onclick();voidP26_Onclick();voidP27_Onclick();voiddisplay();voidwrite_dat(uchardat);voidwrite_com(ucharcom);//写命令函数#defineCPU_F((double)1100000)#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))#definedelayms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))constuchartable1[]=TIME:;constuchartable2[]=00:00;constuchartable3[]=0123456789;#defineSET_RSP2OUT|=BIT0#defineRST_RSP2OUT&=~BIT0#defineSET_RWP2OUT|=BIT1#defineRST_RWP2OUT&=~BIT1#defineSET_EP2OUT|=BIT2#defineRST_EP2OUT&=~BIT2ucharconstled_tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharkey,flag=0;unsignedchardisp_buf[4];intfen=0,miao=0;voidwrite_com(ucharcom)//写命令函数{RST_RS;RST_RW;P1OUT=com;SET_E;delay_us(1);10RST_E;}voidwrite_dat(uchardat){SET_RS;RST_RW;P1OUT=dat;SET_E;delay_us(1);RST_E;}voidsystem_Initial(void){P1DIR=0xFF;P1SEL=0x00;P1OUT=0x00;P2IE|=(BIT4+BIT5+BIT6+BIT7);P2IES|=(BIT4+BIT5+BIT6+BIT7);P2IFG&=~(BIT4+BIT5+BIT6+BIT7);//液晶初始化P2DIR=BIT0+BIT1+BIT2;RST_E;write_com(0x38);//设置16*
本文标题:msp430单片机实验报告
链接地址:https://www.777doc.com/doc-4305868 .html