版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;文件名:PortforMCU51
;功能:I/O口输入、输出实验
;接线:用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口):
;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
•〃***************************************»**************************
DIRBITP3.0
ORG0000H
LJMPSTART
ORG0100H
START:
OutputI:
mova,#0fEH
movr5.#8
loopl:
CLRC
movC,DIR
JCOutput2
movPI,a
rla
AcallDelay
djnzr5,loopl
SjmpOutputI
Outpul2:
mova,#07fH
movr5,#8
loop2:
CLRC
movC,DIR
JNCOutput1
movPl,a
rra
AcallDelay
djnzr5,loop2
SjmpOutput2
Delay:
movr6,#0
DelayLoopl:
movr7,#0
DelayLoop2:
NOP
NOP
djnzr7,DelayLoop2
djnzr6,DelayLoop1
end
;〃***»**************************************************************
;文件名:In_OutforMCU51
;功能:扩展输入、输出实验
;接线:用8位数据线连接八位逻辑电平输出模块的JD1E到扩展输入模块的JD2C;
;八位逻辑电平显示模块的JD2B到扩展输B出模块的JDIC;
;用导线连接扩展输入模块的CS_244到CPU模块的8000H;
;扩展输出模块的CS.273接到8I00H。
.〃***»***********************************»**************************
ADDRJnEQU8000H
ADDR_outEQU8100H
ORG0000H
LJMPSTART
ORG0I00H
START:
movDPTR,#ADDR_in;并行输入口地址
movxa,@DPTR;输入数据,读开关状态
Output:
movDPTR,#ADDR_ou(;并行输出口地址
movx@DPTR,a;输出数据
ACALLDelay
SjmpSTART
Delay:
mov电#10
DelayLoop1:
movr7.#0
DelayLoop2:
NOP
NOP
djnzr7,DelayLoop2
djnzr6,DelayLoop1
ret
END
.〃**********************************************
;文件名:SRAMforMCU51
;功能:扩展存储器读写实验
;接线:用导线连接SRAM模块的CS.RAM到地:
;P1.0接到八位逻辑电平显示模块的LOo
.〃***»***********************************»******
ADDREQUOOOOH
ORGOOOOH
UMPSTART
ORGOIOOH
START:
MOVSH#60H
MOVDPTR,#ADDR;置外部RAM读写地址
MOVA,#55H;测试的数据一
MOVB.A
MOVX@DPTR,A;写外部RAM
MOVXA,@DPTR;读外部RAM
XRLA,B;比较读叵的数据
JNZERROR
MOVA,#0AAH;测试的数据二
MOVB,A
MOVX@DPTR,A
MOVXA,@DPTR
XRLA.B
JZPASS;测试通过
ERROR:SETBPI.0;测试失败,点亮LED
SJMP$
PASS:CPLP1.0:LED状态(亮/灭)转换
MOVR1,#OOH;延时
DELAY:MOVR2,#OOH
DJNZR2,$
DJNZRI,DELAY
UMPSTART;循环测试
END
J/*************************************************
仪件名:FlashforMCU5I
;功能:FlashMcmory读写实验
;接线:用导线连接闪存模块的CS_FLASH到地;
;八位逻辑电平显示模块的JD4B接到CPU模块的JD8。
J/***»*************木********木********京***********点*
ADDREQUOOOOH;字节写入位置
DATAIEQU055H;测试数据1
DATA2EQUOAAH;测试数据2
ORGOOOOH
UMPSTART
ORGOIOOH
START:
MOVSP,#60H
LCALLCHIP.RESET;芯片复位
LCALLCHIP_ERASE;芯片擦除
LCALLDELAY
MOVDPTR,#5555H;字节写入操作数据1
MOVA,#OAAH
MOVX@DPTR,A;5555H/AAH
MOVDPTR,#2AAAH
MOVA,#55H
MOVX@DPTR,A;2AAAH/55H
MOVDPTR,#5555H
MOVA,#0A0H
MOVX@DPTR,A;5555H/A0H
MOVDPTR,#ADDR
MOVA,#DATA1;向设定的位置写入DATA1
MOVX@DPTR,A
LCALLDELAY
MOVDPTR,#ADDR
MOVXA,@DPTR;读数据1
MOVPl,A
NOP;在此设断点,观察PI口数据
MOVDPTR,#5555H;字节写入操作数据2
MOVA,#OAAH
MOVX@DPTR,A;5555H/AAH
MOVDPTR,#2AAAH
MOVA,#55H
MOVX@DPTR,A;2AAAH/55H
MOVDPTR,#5555H
MOVA,#0A0H
MOVX@DPTR,A;5555H/A0H
MOVDPTR,#ADDR+1
MOVA,#DATA2;向设定的位置写入DATA2
MOVX(a)DPTR,A
LCALLDELAY
MOVDPTR.#ADDR+1
MOVXA,@DPTR;读数据2
MOVPl,A
NOP;在此设断点,观察Pl口数据
SJMP$;结束
,**拿**拿*****率**拿**拿**率*****拿**拿**********************
CHIP_RESET:;芯片复位
MOVDPTR,#5555H
MOVA,#OAAH
MOVX@DPTR,A;55J5H/AAH
MOVDPTR,#2AAAH
MOVA,#55H
MOVX@DPTR,A;2AAAH/55H
MOVDPTR,#5555H
MOVA,#0F0H
MOVX@DPTR,A;5555H/F0H
RET
*****************************************************
CHIP_ERASE:;片擦除
PUSHDPH
PUSHDPL
PUSHACC
CE_START:
MOVDPTR,#5555H
MOVA,#OAAH
MOVX@DPTR,A;5555H/AAH
MOVDPTR,#2AAAH
MOVA,#55H
MOVX@DPTR,A;2AAAH/55H
MOVDPTR.#5555H
MOVA,#80H
MOVX@DPTR,A;5555H/8OH
MOVDPTR,#5555H
MOVA,#0AAH
MOVX@DPTR.A;5555H/AAH
MOVDPTR,#2AAAH
MOVA.#55H
MOVX@DPTR,A;2AAAH/55H
MOVDPTR,#5555H
MOVA,#10H
MOVX@DPTR,A;5555H/10H
NOP
CE_WMT:
MOVXA,@DPTR
JBACC.7,CE_OK
JNBACC.5,CE_WAIT;等待擦除完成
MOVXA,@DPTR
JBACC.7,CE_OK
MOVA,#0F0H;擦除不成功,复位
MOVX@DPTR,A
SJMPCE_START;重试
CE_OK:
NOP
POPACC
POPDPL
POPDPH
RET
Delay:
movr6,#2O
DelayLoopI:
movr7,#0
DelayLoop2:
NOP
djnzr7,DelayLoop2
djnzr6,DelayLoop1
ret
END
.〃***»*********************************************
;文件名:TimerforMCU51
;功能:定时/计数器实验
;接线:导线连接CPU模块P10到八位逻辑电平显示模块的L0.
・〃***»*************今**今**左***************»*本*****4:*
Tickequ10000;lOOOOxIOOus=Is
TIOOusequ156;lOOus时间常数(6M)
ClOOusequ30h;lOOus记数单元
LEDBufbit20h
org0
IjmpStart
orgOOObh
TOInt:
pushPSW
mova,CI00us+l
jnzGoon
decClOOus
Goon:
decClOOus+1
mova,ClOOus
orla,C100us+l
jnzExit;lOOus记数器不为0,返回
movClOOus,#27H:#high(Tick;
movCI00us+l,#10H;#low(Tick)
epiLEDBuf;lOOus记数器为0,重置记数器
;取反LED
Exit:
popPSW
reti
Start:
movTMOD,#02h;方式2,定时器
movTHO,#tlOOus
movTLO.#tlOOus
movIE,#IOOOOOIOb;EA=LITO=1
setbTRO;开始定时
clrLEDBuf
clrP1.0
movClOOus.#27H;#high(Tick)
movC100us+l,#10H;#low(Tick)
Loop:
movc,LEDBuf
movP1.0,c
IjmpLoop
end
・〃**专,*余**拿**余**拿**余**余**余**余**余**拿**余*****今**拿**拿**今**拿**京
;文件名:8253forMCU51
;功能:8253定时/计数器实验
;接线:用导线连接CPU模块的8000到8253模决的CS_8253;
;频率发生器模块的153.6kHz接8253模块的CLK0:
;8253模块的CLK1接OUTO,CLK2接OUT1,GATE。、GATEkGATE2接+5V,
;OUT2接L0灯。
・〃***》*******************拿**拿**专**塞******》*******今**才**今*********
TIM_CTLEQU8OO3H;8253状态/命令口地址
TIMEROEQU8000H
TIMERIEQU8001H
TIMER2EQU8002H
MODE03EQU001I0110B
MODE12EQU01110I00B
MODE22EQU10I10100B
ORGOOOOH
LJMPSTART
ORG0030H
START:
MOVDPTR,#TIM_CTL;定时器0工作在方式3
MOVA,#MODE03
MOVX(g)DPTR,A
MOVDPTR,#TIMERO
MOVA,#00H
MOVX@DPTR,A
MOVA.#01H
MOVX@DPTR,A;计数初值为0100H,100分频
MOVDPTR,#TIM_CTL;定时器1工作在方式2
MOVA,#MODE12
MOVX@DPTR,A
MOVDPTR,#TIMERI
MOVA,#I8H
MOVX@DPTR.A
MOVA,#00H
MOVX@DPTR,A;计数初值为0018H,24分频
MOVDPTR,#TIM_CTL;定时器2工作在方式2
MOVA.#MODE22
MOVX@DPTR,A
MOVDPTR,#TIMER2
MOVA,#0AH
MOVX@DPTR,A
MOVA,#00H
MOVX@DPTR.A;计数初值为OOOAH,10分频
SJMP$
END
'/***»*a**4cHe**********事*****************京»*********
;文件名:EXimlorMCU51
;功能:外部中断实验
;接线:导线连接单次脉冲模块的输出端到CPU噗块的P32,
;CPU模块的P10接八位逻辑电平显示模块的L0灯。
,/***»***********************************»*********
LEDBITP1.0
LEDBufBIT20H
org0
IjmpStart
org3
InterruplO:
pushPSW;保护现场
epiLEDBuf;取反LED
movc,LEDBuf
movLED,c
popPSW;恢复现场
reti
Start:
clrLEDBuf
clrLED
movTCON,#01h;外部中断0下降沿触发
movIE,#8lh;打开外部中断允许位(EXO)及总中断允许位(EA)
OK:IjmpOK
end
J/***»**Hc*4c*****************************东»*暮**********************
;〃*文件名:I64I65串转并,并转串实验程序
;功能:把开关量通过74**165串行输入到内存,并通过74**164串行输出到数
;码管上显示。
;接线:P1.0接QHI65,PL1接CLK165,P1.2接SH_LD,
;Pl.3、PI.4接静态数码显示的DIN、CLKo
//***»***********************************»************************
QH165BITPI.0
CLK165BITPl.l
SHLDBITPl.2
DATI64BITPl.3
CLK164BITPl.4
MEMORYEQU30H
ORG0000H
AJMPSTART
ORGOOBOH
START:setbCLK165
clrSH_LD
sctbSH_LD
movr7,#8
Input:rra
movc,QH165
movACC.7,c
clrCLK165
nop
setbCLK165
djnzr7,Input
movMEMORY,A
movA,MEMORY
movr6,#8
Output:
rrcA
movDAT164,C
clrCLK164
setbCLK164
djnzr6.Output
acallDELAY
sjmpSTART
DELAY:
movRO,#5
DD2:movR1.#OFFH
djnzRLS
djnzR0,DD2
RET
END
;文件名:4LEDforMCU51
;功能:串行静态显示
;接线:用导线对应连接静态数码管显示模块的DIN、CLK到CPU模块的PIO、P1I
•〃***»***********************************»***************
DBUFEQU30H
TEMPEQU40H
DINBITP1.0
CLKBITPl.l
ORGOOOOH
LJMPSTART
ORG0080H
START:
MOVDBUF+3,#8
MOVDBUF+2,#0
MOVDBUF+L#5
MOVDBUF,#I
;显示“8051”
DISP:MOVRO,#DBUF
MOVRI,#TEMP
MOVR2,#4
DP10:MOVDPTR.#SEGTAB
MOVA,@R0
MOVCA,@A+DPTR
MOV@R1,A
INCRO
INCRI
DJNZR2,DPIO
MOVRO.#TEMP
MOVRI,#4
DPI2:MOVR2,#8
MOVA,@R0
DP13:RLCA
MOVDIN,C
CLRCLK
SETBCLK
DJNZR2,DPI3
INCRO
DJNZRi,DPI2
OK:SJMPOK
SEGTAB:DB3FH,06H,5BH.4FH.66H.6DII
DB7DH,07H,7FH,6FH,77H,7CH
DB39H,5EH.7BH,71H.00H.40H
END
・〃********************************今**4:***»***************
;文件名:825510forMCU5I
;功能:8255输入输出实验
;接线:用8位数据线连接八位逻辑电平输出模块的JD1E到8255模块的JD3C(PA1-1);
;八位逻辑电平显示模块的JD4B到8255模块的JD4c(PB口)或JD5C(PC口);
;用导线连接8255模块的CS.8255到地。
・〃**门***********************************»***************
D8255AEQU8000H;8255PA口地址
D8255BEQU800IH;8255PB口地址
D8255CEQU8002H;8255PC口地址
D8255EQU8003H;8255状态/命令口地址
ORGOOOOH
UMPSTART
ORG0I00H
START:
MOVDPTR.#D8255
MOVA.#82H;置8255状态
;方式0,PA,PC口输出,PB口输入
MOVA,#90H;置8255状态
;方式0,PBPC口输出,PA口输入
MOVX@DPTR,A
LOOP
MOVDPTR,#D8255A
MOVXA,@DPTR;读开关状态
MOVDPTR,#D8255B
MOVX@DPTR,A;点亮对应的LED
MOVDPTR,#D8255C
MOVX@DPTR,A;点亮对应的LED
SJMPLOOP
END
;文件名:8255KDforMCU51
;功能:8255控制犍盘显示实验
;接线:连接8279键盘显示模块的JD3E到8255模块的JD3C(PA口);
;JD2E至IJ8255模块的JD4C(PB口);
;JD4E到8255模块的JD5C(PCU);
;用导线连接8255模块的CS.8255到地。
・〃********今*****************************今**塞**今************
D8255AEQU8000H;8255PA口地址
D8255BEQU800IH;8255PB口地址
D8255CEQU8002H;8255PC口地址
D8255EQU8003H;8255状态/命令口地址
LEDBUFEQU50H;显示缓存
KEYVALEQU60H;读到的键码
ORG0000H
LJMPSTART
ORG0I00H
START:MOVSP,#80H
MOVDPTR,#D8255
MOVA.#90H;方式O,PB,PC口输出,PA口输入
MOVX@DPTR,A
MOVLEDBUF,#IOH
MOVLEDBUF+I,#11H
MOVLEDBUF+2,#1IH
MOVLEDBUF+3,#11H
MOVLEDBUF+4,#5
MOVLEDBUF+5.#5
MOVLEDBUF+6,#2
MOVLEDBUF+7,#8
KB_DIS:
LCALLRD_KB;读键盘
MOVA,#0FFH
CJNEA,KEYVAL,TOSHOW;判读到键
SJMPSHOW;没有则继续读键
TOSHOW:
MOVLEDBUEKEYVAL
SHOW:LCALLDISPLAY
SJMPKB_DIS
RD_KB:;键盘扫描
MOVA.#02H汨描第•行
MOVDPTR,#D8255C
MOVX@DPTR,A
MOVDPTR,#D8255A
MOVXA.@DPTR
MOVR1,#OOH
CJNEA.#OFFH,KEYCAL;判键是否按下
MOVA,#01H;扫描第二行
MOVDPTR,#D8255c
MOVX@DPTR,A
MOVDPTR,#D8255A
MOVXA.@DPTR
MOVRI,#08H
CJNEA.#OFFH,KEYCAL
SJMPNOKEY;无键按下
KEYCAL:MOVRO,#08H;计算梃码
SHIFT:RRCA
JNCTORET
INCRI
DJNZRO.SHIFT
SJMPNOKEY;无键按下
TORET:MOVKEYVAL.Rl
RET
NOKEY:MOVKEYVAL,#OFFH;返回无键标志
RET
Display:
MOVR7,#8;8个数码管
MOVR5,#0
MOVR0.#LEDBUF
DLOOP:
MOVA,R5
RLA
RLA
RLA
ANLA,#I1111O11B
INCR5
MOVDPTR,#D8255C
MOVX@DPTR,A;点亮对应的LED
MOVA,@R0
MOVDPTR,#LEDSEG
MOVCA,@A+DPTR
INCRO
MOVDPTR,#D8255B
MOVX@DPTR,A;显示数据
LCALLDelay
DJNZR7.DLOOP
RET
Delay:PUSHR7
MOVR7,#200
DelayLoop:
NOP
DJNZR7.DelayLoop
POPR7
RET
LEDSEG:DB3FH,06H,5BH.4FH.66H.6DH;0,1,2,3,4,5
DB7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B
DB39H,5EH,79H,71H,(X)H,40H;C.D,E.E
END
;文件名:8279forMCU51
;功能:8279控制键盘与显示
;接线:无须接线
・〃********今******************************才***************
Z8279EQU08701H;8279状态/命令匚地址
D8279EQU08700H;8279数据口地址
LEDMODEQU10H;右端输入八位字符显示;外部译码键扫描方式,双键互锁
LEDFEQEQU38H;扫描速率
LEDCLSEQU0DIH滴除
LEDWROEQU80H;设定的将要写入的显示RAM地址
ORGOOOOH
AJMPSTART
ORG0040H
START:
MOVSR#60H
LCALLIN1T8279;初始化8279
WAIT:MOVDPTR,#Z8279
MOVXA,@DPTR
ANLA,#0FH
JZWAIT
MOVA,#40H
MOVX@DPTR,A
MOVDPTR,#D8279
MOVXA.@DPTR
ANLA,#3FH
MOVR4.#OOH
MOVR5,A
LCALLDISLED
SJMPWAIT
INIT8279:;8279初始化子程序
PUSHDPH;保存现场
PUSHDPL
PUSHACC
LCALLDELAY;延时
MOVDPTR,#Z8279
MOVA,#LEDMOD;置8279工作方式
MOVX@DPTR,A
MOVA,#LEDFEQ;置键盘扫描速率
MOVX@DPTR,A
MOVA,#LEDCLS;清除LED显示
MOVX@DPTR,A
LCALLDELAY;延时
MOVDPTR,#Z8279
MOVA,#90H
MOVX@DPTR,A
MOVDPTR,#D8279
MOVA,#40H
MOVX@DPTR.A
MOVA,#40H
MOVX@DPTR,A
MOVA,#OH
MOVX@DPTR,A
MOVA,#OH
MOVX@DPTR,A
MOVA.#OEFH
MOVX@DPTR,A
MOVA.#27H
MOVX@DPTR,A
MOVA,#5BH
MOVX@DPTR,A
MOVA,#7FH
MOVX@DPTR.A
POPACC;恢复现场
POPDPL
POPDPH
RET
;显示字符子程序
瀚入:R4,位置R5,值
DISLED:PUSHDPH;保存现场
PUSHDPL
PUSHACC
MOVA,#LEDWR0;置显示起始地址
ADDA.R4;加位置偏移量
MOVDPTR,#Z8279
MOVX@DPTR,A;设定显示位置
MOVDPTR.#LEDSEG;置显示常数表起始位置
MOVA,R5
MOVCA,@A+DPTR渣表
MOVDPTR,#D8279
MOVX@DPTR,A;显示数据
POPACC;恢复现场
POPDPL
POPDPH
RET
DELAY:;延时子程序
PUSH0;保存现场
PUSH1
MOV0,#0H
DELAY1:MOV1,#OH
DJNZ1,$
DJNZ0,DELAY1
POP1;恢复现场
POP0
RET
LEDSEG:DB3FH.06H,5BH.4FH.66H.6DH.7DH.07H:Q1,2,345,6,7
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;'8,9,A,B,C,D,E,F'
DB6DH,02H,08H,00H,59H,0FH.76H;'U、,'
END
;//***»****«**京*****************************尊*************
;文件名:MusicforMCU5I
;功能:音频驱动实验一一生日快乐歌!
;接线:C3模块的JT3C短路帽接至右端、JT2c短路帽接至1、2端;
;8255模块的CS_8255接CPU模块的8000H;
;用导线连接语音接口模块的VOICE到8255模块的PCOo
・〃**拿》*专*****余**************今**今*************************
D8255AEQU8000H;8255PA口地址
D8255BEQU8001H;8255PB口地址
D8255CEQU8002H;8255PC口地址
D8255EQU8003H;8255状态/命令口地址
R8EQU60H
ORG0000H
LJMPSTART
ORGOBH;TIMER0中断起始地址
JMPTIMO;跳至TIMERO中断子程序
ORG0100H
START:
MOVTMOD.#00(XX)001B;设TIMERO在MODE1
MOVIE,#1000001OB;中断使能
MOVR8,#0
MOVDPTR,#D8255
MOVA,#80H;置8255状态,PC口输出
MOVX@DPTR,A
STARTO:MOV30H,#00;取筒谱码指针
NEXT:MOVA,30H;简谱码指针我入A
MOVDPTR,#TABLESTABLE取简谱码
MOVCA,@A+DPTR
MOVR2,A;取到的简谱码暂存于R2
JZENDO;是否取到00(结束码)?
ANLA,#0FH;不是,则取低4位(节拍码)
MOVR5.A;将节拍码存入R5
MOVA,R2;将取到的简谱码再载入A
SWAPA;高低4位交换
ANLA,#0FH;取低4位(音符码)
JNZSING;取到的音符码是否为0?
CLRTRO;是:则不发音
JMPDI;跳至DI
SING:DECA;取到的音符码减1(不含0)
MOV22H.A;存入(22H)
RLA;乘2
MOVDPTR,#TABLE1取相对的高位字节计数值
MOVCA.@A+DPTR
MOVTH0,A;取到的高位字节存入TH0
MOV21H.A;取到的高位字节存入(21H)
MOVA,22H;再载入取到的音符码
RLA谏2
INCA;加1
MOVCA,@A+DPTR取相对的低位字节计数值
MOVTLO,A;取到的低位字节存入TL0
MOV20H.A;取到的低位字节存入(20H)
SETBTRO;启动TIMER0
DI:CALLDELAY;基本单位时间1/4拍187亳秒
INC30H;取简谱码指针加1
JMPNEXT;取下一个码
ENDO:CLRTRO;停止TIMER0
JMPSTARTO;重且循环
TIMO:PUSHACC;将A的值暂存于堆栈
PUSHPSW;将PSW的值暂存于堆栈
MOVTL0.20H;重设计数值
MOVTH0.21H
CPLPI.0;将P10位反相
MOVA.R8
CPLA
MOVR8.A
MOVDPTR.#D8255C
MOVX@DPTR,A
POPPSW;至堆栈取回PSW的值
POPACC;至堆栈取回A的值
RETI;返回主程序
DELAY:MOVR6,#02;18,邕秒
D2:MOVR4,#120
D3:MOVR3,#248
DJNZR3,$
DJNZR4.D3
DJNZR6,D2
DJNZR5.DELAY;决定节拍
RET
TABLEI:
DW64260,64400.64524.64580
DW64684,64777,64820,64898
DW64968,65030,65058,65110
DW65157,65178,65217
TABLE:
DB82H,01H,81H,94H,84H
DB0B4H.0A4H.04H
DB82H,01H,81H,94H,84H
DB0C4H.0B4H,O4H
;2
DB82H,01H,81H,0F4H,0D4H
DB0B4H.0A4H,94H
DB0E2H,01H,0E1H,0D4H,0B4H
DB0C4H.0B4H.04H
;3
DB82H.01H.81H.94H.84H
DB0B4H,0A4H,04H
DB82H,01H,81H,94H,84H
DB0C4H.0B4H.04H
./I
DB82H.01H.81H.0F4H.0D4H
DB0B4H,0A4H,94H
DB0E2H.01H.0E1H,0D4H.0B4H
DB0C4H,0B4H,O4H
DB00
END
w***»***********************************»***************
;文件名:LEDDZforMCU51
;功能:LED点阵显示实验
;接线:B2模块的JT1B短路帽接至右端:
;用导线对应连接双色点阵显示模块的DN、SCLK、RCLK到
;CPU模块的PIO、PU、P12o
;文字滚动向左
DinBITPI.0
CLKBITPl.l
R_CLKBITPl.2
ORGOOOOH
JMPMAIN
ORGOOOBH
UMPINTS_TO;定时中断
ORG01OOH
MAIN:
CLREA
MOVR2,#0
MOVRI,#32;32个字符
MOVR0,#40H
MOVDPTR,#TAB
MOVEDATA:;把全部字符豆制到40H
MOVA,R2
MOVCA,@A+DPTR
MOV@R0,A
INCR2
INCRO
DJNZRi,MOVEDATA
MOVTMOD,#01H;定时器0工作方式为1
MOVTLO,#OAFH;置计数初值
MOVTH0.#080H;OFFFFH-3CAFH=50000,50mS
MOVR7,#5;软件计数器.循环5次
SETBETO;允许TO中断
CLRETI;禁止T1中断
SETBEA
SETBTRO
CLRR.CLK
MOVSR#60H
MOVR3.#O8OH涕一行
AO:MOVR2,#08H
MOVR0.#40H
LOOP
;MOVDPTR.#TAB;字符首地址
MOVRI,#4
MOVA.R3
RRA;行码右移一位转下一行
MOVR3,A
LCALL,OUTDATA
Al:MOVA,@R0
LCALL,OUTDATA
INCRO
DJNZRI,Al
SETBR_CLK;显示一行
CLRR_CLK
DJNZR2.LOOP;下一行
LJMPAO
LJMPMAIN
OUTDATA:
MOVR6.#8
OUTI:RRCA
MOVDIN.C
CLRCLK
SETBCLK
NOP
NOP
DJNZR6,OUT1
RET
INTS_TO:
CLREA
PUSH0E0H
PUSH00H
PUSH01H
PUSH02H
DJNZR7.BACK;软件计数,次数不到返回
MOVR7,#5
MOVR0,#40H
MOVRI,#8
SHIFTI:
MOVR2.#4
CLRC
PUSHOOH
MOVA,RO
ADDA.#3
MOVRO,A
MOVA.@R0
POPOOH
RLCA
SHIFT2:
MOVA,@R0
RLCA
MOV@R0,A
INCRO
DJNZR2.SHIFT2
DJNZRl.SHIFTI
BACK:
POP02H
POPOIH
POPOOH
POPOEOH
MOVTMOD,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湘教版选择性必修1物理下册月考试卷含答案
- 2025年人教新课标高一地理上册月考试卷
- 2025年冀教新版九年级语文下册月考试卷
- 2025年苏人新版七年级历史上册月考试卷含答案
- 2025年外研版八年级科学上册阶段测试试卷
- 2025年湘教新版九年级历史上册月考试卷
- 二零二五年度体育产业投资担保合同3篇
- 2025年度智能门禁系统租赁合同范本升级版4篇
- 2025年度民间借贷裁判观点汇编及法律适用指南合同4篇
- 2025版模板工建筑工程施工图审查合同范本(含技术要求)4篇
- 五年级上册寒假作业答案(人教版)
- 2025年山东浪潮集团限公司招聘25人高频重点提升(共500题)附带答案详解
- 2024年财政部会计法律法规答题活动题目及答案一
- 2025年江西省港口集团招聘笔试参考题库含答案解析
- (2024年)中国传统文化介绍课件
- 液化气安全检查及整改方案
- 《冠心病》课件(完整版)
- 2024年云网安全应知应会考试题库
- 公园保洁服务投标方案
- 光伏电站项目合作开发合同协议书三方版
- 2024年秋季新沪教版九年级上册化学课件 第2章 空气与水资源第1节 空气的组成
评论
0/150
提交评论