白钻会员
主题
帖子
积分98801
阅读权限50
注册时间2008-12-10
最后登录1970-1-1
在线时间 小时
|
楼主 |
发表于 2012-8-21 14:14
|
显示全部楼层
-
- ;******************************************************************
- ; 2051变频调速
- ;--------------------------------------------------------------------
- ; P3.5高位MOS基极偏置控制,电平=0,基极偏置导通
- ; P3.4高位MOS基极短路放电控制,电平=1,短路放电,电平=0,MOS管导通
- ; P3.3低位MOS基极短路控制,电平=1,短路放电,电平=0,MOS管导通
- ; P3.0接收信号,电平=1,每分钟1转,电平=0,每分钟10转
- ;--------------------------------------------------------------------
- K0 Bit P3.0 ;开关信号,=1每分钟1转,=0每分钟10转
- ;-------------------------《2051变频调速驱动》------------------------
- org 0000H
- ajmp START
- org 0030H
- ;-------------------------《主程序循环》------------------------------
- START: mov P3,#0ffH ;初始P3口赋值,关MOS管都不通
- mov P1,#0FFH ;初始P1口赋值,不显示
- MAIN: jb K0,TURN1 ;若P3.0=1,则跳转每分钟1转驱动,否则进行10转驱动
- clr P3.3 ;低位MOS管导通
- acall delayt10 ;调用延时10转子程序
- setb P3.3 ;关闭低位MOS管
- acall delay100 ;调用延时100微秒死区隔离
- clr P3.5 ;打开高位MOS管的基极偏置
- clr P3.4 ;打开高位MOS管的基极短路,MOS管导通
- acall delayt10 ;调用延时10转子程序
- setb P3.4 ;短路高位MOS管的基极,关断MOS管
- setb P3.5 ;关断高位MOS管的基极偏置
- acall delay100 ;调用延时100微秒死区隔离
- ajmp MAIN ;转跳返回,重新开始
- TURN1: clr P3.3 ;低位MOS管导通
- acall delayt1 ;调用延时1转子程序
- setb P3.3 ;关闭低位MOS管
- acall delay100 ;调用延时100微秒死区隔离
- clr P3.5 ;打开高位MOS管的基极偏置
- clr P3.4 ;打开高位MOS管的基极短路,MOS管导通
- acall delayt1 ;调用延时1转子程序
- setb P3.4 ;短路高位MOS管的基极,关断MOS管
- setb P3.5 ;关断高位MOS管的基极偏置
- acall delay100 ;调用延时100微秒死区隔离
- aJMP MAIN ;转跳返回,重新开始
- ;----------------------《每分钟10转=50Hz=10ms延时子程序》--------------------------
- delayt10: mov r5,#14h ;定时10ms
- d10: mov r6,#0fah
- djnz r6,$
- djnz r5,d10
- ret
- ;-----------------------《每分钟1转=5Hz=100ms延时子程序》-------------------------
- delayt1: mov r5,#0c8h ;定时100ms
- d1: mov r6,#0fah
- djnz r6,$
- djnz r5,d1
- ret
- ;-----------------------《死区隔离延时100微秒子程序》--------------------------
- delay100: mov r5,#32h ;定时100us
- djnz r5,$
- ret
- ;------------------------------------------------------------------------------
- END
复制代码 |
|