单片机内部定时器计数器.ppt
文本预览下载声明
四、 方式 3 的应用 定时器 T0 工作在方式 3 时是 2 个 8 位定时器 /计数器。 且TH0 借用了定时器 T1 的溢出中断标志TF1和运行控制位 TR1。 例 3 假设有一个用户系统中已使用了两个外部中断源, 并置定时器 T1 于方式 2, 作串行口波特率发生器用, 现要求再增加一个外部中断源, 并由 P1.0 口输出一个 5K Hz的方波(假设晶振频率为 6 MHz)。 在不增加其它硬件开销时, 可把定时器/计数器 T0 置于工作方式 3, 利用外部引脚 T0端作附加的外部中断输入端, 把 TL0 预置为 0FFH, 这样在 T0 端出现由 1至 0 的负跳变时, TL0 立即溢出, 申请中断, 相当于边沿激活的外部中断源。 在方式 3下, TH0 总是作 8 位定时器用, 可以靠它来控制由 P1.0 输出的 5 kHz方波。 由 P1.0 输出 5 kHz的方波, 即每隔 100 μs使 P1.0 的电平发生一次变化。则TH0中的初始值 X=M-N=256-100/2=206。 下面是有关的程序。 MOV TL0, #0FFH MOV TH0, #206 MOV TL1, #BAUD ; BAUD根据波特率要求设置常数 MOV TH1, #BAUD MOV MOD, #27H ; 置T0工作方式3 ; TL0工作于计数器方式 MOVTCON, #55H ; 启动定时器 T0、 T1, 置外部中断 0 和 1 ; 为边沿激活方式 MOVIE, #9FH ; 开放全部中断 TL0 溢出中断服务程序(由 000BH单元转来): TL0INT: MOV TL0, #0FFH … ; 外部引脚 T0 引起中断处理程序 RETI TH0 溢出中断服务程序(由 001BH转来): TH0INT: MOVTH0, #206 CPL P1.0 RETI 此处串行口中断服务程序、 外中断 0和外中断 1的中断服务程序没有列出。 6.5 MCS - 51单片机的串行接口 6.5.1 串行通信的基本概念 并行 和 串行 并行通信的优点是速度快,效率高,确点是不适合远距离通信。串行通信刚好相反。 单工、半双工 和 全双工 单工:信息只能沿着一个方向传播 半双工:信息可以沿一条线双向传播,但不能同时实 现双向传播。 全双工:使用两条独立的数据通道,收发可同时进行。 同步方式和异步方式 (1) 同步方式是将一大批数据分成几个数据块, 数据块之间用同步字符予以隔开, 而传输的各位二进制码之间都没有间隔。 其基本特征是发送与接收时钟始终保持严格同步。 (2)异步通信是按帧传送数据, 它利用每一帧的起、止信号来建立发送与接收之间的同步,每帧内部各位均采用固定的时间间隔, 但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志, 它是以字符为单位一个个地发送和接收的。 6.5.2 与串行口有关的特殊功能寄存器 1. 数据缓冲器SBUF 串行口缓冲器SBUF是可直接寻址的特殊功能寄存器, 其内部RAM字节地址是99H。在物理上, 它对应着两个独立的寄存器, 一个发送寄存器, 一个接收寄存器。发送时, 就是CPU写 SBUF的时候(51 系列单片机没有专门的启动发送状态的指令); 接收时, 就是读取SBUF的过程, 接收寄存器是双缓冲的, 以避免在接收下一帧数据之前, CPU未能及时响应接收器的中断, 没有把上一帧数据读走, 而产生两帧数据重叠的问题。 2. 串行口控制寄存器SCON SCON用于控制和监视串行口的工作状态, 其各位定义如图 5.3 所示。相应的各位功能介绍如下: SM0、SM1: 用于定义串行口的操作模式, 两个选择位对应 4 种模式,见表6.2。其中fOSC是振荡器频率, UART为通用异步接收和发送器的英文缩写。 SM2: 多机通信时的接收允许标志位。 在模式 2
显示全部