重庆理工大学实验报告课程汇编语言程序设计题目流水灯变频闪烁实验院系名称计算机科学与工程学院班级115030703学生姓名郭鑫学号11503070310任课教师但远宏时间2016-11-17重庆理工大学实验报告汇编语言程序设计20实验任务描述编程实现8个LED灯不停的明暗交替闪烁,其中闪烁的频率可以实现用户控制,其中,当用户按下独立按键K3(P35)时闪烁频率提高,按下K4(P34)时闪烁频率降低。相关要求如下:(1)以查询方式实现P35和P34端口状态的电平输入感知(2)以定时器实现LED灯的闪烁定时控制,以查询方式处理定时器的溢出事件。(3)定时器的定时长度(或者累计定时溢出次数)由按键P35和P34的输入进行调整,从而实现用户对闪烁频率的控制。重庆理工大学实验报告汇编语言程序设计31定时器工作原理分析1.1定时\计数器总体结构框图1.2TCON和TMOD寄存器详解一、TMOD工作方式寄存器工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。位符号GATEC/TM1M0GATEC/TM1M0GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;C/T:定时/计数模式选择位。=0为定时模式;=1为计数模式。M1M0:作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。二、TCON定时/计数器控制寄存器TCON的低4位用于控制外部中断。TCON的高4位用于控制定时/计数器的启动和中断申请。位符号TF1TR1TF0TR0IE1IT1IE0IT0TF1:T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1:T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件重庆理工大学实验报告汇编语言程序设计4置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0:T0溢出中断请求标志位,其功能与TF1类同。TR0:T0运行控制位,其功能与TR1类同。1.3定时器初值计算方法详解晶振11.0592M。1.按定时时间的计算公式,计算出定时器的时间常数X:定时时间T=(2的N次方-X)12/单片机晶振频率1.N为定时器的工作方式:方式0时,N=13方式1时,N=16方式2时,N=83.根据定时时间和工作方式,计算出时间常数X把X转换成二进制数,高8位送给TH1,低8位送给TL1,就可以启动定时器开始定时。重庆理工大学实验报告汇编语言程序设计52程序设计与实现2.1总体程序设计思路与流程重庆理工大学实验报告汇编语言程序设计62.2用户按键感知与频率调节程序循环中I/O口检测到低电平,开始执行加速或减速模块。默认亮或灭需要计时器溢出20次。通过改变计数器溢出次数来控制闪烁频率。再加速模块中,要保证最少循环5次,不能让循环次数为0。2.3定时器初始化、查询定时溢出处理程序、LED灯控制等定时器默认一秒亮灭一次。初始为4c00,循环20次执行一次亮灭。重庆理工大学实验报告汇编语言程序设计7查询溢出,当溢出时TF0为1,检测TF0,达到查询溢出的目的。用count来计数溢出次数,每次溢出,给定时器附上初值。当count达到要求,P0取反,完成一次亮或灭。