找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2787|回复: 8
打印 上一主题 下一主题
收起左侧

汇编 求大神改错 能实现电机的正反转,但是不能控制转速,并且数码管不亮

[复制链接]
跳转到指定楼层
楼主
ORG    0000H
SJMP  DISPLAY
ORG   0003H   
LJMP  BUTTON          ;  外部0中断入口地址
ORG   000BH
LJMP  DINGSHI         ;  定时中断T0入口地址
ORG    0030H          ;  LED显示程序为主程序  
DISPLAY:  
SETB   EA             ;  打开中断总开关
SETB   EX0            ;   打开外部中断0开关
SETB   IT0            ;  打开外部中断0下降沿触发
MOV    TMOD,#51H      ;   设置定时工作方式
MOV    TL0,#0FFH      ;   设置定时初值
MOV    TH0,#0FFH
MOV  TH1,#00H              T1清零
MOV  TL1,#00H   
SETB  P3.5                  置T1为输入方式
JB  P3.5,$                    等待低电平
MOV  IE,#88H               CPU开中断,T0开中断
SETB  TR0                  启动T0定时
SETB  TR1                  启动T1计数
MOV  SP,#30H               设置堆栈指针  
CLR   P0.5         
CLR   P0.6
CLR   P0.7      
MOV   DPTR, TAB       ;  夜晶显示的字符首地址
MOV   R0,#00H         ;  脉宽的初值
MOV   R3,#00H
MOV   R4,#00H
MOV   60H,#200
MOV   70H,#200
LP1:
LCALL DELAY
DJNZ 60H,LP1
MOV 60H,#200
CLR  TR1                   停止T1计数
MOV  31H,TH1               将T1计数值送31H,30H   
MOV  A 31H      
MOV  B,#10                A小,B送10
DIV  AB                    除,商在A中,余数在B中
MOV  50H,A                 十位送50H
MOV  51H,B                  个位位送51H
MOV  R1,#50H                显示缓冲区首地址如R1
MOV  R2,#00DH               首位显示字入R2
DISC:
     MOV  A,@R1            查段码,待查BCD码送A中
MOV  DPTR,#TAB        段码表首地址送DPTR
     MOVC  A,@A+DPTR    查段码指令
     MOV  P1,#A             段码送入P1 口
LCALL   DELAY            延时,使视觉暂留,延时1ms
INC  R1                      指向下一个显示单元
MOV  A,R2                   判断位轮流显示完
JNB ACC.0,DEND            2位完,转结束
RR  A                     2位未完,右移使下一显示控制口为0
MOV  R2,A           
AJMP  DISC                  2位未完,继续显示
DEND:RET                    2位完,程序借宿
ORG 2000H
DINGSHI:                         ;    定时中断服务程序
CPL P0.7     
JNB P0.7,Z1             ;         周期一定
MOV A,#0FFH
SUBB A,R0      
MOV TH0,A
SETB TR0
RETI
Z1:  
MOV TH0,R0             ;   脉宽
SETB TR0
RETI   
BUTTON:                     ;   从控制键盘中读取操作命令
PUSH ACC           
CLR EX0
CLR EA
INC  R7   ;
MOV A,#0FFH
MOV P2,A
MOV A,P2
JNB ACC.7,AA0   
JNB ACC.6,KK0
JNB ACC.5,ZZ
JNB ACC.4,FF
JNB ACC.3,WW0
AJMP QQ
AA0:  
CJNE R0,#0FFH,AA1     ;   加速操作(相等顺序执行)
AJMP QQ  
AA1:  
MOV A,R0
ADD A,#5
MOV R0,A
AJMP QQ
KK0:   
CJNE R0,#00H,MM         ;    减速操作(相等顺序执行)
AJMP QQ  
MM:   
MOV A,R0
SUBB A,#5
MOV R0,A
AJMP QQ
QQ:   
SETB EX0
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB  EA
POP  ACC
RETI
ZZ:   
SETB P0.5               ;     正转操作
CLR  P0.6  
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EX0
SETB  EA
POP  ACC
RETI
FF:   
CLR P0.5                 ;     反转操作  
SETB P0.6
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EX0
SETB  EA
POP  ACC
RETI
WW0:   
CLR P0.5              ;     停止操作
CLR P0.6
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EX0
SETB  EA
POP  ACC
RETI
TAB:DB 3FH 06H  5BH  4FH 66H  6DH  7DH 07H  7FH  6FH
       “0”   “1”    “2”  “3”  “4”  “5”   “6”   “7”   “8” “9”
DELAY: MOV  R5,#50                                延时5ms
DL7: MIV  R6,#50
DL6: DJNZ  R6,DL6
     DJNZ  R5,DL7
RET

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2015-7-8 15:46 来自手机 | 只看该作者
这个程序是不能编译,还是执行结果有错误,。现在能实现什么样的效果?
回复

使用道具 举报

板凳
ID:84923 发表于 2015-7-8 16:04 | 只看该作者
admin 发表于 2015-7-8 15:46
这个程序是不能编译,还是执行结果有错误,。现在能实现什么样的效果?

现在能实现电机的正反转,但是不能控制转速,并且数码管不亮
回复

使用道具 举报

地板
ID:74784 发表于 2015-7-8 20:45 | 只看该作者
那你得上个硬件图 看看了~~~~~~~~~~~~~
回复

使用道具 举报

5#
ID:84923 发表于 2015-7-8 23:03 | 只看该作者
lxa0 发表于 2015-7-8 20:45
那你得上个硬件图 看看了~~~~~~~~~~~~~

这个就是,只能实现正反转和停止控制。

QQ截图20150708230325.png (24.41 KB, 下载次数: 172)

QQ截图20150708230325.png
回复

使用道具 举报

6#
ID:45963 发表于 2015-7-9 07:23 | 只看该作者
我就看到1个,查段码后送P1的应该是,A,而不是#A吧

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:84923 发表于 2015-7-9 13:41 | 只看该作者
amchina 发表于 2015-7-9 07:23
我就看到1个,查段码后送P1的应该是,A,而不是#A吧

改过了
回复

使用道具 举报

8#
ID:74784 发表于 2015-7-9 20:03 | 只看该作者
你的子程序最后一句  RETI
这个是用在中断返回的
你怎么所有的子程序返回都用它呢???
回复

使用道具 举报

9#
ID:74784 发表于 2015-7-9 20:04 | 只看该作者
还有一点不大懂:
按键可以直接 I/O口
干吗还要用2个与门??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表