赛派号

单片机mov指令实例 51汇编

定时1s亮灭10次

ORG 0000H LJMP MAIN ORG 000BH LJMP TIMER0 ORG 0030H MAIN: MOV R0,#10 ;循环10次,使定时100ms*10产生1s MOV R1,#20 ;循环20次,亮10次,灭10次 MOV TMOD,#01H ;工作方式1 MOV TH0,#3CH ;计数器初值 MOV TL0,#0B0H SETB ET0 ;开启定时/计数器(T0)中断允许位 SETB EA ;开启总中断 SETB TR0 ;开启定时/计数器(T0)运行控制位,为1时启动定时计数 SETB P1.0 ;先灭1s SJMP $ TIMER0: MOV TH0,#3CH ;重装初值 MOV TL0,#0B0H DJNZ R0,EXIT CPL P1.0 ;亮灭取反 MOV R0,#10 DJNZ R1,EXIT CLR EA ;关中断 EXIT: RETI END

方式2计数,方式1定时,循环

ORG 0000H LJMP MAIN ORG 000BH LJMP TIMER1 ORG 0030H MAIN: MOV TMOD,#06H ;工作方式2计数 MOV TH0,#156 ;计数100个脉冲 MOV TL0,#156 SETB ET0 ;定时器中断初始化 SETB EA SETB TR0 ;TR0为1开始计数,此时标志位F0为0 SETB F0 ;标志位置1 SJMP $ ;程序原地踏步,定时和计数不停地来回切换 TIMER1: ;中断用于切换工作方式和装填初值 JNB F0,TRANS ;标志位为0则跳 MOV TMOD,#01H ;方式1 MOV TH0,#0FEH MOV TL0,#0CH SJMP EXIT TRANS: MOV TMOD,#06H MOV TH0,#156 MOV TL0,#156 EXIT: CPL F0 ;标志位取反 RETI

串行口发送

采用串口工作方式1将8051单片机P1口采集的8位数据实时串行传输。无需奇偶校验,采用中断方式。波特率为9600波特(晶振频率为11.0592MHz)。

ORG 0000H LJMP MAIN ORG 0023H LJMP SEND ORG 0030H MAIN: MOV SCON,#40H MOV PCON,#00H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 SETB EA SETB ES MOV P1,#0FFH ;P1输入 MOV A,P1 MOV SBUF,A SJMP $ SEND: CLR TI MOV P1,#0FFH MOV A,P1 MOV SBUF,A RETI

串行口接收

采用串口工作方式1接收8位串行数据,由P1口输出。无需奇偶校验,采用中断方式。波特率为9600波特(晶振频率为11.0592MHz)。

ORG 0000H LJMP MAIN ORG 0023H LJMP RECEIVE ORG 0030H MAIN: MOV SCON,#50H MOV PCON,#00H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 SETB EA SETB ES SJMP $ RECEIVE: CLR RI MOV A,SBUF MOV P1,A RETI

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lsinopec@gmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了