《msp430电子表.ppt》由会员分享,可在线阅读,更多相关《msp430电子表.ppt(35页珍藏版)》请在三一文库上搜索。
1、设计简易电子表,枣庄科技职业学院 林宏伟,能力目标,能够用单片机和数码管设计简单的数字时钟 能对单片机定时器进行设置 能将时间数据用数码管显示 能用按键调节时间值,主要内容,定时方法 单片机定时器定时 软件计数定时 显示方法 8位数码管动态显示 调节方法 按键长短按调时间,时间基准,1.利用单片机定时器提供时间基准 需要提供2ms基准。 2.软件计数得到秒、分钟、小时基准 比如计数2毫秒500次,得到1秒基准。,时间基准设置,1. 标准振荡频率 (1)利用基本定时器设置1MHz频率,即1秒振荡1百万次,振荡一次用时1微秒。 (2) 用TA定时器将振荡频率4分频,使定时器计数1次用时4微秒。 2
2、. 计数定时 (1)利用TA定时器增计数模式,计数4微秒500次中断得到2毫秒基准。 (2)利用软件计数方式,计数2毫秒500次得到1秒。,时间变换,1.秒数据 秒个位每秒加1,大于9清零; 秒十位每10秒加1,大于5清零; 2.分数据 分个位每分(60s)加1,大于9清零; 分十位每10分加1,大于5清零; 3.小时数据 小时个位每小时加1,在小时十位为2时,大于3清零,同时小时十位清零,其余大于9清零。,时间显示,1. 将时、分、秒当前值存入时间数组 2. 每2毫秒轮流显示一位数据,不停循环。 利用数码管的余辉及人眼的视觉暂留效应,各位数据看起来像是同时显示。,基本定时器设置,/设置:SM
3、CLK = DCO = 1MHz DCOCTL = CALDCO_1MHZ; BCSCTL1 = CALBC1_1MHZ; /,定时器TA设置,/选择计数时钟为SMCLK,并将其4分频,计数器TAR清零 TACTL|=TASSEL_2+ID_2+TACLR; TACTL |= MC_1; /选择Timer_A为增计数模式 CCTL0|=CCIE; /使能定时中断 CCR0=500; /2ms计数值,时间变换,if(+timet499)/到1s,时间变化 timet=0; miao_ge+; if(miao_ge9) miao_ge=0; miao_shi+;/秒十位变 if(miao_shi5
4、) miao_shi=0; fen_ge+; if(fen_ge9),显示编程,按位选通,送段码。 HC595_in(segcodeshijiani);/传送显示段码 HC595_in(bitcodei);/选通相应显示位 HC595_out();/同时输出段显和位选数据,定时器TA的控制寄存器,TACTL:控制寄存器 (Timer_A control) TACCTL:捕获 / 比较控制寄存器(Timer_A capture/compare control),Timer_A,TACTL, Timer_A Control Register,Timer_A,输入时钟源选择(Clock Source
5、 Select) TASSEL1,TASSEL0 选择定时器输入分频器的输入时钟源,快捷宏定义:TASSEL_0,TASSEL_1,TASSEL_2,TASSEL_3 。,Timer_A,输入分频选择(In Divider) 由ID1和ID0选择分频系数将输入信号分频,分频后的信号采用于计数器计数。,Timer_A,Timer Mode Control Timer_A 定时器共有4 种工作模式,由控制寄存器TACTL 中MC1、MC0 两位决定。,快捷宏定义:MC_0,MC_1,MC_2,MC_3 。,Timer_A,增计数模式 定时器重复计数从零到TACCR0值 当 MC1=0 ,MC0=1
6、( 快捷宏MC_1)时定时器工作在增计数模式。 该模式用于定时周期小于65536的连续计数方式。捕获/比较寄存器CCR0 的数据定义定时器的计数周期。 增计数模式的计数器活动规则:当计数器TAR 增计数到CCR0 的值定时器复位,并从“0”开始重新计数。,0FFFFh,TACCR0,Timer_A,下图说明了增计数模式的计数过程。当定时器的值等于CCR0 的值时,设置标志位CCIFG0 为“1”,而当定时器从CCR0 计数到“0”时,设置标志位TAIFG 为“1”。,时间t,TAR计数值,Timer_A,TACCTLx, Capture/Compare Control Register,Tim
7、er_A,CCIE Bit 4 Capture/compare interrupt enable. This bit enables the interrupt request of the corresponding CCIFG flag. 0 Interrupt disabled 1 Interrupt enabled CCI Bit 3 Capture/compare input. The selected input signal can be read by this bit. OUT Bit 2 Output. For output mode 0, this bit directl
8、y controls the state of the output. 0 Output low 1 Output high COV Bit 1 Capture overflow. This bit indicates a capture overflow occurred. COV must be reset with software. 0 No capture overflow occurred 1 Capture overflow occurred CCIFG Bit 0 Capture/compare interrupt flag 0 No interrupt pending 1 I
9、nterrupt pending,Timer_A,TA0中断函数格式 #pragma vector =TIMERA0_VECTOR _interrupt void Timer_A(void) ,Timer_A,TA定时器设置: 首先 、选择输入信号来源 其次、 选择工作模式 最后、 设定比较值 开启中断、启动定时器等待时间的到达。,比较方式( Compare Mode , CAP=0 ) 主要应用: 产生 PWM 等定制输出信号; 定时输出:在指定时间间隔结束后产生输出; 定时中断:在指定时间间隔结束后产生中断。 工作原理:当 TAR 计数到 TACCRx 时 置位中断标志 CCIFG; 内部
10、信号 EQUx=1; 根据输出方式输出相应的信号。,当 TAR 计数到 TACCRx 的值的时候: 内部信号 EQUx=1; 置位中断标志 TACCRx CCIFG; CCI 被锁存入 SCCI 中; 根据输出方式输出相应的信号(参见输出电路),TA 比较电路 ( CAP=0 ),Timer_A 中断,与 Timer_A 模块有关中断有两大类: TACCR0 中断: TACCR0 CCIFG,独享中断向量,在 0FFECh 中 TAIV 中断: TACCR1 CCIFG TACCR2 CCIFG 共享中断向量,在 0FFEAh 中 TAIFG,Timer Block 定时器模块,CCR0 捕捉
11、/比较 模块0,CCR1 捕捉/比较 模块1,CCR2 捕捉/比较 模块2,TAIFG,TACCR1 CCIFG,TACCR2 CCIFG,TACCR0 CCIFG,共享同一个 中断向量,独享一个 中断向量,TAIV 中断,TACCR0 中断,TAIV中断( 3 种中断,共享同一个中断向量),TAIV中断的中断向量偏移(= TAIV寄存器的值),TACCR1 、TACCR2 和 TAIFG 的 中断向量(中断入口地址) TACCR1 的中断向量 = TAIV Interrupt Vector + 02h TACCR2 的中断向量 = TAIV Interrupt Vector + 04h TAIFG 的中断向量 = TAIV Interrupt Vector + 0Ah 其中: TAIV Interrupt Vector = 0FFEAh 0FFEBh中的值,TAIV中断的中断向量偏移 (= TAIV寄存器的值),定时中断扫描法实现机械按键长短键识别,对于前后台程序,事件的发生就有对应解决方案。 长度按键事件的判断不仅与当前输入(事件)有关,还与之前的“积累效应”(状态)有关。 这类非常普遍事件的检测需要用到传说中的“状态机”。,30,状态机的建模方法,32,状态中判断事件,33,事件中查询状态,34,授课结束,谢谢!,
链接地址:https://www.31doc.com/p-2977074.html