手把手教你学单片机--51基础(C语言)金沙滩工作室作者:宋雪松第五课:定时器与数码管基础逻辑运算&&:逻辑与,F=A&&B都为真则是真||:逻辑或,F=A||B任意一个为真则为真!:逻辑非,F=!A0b110011000b11110000&:按位与F=A&B0b11000000|:按位或F=A|B0b11111100~:按位取反F=~A0b00110011^:按位异或F=A^B0b00111100相异为1定时器和计数器时钟周期:单片机时序中的最小单位,具体计算的方法就是时钟源分之一。机器周期:我们的单片机完成一个操作的最短时间。定时器:打开定时器后,定时器存储寄存器的值经过一个机器周期自动加1,也就是说,机器周期是定时器的计数周期。定时器存储寄存器名称描述SFR地址复位值TH0定时器0x8C0x00TL0定时器0x8A0x00TH1定时器0x8D0x00TL1定时器0x8B0x00TCON—定时器控制寄存器的位分配(地址0x88、可位寻址)位76543210符号TF1TR1TF0TR0IE1IT1IE0IT0复位值00000000TCON——定时器控制寄存器的位描述位符号描述7TF1定时器1溢出标志。一旦定时器1发生溢出时硬件置1。清零有两种方式:软件清零,或者进入定时器中断时硬件清零。6TR1定时器1运行控制位。软件置位/清零来进行启动/停止定时器。5TF0定时器0溢出标志。一旦定时器0发生溢出时硬件置1。清零有两种方式:软件清零,或者进入定时器中断时硬件清零。4TR0定时器0运行控制位。软件置位/清零来进行启动/停止定时器。3IE1外部中断部分,与定时器无关,暂且不看。2IT11IE00IT0TMOD—定时器模式寄存器的位分配(地址0x89、不可位寻址)位76543210符号GATE(T1)C/T(T1)M1(T1)M0(T1)GATE(T0)C/T(T0)M1(T0)M0(T0)复位值00000000TMOD——定时器模式寄存器的位描述符号描述T1/T0标T1的表示控制定时器1的位,标T0的表示控制定时器0的位。GATE该位被置1时为门控位。仅当‘INT0’脚为高并且TR0控制位被置1时使能定时器0,定时器开始计时,当该位被清0时,只要TR0位被置1,定时器0就使能开始计时,不受到单片机引脚INT0外部信号的干扰,常用来测量外部信号脉冲宽度。这是定时器一个额外功能,本节课暂不介绍。C/T定时器或计数器选择位。该位被清零时用作定时器功能(内部系统时钟),被置1用作计数器功能。TMOD——定时器模式寄存器M1/M0工作模式M1M0工作模式描述000兼容8048单片机的13位定时器,THn的8位和TLn的5位组成一个13位定时器。011THn和TLn组成一个16位的定时器。1028位自动重装模式,定时器溢出后THn重装到TLn中。113禁用定时器1,定时器0变成2个8位定时器。定时器/计数器模式1示意图使用定时器的方法第一:设置特殊功能寄存器TMOD,配置好工作模式。第二:设置计数寄存器TH0和TL0的初值。第三:设置TCON,通过TR0置1来让定时器开始计数。第四:判断TCON寄存器的TF0位,监测定时器溢出情况。数码管原理和结构图KST-51开发板数码管图数码管真值表字符01234567数值0xC00xF90xA40xB00x990x920x820xF8字符89ABCDEF数值0x800x900x880x830xC60xA10x860x8E作业1、熟练掌握单片机定时器的原理和应用方法。2、通过研究定时器模式1的示意图,自己打开STC89C52RC数据手册的定时器部分,独立研究模式0、模式2和模式3的示意图,锻炼研究示意图的能力。3、使用定时器来实现延时,完成左右移动的流水灯的程序。4、了解数码管的原理,掌握数码管的真值表的计算方法。5、编程实现数码管静态显示秒表的倒计时。