图4-1 系统主设计流程图
4.1.1测速程序设计
测速是本系统实现的主要功能,通过对速度的测量并显示出数值来,能让人直观地看出调速的结果和性能。实现测速功能的设计流程图如图4-2所示。
图4-2 测速程序设计流程图
转速的检测,实际上是应用了两个中断服务子程序,T0中断和INT0
中断。INT0中断执行的功能十分简单,就是外部每输入一个脉冲,R0寄存器就加1。T0中断的作用就是给定一个时间间隔T,在T内应用INT0中断对外部脉冲进行计数,时间到就送出R0的数值,并对其清零。
单片机的转速测量完成,定时器T0作为内部定时器,外部中断来的时候读取TH0,TL0,并同时清零TH0、TL0,使定时器再次循环计内部脉冲。此外,对于低速情况下,我们还要设定一个软件计数器VTT,当外部中断还没来而内部定时器已经溢出,产生定时器0中断时,增加VTT,作为三字节中的高字节。三字节组成除数,上面的常数为四字节,所以计算程序实际上就是调用一个四字节除三字节商为两字节的程序。
为数码管能够显示出来,需将二进制转换为十进制,在将十进制转换为非压缩BCD码后,才能调用查表程序,最后送显示。
4.1.2 AD转换程序设计
TLC2543和80C51控制接口和其它微处理器接口一样,P1.2配置为输入端。P1.0、P1.1和P1.3编程为输出端。设定P1.3使TLC2543片选端为高。TLC2543被调用。这个程序包含合成SPI操作,在TLC2543和微处理器间交换数据的指令。检测最低位前导标志,即跳到选择方式数据字节的位为1,以决定转换结果的哪个字节最先传送。TLC2543程序如下: org 0000h ljmp main
main: mov sp,#60h loop1: lcall tcl2543 lcall bcd lcall dir ajmp loop1 tcl2543: mov r4,#04h mov a,r4 msb: mov r5,#8 loop: mov p1,#02h mov c,p1.1 rlc a mov p1.2,c setb p1.3 nop clr p1.3 djnz r5,loop