ORG的PWM控制直流电机汇编程序

上传人:新** 文档编号:501031814 上传时间:2023-02-12 格式:DOC 页数:10 大小:27.50KB
返回 下载 相关 举报
ORG的PWM控制直流电机汇编程序_第1页
第1页 / 共10页
ORG的PWM控制直流电机汇编程序_第2页
第2页 / 共10页
ORG的PWM控制直流电机汇编程序_第3页
第3页 / 共10页
ORG的PWM控制直流电机汇编程序_第4页
第4页 / 共10页
ORG的PWM控制直流电机汇编程序_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《ORG的PWM控制直流电机汇编程序》由会员分享,可在线阅读,更多相关《ORG的PWM控制直流电机汇编程序(10页珍藏版)》请在金锄头文库上搜索。

1、ORG 0034hGraphemic: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,84H,0FFH;共阳09字型码 ;PN1 EQU 30H ;PN1用来记脉冲的低二位数;PN2 EQU 31H ;PN2用来记脉冲的高二位数PN3 EQU 32H ;PN3用来做延时程序PN4 EQU 33H ;PN4用来做延时程序 ORG 100HMAIN: MOV R6,#00H ;用R6来辅助显示计时 MOV B, #00H CLR KG CLR W MOV TMOD,#01H ;T1和T0都是方式一计数 M

2、OV TL0,#18H MOV TH0,#0E0H ;MOV TL1, #0AFH ; MOV TH1, #3CH SETB EA SETB ET0 ;T0中断允许 SETB TR0 SETB P3.4 ; SETB ET1 ;T1中断允许 ;SETB TR1 SETB PT0 ;设置T1T2的中断优先,都设其为高级中断 ; SETB PT1 MOV R1,#5H ;默认开始的时候速度为5档 SETB KK1 SETB KK2 MOV A,#00H ;把PN1,PN2都清零 ;MOV PN1,A ; MOV PN2,A MOV DPTR,#Graphemic ANL P1,#0FH ;ANL

3、P0,#00Hmainline: jb p2.2,ks ;关机等待 clr w clr kg setb p1.0 setb p1.1 clr p1.2 clr p1.3ks: jnb kg,wait ;是否开机?开了就往下执行,不开就跳到开机等待 ANL P1,#00011111B ;显示最后一位为1,即是可以工作了的意思 SETB P1.4 MOV A,#1H MOVC A,A+DPTR MOV P0,A SETB P3.6 NOP NOP CLR P3.6 LCALL DELAYSPD2: JB P2.1,KEY1 CLR KK1KEY1: JNB P2.1,KEY2 ;当p2.1高电平时

4、就往下执行,但是只要执行一次后,kk就为1,往后就不再执行 JB KK1, KEY2 INC R1 SETB KK1 ;这段的任务是不用延时也能消除按键抖动的程序KEY2: JB P2.4,KEY3 CLR KK2KEY3: JNB P2.4,pos JB KK2, pos SETB KK2 DEC R1 pos: jb p2.0,rev ;正转按钮 setb t setb wrev: jb p2.3,tt ;反转按钮 clr t setb wtt: jnb w,pos ;选择正反转了吗,选了电机就开始转了,不选电机就不转,等待正反转按钮 jb t,positive jnb t,reverse

5、 positive: ;电机正转 setb p1.0 clr p1.1 clr p1.2 setb p1.3 lcall BIJIAO0 ;PWM调制 ; lcall ShowSpeed ;显示速度程序 LCALL showdigit1 Ljmp mainline reverse: ;电机反转 clr p1.0 setb p1.1 setb p1.2 clr p1.3 lcall BIJIAO0 ;PWM调制 ; lcall ShowSpeed ;显示速度程序 LCALL showdigit2 Ljmp mainline wait: mov a,#00h ;如果不开始,那么程序就在这里等待,

6、mov p0,await1: setb p0.6 setb p0.7 anl p1,#0fh setb p1.4 setb p1.5 setb p1.6 setb p1.7 SETB P3.6 NOP CLR P3.6 lcall delay jb p2.5,wait1 ;开机等待 setb kg Ljmp mainlineshowdigit1: ANL P1,#10001111B ;显示12在首位 SETB P1.7 MOV A,#1H MOVC A,A+DPTR MOV P0,A SETB P3.6 NOP NOP CLR P3.6 LCALL DELAY ANL P1,#01001111

7、B SETB P1.6 MOV A,#2H MOVC A,A+DPTR MOV P0,A SETB P3.6 NOP NOP CLR P3.6 LCALL DELAY RETshowdigit2: ANL P1,#10001111B ;显示21在首位 SETB P1.7 MOV A,#2H MOVC A,A+DPTR MOV P0,A SETB P3.6 NOP NOP CLR P3.6 LCALL DELAY ANL P1,#01001111B SETB P1.6 MOV A,#1H MOVC A,A+DPTR MOV P0,A SETB P3.6 NOP NOP CLR P3.6 LCAL

8、L DELAY RET;ShowSpeed: ;由于没有买到光电编码器,所以智能把数码管显示换成其他的功能; MOV A,R6; SUBB A,#3FH ;7Dh=125即1000/8=125秒; JNZ else1; MOV R6,#00H ;可以每秒重复输出很多次,才能在数码管里显示出来,但是还要再定义两个变量; ANL P1,#0FH ;置位(输出个位); SETB P1.4; CLR P3.6; MOV A,PN1 ;把最低速度的个位输出; ANL A,#0FH ;把A和0F相与,求出A的低四位字节表示的数 ; MOVC A,A+DPTR; MOV P0,A ;输出个位数; SETB

9、P3.6; NOP; CLR P3.6 ; LCALL DELAY ;加延时程序; ; ANL P1,#2FH ;置位(输出十位); SETB P1.5; MOV A,PN1; SWAP A ;高四位和低四位内容交换; ANL A,#0FH ;把低四位清零,然后输出十位的数; MOVC A,A+DPTR; MOV P0,A ;输出十位; SETB P3.6; NOP; CLR P3.6; LCALL DELAY;加延时程序 ; ANL P1,#4FH ;置位(输出百位数); SETB P1.6; MOV A,PN2; ANL A,#0FH; MOVC A,A+DPTR; MOV P0,A ;输出百位数; SETB P3.6; NOP; CLR P3.6; LCALL DELAY;加延时; ANL P1,#8FH ;置位(输出千位数); SETB P1.7; MOV A,PN2; SWAP A; ANL A,#0FH; MOVC A,A+DPTR; MOV P0,A ;输出千位数; SETB P3.6; NOP; CLR P3.6; LCALL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号