lxa0 发表于 2018-3-12 18:59:41

[原创diy]试验红外遥控小车

无线的、蓝牙的、wifi的。。。。。小车
都试验过了
这段时间试验了红外遥控的小车

详见下:

lxa0 发表于 2018-3-12 19:00:58

外观与电路图:

怎么的还是不能上传图片啊???

lxa0 发表于 2018-3-12 19:01:41

参考原代码:
仅供参考
不得用于商业!
违者必究!


;试验红外遥控小车汇编代码
;2018-3-8晚修改完成
;at89c2051--11.0592MHz晶振
;p17与p10分别驱动左右电机,p37驱动led灯


org 0000h
ajmp mm
org 0013h
ajmp tt1

;主程序*********************************************************
org 0100h
mm:nop
mov p1,#00h
mov p1,#00h      
mov th1,#00h
mov tl1,#00h
mov tmod,#90h      ;T0设方式0,T1方式1并打开门控
mov tcon,#04h         ;T1由外部下降沿触发中断
mov ie,#84h             ;开INT1和总中断
mov ip,#04h             ;INT1外部中断优先
mov sp,#4fh             ;设堆栈入口
mov 08h,#38h          ;开始转换红外波头
mov 09h,#07h          ;转换8位一组波头
mov 10h,#30h          ;读红外波头存放首址
mov 11h,#10h          ;读红外波头16个
mov 20h,#00h          ;所有标志位
mov 21h,#00h          ;存放动作指令码      
clr p3.7   
m0:acall zh            
acall dz      
acall ccc
sjmp m0

;cc动作完成后恢复相关的寄存器<不占区>******************************
ccc:jnb 07h,ccc0
mov 30h,#00h
mov 31h,#00h
mov 32h,#00h
mov 33h,#00h
mov 34h,#00h
mov 35h,#00h
mov 36h,#00h
mov 37h,#00h
mov 38h,#00h
mov 39h,#00h
mov 3ah,#00h
mov 3bh,#00h
mov 3ch,#00h
mov 3dh,#00h
mov 3eh,#00h
mov 3fh,#00h
mov 20h,#00h            ;然后恢复相关单元
mov 21h,#00h
setb ex1                      ;全部动作完成最后开INT1中断
ccc0:ret   

;tt1 T1读红外代码子程序<占用区2>********************************
org 0200h
tt1:push dph          ;保护现场
push dpl
push acc
push psw
jb 01h,t3                ;若正在转换则返回
jb 02h,t3                ;若正在动作则返回
jb 00h,t2                ;收到遥控引导码则进入接收识别模式
mov th1,#00h      ;清T1,为接收做准备
mov tl1,#00h
setb 00h               ;设接收遥控波头准备好标志位
setb tr1                  ;启动T1
sjmp t3
t2:setb psw.4          ;进入区2
clr psw.3
mov @r0,th1          ;从30h存放读进的红外波头
mov th1,#00h      ;清T1,准备读下一位
mov tl1,#00h
inc r0
djnz r1,t3                ;接收0fh个红外波头完成否?
mov 10h,#30h      ;存放波头首地址
mov 11h,#10h      ;存放波头数量
setb 01h                  ;设读取完成与允许转换标志位
clr tr1                      ;关T1
clr ex1                     ;关外部中断1
clr 00h                  ;恢复接收标致位
t3:pop psw
pop acc
pop dpl
pop dph
reti

;zh转换子程序<占用区1>******************************************
org 0280h
zh:push dph             ;将识别后的遥控信号转换成16位动作代码
push dpl
push acc
push psw
setb psw.3               ;进入区1
clr psw.4
jb 00h,h01            ;若正在接收则返回            
jb 02h,h01            ;若正在动作则返回
jb 01h,h02            ;若允许转换则继续   
h01:mov 08h,#38h
mov 09h,#07h
pop psw
pop acc
pop dpl
pop dph
ret
h02:mov a,30h
jnb acc.2,h01         ;以下8条是判别红外指令的地址码是否正确
mov a,31h               ;正确时应为HHHL LLHL(11100010B)
jnb acc.2,h01
mov a,32h
jnb acc.2,h01
mov a,36h
jnb acc.2,h01
mov a,33h
jnb acc.1,h01
mov a,34h
jnb acc.1,h01
mov a,35h
jnb acc.1,h01
mov a,37h
jnb acc.1,h01
mov 08h,#38h            ;从38h单元开始转换指令码
h03:mov a,@r0         ;地址码正确开始转换指令码
jb acc.2,h04
clr 08h                         ;21h的最低位置0
sjmp h05
h04: setb 08h             ;21h的最低位置1
h05: mov a,21h
rl a
mov 21h,a
inc 08h
djnz r1,h03             ;8位指令码转换完否?
setb 02h               ;设置允许执行动作标志位                        
clr 01h                  ;清除允许转换标志位
ljmp h01

