我想利用AT89C51实现直流电机调速,我不知道接下去的程序该如何编?希望大家给点编程的思路!
使用定时器0以工作方式2产生周期为100us的连续正方波脉冲,晶振频率为6MHZ 机器周期为2us,以TH0作为重装载的预置寄存器,TL0作为8位计数器,假使计数初值为X,则 求出X=231D=0E7H TH0=0E7H TL0=0E7H 程序: ORG 0000H AJMP MAIN ORG 0003H AJMP EXINT0 转向外部中断0 MAIN:MOV TCON, #01H 脉冲触发方式 MOV IE, #83H 开放外部中断0,定时器0,其他中断禁止 MOV IP, #01H 外部中断0为高优先级,其余为低优先级 MOV TOMD, #02H 设置定时器0为方式2 MOV TH0, #0E7H 保存计数初值 MOV TL0, #0E7H 预置计数初值 SETB TR0 启动定时 EXINT0: JBC TF0, LOOP 查询计数溢出 AJMP EXINT0 LOOP: CPL P1.0 从P1.0口输出方波 AJMP EXINT0 重复循环 我想实现3级调速(低速档,中速档和高速档),得开3个中断吗?可是只有 和 INT0 和 INT1 两个外部中断,如何编程?
|