实验十一、并串转换
-
实验十一、
p>
并串转换(
cd4014
)
本程序功能:按
F1
键,再
按
3
键,进行调用并串转换功能。存储在外部
< br>RAM
区,地址为
0010H
。
同学更改为:同学将此功能加到自己编的上一个程序中。
1
、
进入并串转换子程序后,关闭外部中断,出来时开中断;
2
、
并串转
换变换功能程序——
cd4014o
。
3
、
可将转换结果放到数码管中显示。
调试方式:设置断点,调出寄存器窗、外部数据区窗观察结果。
程序文件:
程序:
xsdsm
equ 30h
fwdsm equ 31h
txdsm equ 32h
txjym equ 33h
xsm1 equ 37h
;
显示缓冲区
xsm2 equ 38h
;
xsm3 equ 39h
;
xsm4 equ 3ah
;
xsm5 equ 3bh
;
xsm6 equ 3ch
;
xsmm1 equ 3dh
xsmm2 equ 3eh
xsmm3 equ 3fh
xsmm4 equ 40h
xsmm5 equ 41h
xsmm6 equ 42h
txsjm equ 24h
jpm
equ 25h
dqdsm
equ 26h
txzcbzm
equ 27h
xsclm
equ 43h
;
显示处理单元
sjzzm equ 44h
jpclbzm
equ 49h
raddlm equ 4ch
raddhm
equ 4dh
wdatam equ 4eh
xsdsm1 equ 4fh
xsjym equ 50h
secm
equ
51h
;
秒数据
minm
equ
52h
;
分数据
hrm
equ
53h
;
小时数据
datem
equ
54h
;
日数据
monthm
equ
55h
;
月数据
weekm
equ
56h
;
星期数据
yearm
equ
57h
;
p>
年数据低
2
位
kscanfm equ 58h
keyctm equ 59h
keym1 equ 5ah
keym2 equ 5bh
keybm1 equ 5ch
keybm2 equ 5dh
adsjdzl
equ 34h
adsjdzh
equ 35h
dpm equ 23h
dp1
bit 18h
dp2
bit
19h
dp3
bit
1ah
dp4
bit
1bh
dp5
bit
1ch
dp6
bit
1dh
ptt
bit
1eh
swa
bit
1fh
org 0000h
ljmp start
org 0003h
ljmp adzd
org 000bh
ljmp zdt0
org 0100h
start:mov sp,#5eh
;---------
----------------------int0
中断初始化、开中断
setb it0
setb ex0
clr
ie0
;-------------------------------t0
10 ms
中断初始化
mov tmod,#b
;
setb pt0
mov tl0,#00h
mov th0,#0dch
setb tr0
setb et0
setb ea
;-------
-------------------
数码管显示存储单元初始化
< br>
mov
dpm,#0ffh
mov xsm1,#00h
mov xsm2,#00h
mov xsm3,#00h
mov xsm4,#00h
mov
xsm5,#00h
mov xsm6,#00h
mov r4,#00h
;------------------------------
acall key0
acall display
;
jk:nop
jk4:
mov
a,kscanfm
cjne
a,#55h,jk
ljmp
keypr
jk3:
acall key0
ljmp jk
keypr:
mov a,keym1
cjne
a,#0f7h,jk3
acall key0
mov
xsmm1,#01h
mov xsmm2,#0ffh
mov xsmm3,#0ffh
mov
xsmm4,#0ffh
mov xsmm5,#0ffh
mov xsmm6,#0ffh
mov
xsm1,xsmm1
mov xsm2,xsmm2
mov xsm3,xsmm3
mov
xsm4,xsmm4
mov xsm5,xsmm5
mov xsm6,xsmm6
lcall display
keypr9:
mov a,kscanfm
cjne a,#55h,keypr9
mov a,keym2
cjne a,#0feh,keypr3
acall key0
ljmp dsxg
keypr3:
mov a,keym1
cjne a,#7fh,keypr4
acall key0
ljmp dssxg
keypr4:
mov a,keym2
cjne a,#0f7h,keypr5
acall key0
ljmp adzh
;f1
;
时钟修改
0
;
时钟修改
1
;ad
转换
2
keypr5:
mov
a,keym2
cjne a,#7fh,keypr6
acall key0
ljmp cd4014o
;
并串转换
3
keypr6:
mov a,keym1
cjne a,#0bfh,keypr7
acall key0
ljmp tx485
;485
通信
4
keypr7:
mov a,keym2
cjne a,#0fbh,keypr8
acall key0
ljmp tx232
;232
通信
5
keypr8: mov a,keym2
cjne a,#0bfh,keypr10
acall key0
ljmp
keyshou
;
桉数字健显示健值
6
keypr10:mov
a,keym1
cjne
a,#0efh,keypr11
;
是否按下取消健
acall key0
ljmp jk
keypr11:
ljmp keypr
;--
-------------------------------;
桉数字健显示健
值
;--
---------------------
键盘存储单元初始化
key0:
mov
keybm1,#0ffh
mov keybm2,#0ffh
mov keym1,#0ffh
mov keym2,#0ffh
mov kscanfm,#00h
;kscanfm
键盘扫描标志单元
ret
dsxg:
ljmp jk
;
时钟修改
0,
dssxg:
ljmp jk
;
时钟修改
1
;--
---------------------------------;a/d
转换
adzh:
mov
flag,#00h
;a/d
转换路标号
mov dpl,flag
mov
dph,#0e0h
;0e0xxh,a/d
转换路地址
movx @dptr,a
adzh3:
mov
a,flag
cjne a,#08h,adzh3
mov adsjdzl,#00h
mov adsjdzh,#00h
adzh2:
ljmp jk
adzd:
clr ex0
push psw
push acc
push dpl
push dph
mov dptr,#0f000h
movx a,@dptr
mov dpl,adsjdzl
;adsjdzl
模
/
数转换数据的外部
ram
存
储地址
mov dph,adsjdzh
;
movx @dptr,a
inc dptr
mov adsjdzl,dpl
mov adsjdzh,dph
mov a,flag
inc a
mov flag,a
cjne a,#08h,adzd1
ajmp adzd2
adzd1:
mov flag,a
mov
dpl,flag
mov dph,#0e0h
movx @dptr,a
SETB EX0
adzd2:
pop dph
pop dpl
pop acc
pop psw
reti
;-----------------------------------;cd4014
并串转换
cd4014o:lcall
cd4014
ljmp jk
;-------
----------------------------;cd4014
cLk bit p1.6
;
p>
定义
4014
的时钟线
q8 bit p1.7
;
定义<
/p>
4014
的串行输出数据线
psc bit p1.5
;
定义并串控制线
cd4014:
clr ea
mov r0,#07h
clr clk
setb psc
setb clk
mov c,q8
rlc a