;dz动作子程序<不占区>**********************************************
org 0300h
dz:push dph
push dpl
push acc
push psw
jb 00h,d01                ;若正在接收则返回
jb 01h,d01                ;若正在转换则返回
jnb 02h,d01            ;允许动作否?
mov a,21h
cjne a,#50h,dz2         ;左转?
mov p1,#00h
nop
setb p1.7
nop
sjmp d00a
dz2:mov a,21h             ;右转?
cjne a,#48h,dz3
mov p1,#00h
nop
setb p1.0
nop                        
sjmp d00a
dz3:mov a,21h             ;前进?
cjne a,#44h,dz4
mov p1,#00h
nop
mov p1,#0ffh
nop
sjmp d00a
dz4:mov a,21h
cjne a,#54h,d00a         ;停止?
mov p1,#00h
mov p1,#00h
d00a:nop
mov 20h,#00h            ;清除全部标志
mov 21h,#00h            ;清除已完成的动作代码
setb 07h                      ;本次动作完成后设置标志
d01:pop psw
pop acc
pop dpl
pop dph
ret


end

zzy9903 发表于 2018-3-12 19:50:30

擦,汇编啊,参考不了{:titter:}

图片呢?

WM_CH 发表于 2018-3-12 19:55:06


擦,汇编啊,参考不了{:lol:}

simple@ 发表于 2018-3-13 09:07:29

汇编,现在谁敢用于商业?后来维护都没法维护

一叹到天涯 发表于 2018-3-13 09:12:41

看看再说

磊磊映画 发表于 2018-3-13 09:13:27

楼主,今年上大三了吧,赶紧转C语言

Excellence 发表于 2018-3-13 09:14:25

擦,汇编啊,参考不了

lxa0 发表于 2018-3-13 10:46:36

zzy9903 发表于 2018-3-12 19:50
擦,汇编啊,参考不了

图片呢?

发图片时提示错误
发不了
想转发图片连接
又怕给我封掉
矛盾中~~~~~~~~~

salon_lee 发表于 2018-3-13 10:49:51

怎么还要回复

lindabell 发表于 2018-3-13 11:16:40

汇编啊,参考不了

isakura 发表于 2018-3-13 15:00:41

擦,汇编啊,参考不了

D.lovers 发表于 2018-3-13 15:10:54

不是一般人能看得懂

yanzhiwei 发表于 2018-3-13 17:56:51

汇编啊,参考不了

bg6agf 发表于 2018-3-13 17:58:38

汇编啊,参考不了

不舍的六年 发表于 2018-3-13 18:06:35

汇编啊,参考不了

lxa0 发表于 2018-3-13 22:42:28

转告大家:
C语言我不会~~~~~~~~~只好继续玩汇编啦

我爱大秦 发表于 2018-3-13 23:08:45

楼主神一样的存在!

lxa0 发表于 2018-4-2 17:21:06

还是上不了图 啊~~~~~~~~~~~~~~~~~~~

upli 发表于 2018-4-3 10:21:21

完全用汇编写的都是神人,贴出来一般人也参考不了

laujc 发表于 2018-4-3 11:03:39

不玩汇编好多年。好熟悉的51汇编,大学时学的也是这个。

刚工作时,用过几年的汇编,主要是为了维护之前工程师留下的程序。

现在只用C了,再不想用汇编了,主要是编写起来速度慢。

longwu537 发表于 2018-4-3 11:43:02

你说我要不要告诉你,图片上传完成后,要在上传界面点一下你上传的图片,这样就会在编辑框里插入一串代码,这样图片才算上传成功,估计你是图片上传了,却没有引用。。。

tangmintm8013TM 发表于 2018-4-3 12:20:29

汇编,神一样的存在!

crise 发表于 2018-4-3 12:50:48

汇编,神一样的存在!

lxa0 发表于 2018-4-4 22:21:36

longwu537 发表于 2018-4-3 11:43
你说我要不要告诉你,图片上传完成后,要在上传界面点一下你上传的图片,这样就会在编辑框里插入一串代码, ...

非也
上传时就提示有错误的
晕忽忽啊~
页: [1]
查看完整版本: [原创diy]试验红外遥控小车