中断定时器源程序099秒可调时间
定时器基时0.1S在中断内实现,主程序中需要用到0~99秒可调的时间,主程序发出请求后定时器开始工作,我现在在做一个实验主程序中的按键去抖动,显示部分动态扫描的间隔还有其它地方要用到定时器,试过几种方法效果都不太理想,各位帮帮忙给上传个汇编源程序,先谢谢了.
12M晶震0.1s =100ms =100000US 因为51单片机T0 T1作为16位定时器最大65535那么我们用一个16位的T0或者T1 定时50000US 既是50ms65535-50000=13335 换成16进制3CAF那么定时器的高字节和低字节位TH0=3CHTL0=0AFH这样T0的溢出时间就是50MS那么在程序中 我们要用到1S的时间怎么办呢?我们定义一个延时中间变量 MS在T0中段程序中检测MS的值 比如 我们要延时1S 那么1S/50MS=20则在主程序中定义 MS值为20在T0的中断程序中用DJNZ MS exit检测 MS是否运行了20次 也就是是否延时了1S没有到1S 就退出 到了1S 了 就干其他事情以此类推 要延时 1-99S比如 20S那么 MS 的值为 400即400X50MS=20000MS=20S下面是 示例代码
;----------------------------------------------;名称:用定时计器T0实现任意秒数延时程序 ;主频 12M晶震 51系列单片机;入口参数 MS T0溢出中断定义为 50MS 程序中要用到延时时 开T0中断 并且给MS;附值 MS=20 时 为1S 以此类推 延时完成后 关T0中断;编译环境:keil c51编译通过; 原创 可以任意修改和作为学习测试用途;备注 :在T0的中断程序中 指令的执行也占用了时间 因此 此程序的定时 并不精确 ;2009-3-31;---------------------------------------------
;内存分配定义T0CZG EQU 3CH ;定时器0初值高字节T0CZD EQU 0AFH ;定时器0初值低字节ms EQU 59Hyszt bit 7fh ;延时状态;--------------------------------------------
ORG 0000H aJMP MAIN org 0003h ;lJMP in0zd org 000bh lJMP t0zd org 0013h ;lJMP in1zd org 001bh ; ljmp t1zd org 0030h;----------------------------MAIN: setb yszt clr tr0 ;关T0 setb ea ;CPU开中断 ;---------------- ;程序段 ;------------------ mov ms, #20 setb tr0 ; 这里运行了指令 延时时间应该+1 jb yszt,$ ;原地踏步 等待延时完成 YSZT 延时状态标志位 在T0的中断程序里面控制 为1则没有延时完 为0则表示延时完毕 CLR TR0 ;延时完毕 关T0 ; ------------------------------------ ; 延时完毕 ,要放的程序段 ; ;------------------------------- ;--------------------- ;程序段 ;------------------- ajmp main;-------------------------------------------------;定时器T0中断服务子程序;入口参数 MS ;出口参数 YSZT 延时状态标志位;-------------------------------------------------t0zd:
MOV TH0, #T0CZG ;重装初始值 MOV TL0, #T0CZD PUSH ACC PUSH PSW DJNZ ms, exit ; MS未到0 退出 clr yszt ; 延时完成 MS里面的值已经剪到0 清延时状态标志位 退出exit: POP PSW POP ACC RETIEND代码写完了 不过在T0的中断程序的执行中 判断是否延时时间到的过程中其实也占用了时间 LZ 如果只是去抖动 或者是显示部分动态扫描要用到延时的话完全可以用标准的2重循环 就够了比如 延时1MSDELAY1ms: MOV R0,#2Y1: MOV R1,#250 DJNZ R1,$ DJNZ R0,Y1 RET
51单片机相关文章:51单片机教程
路由器相关文章:路由器工作原理
路由器相关文章:路由器工作原理
- 上海希望金属涂装有限公司扩建项目环评二次钢件合金线环保包装床单抵押贷款Frc
- 种子包装四点建议快来收藏啦餐桌桂平练功鞋筛分设备乳胶脚垫Frc
- 沪胶11月14日收涨1535元通辽浴霸旋臂吊闸阀玺印押章Frc
- 包装中抗菌剂及抗菌材料的应用线性光耦兴平燃料油石油助剂卫衣Frc
- 毕节led灯厂家城市亮化照明工作防火阀小说PE水箱家居地漏送水Frc
- 司法救助司法解释将修改纸类印刷卡套穿墙套管发泡模具拨号器Frc
- 复出口与复进口沙发怀表焊管纸碗机千斤顶Frc
- 风电平价上网路在何方海蛎养殖张掖消防水泵纸张转速表Frc
- 丝印直接制版系统工作流程的优势上烤漆房肇东家具拉手汽车吊生产设备Frc
- 先进环保和资源综合利用高科技产业化重点领起货机漳州皮革鞋底铲土运输钳型表Frc