- 12
- 0
- 约1.15千字
- 约 3页
- 2020-08-30 发布于江苏
- 举报
一个用于单片机和上位机通讯的简单程序, 程序中采用 2400 波特率, 11.0592M 晶振,8
位, 无校验。 程序采用了简单的握手协议也就说当 PC机通讯软件发小写字母 j 的时候,
单片机再回应字符串 jLQGk 给上位机。 你可采用串口调试助手配合完成你的实验, 也可
以采用 proteus 软件中的虚拟终端进行仿真调试, 后者很方便。 晶振 12M时波特率因子
为 F3H,11.0592M 时定时因子为 F4H,均可正常通讯。
ORG 0000H
SJMP MAIN ; 转主程序
ORG 0023H
AJMP SINTER ; 串行中断
ORG 0030H
MAIN: NOP
NOP
RESET: MOV SP,#60H
MOV SCON,#50H ;8 位 UART,串行通道工作方式 1,REN=1,允许接收
MOV PCON,#0 ; 波特率不加倍 ,RB8=TB8=RI=TI=0
MOV TMOD,#21H ;T1 方式 2( 波特率发生器 )
MOV TH1,#0F3H
MOV TL1,#0F3H ; 波特率 =2400(+0.16%)
SETB ET0 ;T0 开中断
SETB TR0 ;T0 运行
CLR ET1 ; 禁止定时器溢出中断
SETB TR1 ; 启动定时器 T1
SETB PS ; 串行通讯中断优先级为高
SETB ES ; 开串行通讯中断
SETB EA ; 开总中断
SJMP $
;-----------------------------------
SINTER: NOP
NOP
CLR ES
PUSH ACC
PUSH PSW
CLR PSW.4
SETB PSW.3
JNB RI,$
CLR RI
RVDATA: MOV A,SBUF
CJNE A,#j,LEND ;[0] 握手字节 j, 否则退出
MOV A, #j ;[1] 发送准备信号 j
CALL SBYTE
MOV 30H,#L
MOV 31H,#Q
MOV 32H,#G
MOV R1,#3
MOV R0,#30H
SENDLOOP:MOV A,@R0
CALL SBYTE ;[2] 发送数据块 3 字节
INC R0
DJNZ R1,SENDLOOP
MOV A,#k ;[3] 发结束标志 k
CALL SBYTE
LEND: NOP
NOP
POP PSW
POP ACC
SETB ES
NOP
NOP
RETI
;------------------------------------
SBYTE: NOP
NOP
MOV SBUF,A
JNB TI,$
CLR TI
RET
;----------------------------------
END
(下图中勾选的选项表示, 键盘输入的内容也显示在终端屏幕上, 否则键盘输入不显示,
仅仅显示单片机终端发来的内容,其他选项不细述,快去试试吧,很好玩的, lqg )
您可能关注的文档
最近下载
- 2025年版维医医师资格考试大纲.docx VIP
- 常用汉字表(2500字).pdf VIP
- 高中英语2025届高考热点环保主题作文素材(词汇+模板).doc VIP
- 2026年春季统编版(部编版)2024新教材二年级下册道德与法治教学计划、教学设计及教学反思(附目录).docx
- 高中英语2025届高考热点青少年心理健康主题作文固定搭配短语汇总.doc VIP
- (2025春)部编版一年级下册道德与法治全册教案 (新版本).docx
- 国家电网招聘考试综合能力(判断推理)模拟试卷2.docx VIP
- 运动损伤与康复-全套PPT课件.pptx
- 凌文铨组织承诺问卷.doc VIP
- 医美整形现场咨询绝对成交技巧话术.docx VIP
原创力文档

文档评论(0)