教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

单片机与PC机串口通信的设计(11)

来源:网络收集 时间:2026-07-17
导读: 附录C 电路图 第31页,共37页 附录D 源程序 RS BIT P3.5 RW BIT P3.6 E BIT P3.7 ORG 00H ;主程序其始地址 JMP START ;跳至主程序 ORG 0BH ;TIMER0中断其始地址 JMP TIM0 ;跳至TIMER0中断子程序 START: MOV P1,#01H

附录C 电路图

第31页,共37页

附录D 源程序

RS BIT P3.5 RW BIT P3.6 E BIT P3.7 ORG 00H ;主程序其始地址 JMP START ;跳至主程序

ORG 0BH ;TIMER0中断其始地址

JMP TIM0

;跳至TIMER0中断子程序

START: MOV P1,#01H ;清除屏幕

CALL ENABLE MOV P1,#38H ;功能设定(8位,2行,5×7点矩阵) CALL ENABLE MOV P1,#08H ;显示器ON,光标ON,闪烁ON

CALL ENABLE MOV P1,#06H ;光标右移

CALL ENABLE MOV P1,#80H CALL ENABLE MOV SCON,#50H ;UART工作在MODE1,SM1=1,REN=1

MOV TMOD,#21H

;设定TIMER0工作在MODE1,TIMER1工作在MODE2

MOV IE,#10000010B ;中断使能 MOV TH1,#0F3H ;波特率2400 MOV TL1,#0F3H

SETB TR0 ;启动TIMER0

SETB

TR1

;启动TIMER1

D1: JB RI,UART ;检测SCON的RI是否为1,是则表示接收到

CALL KEY ;调用KEY,判断是否有按下? CLR EA ;中断屏蔽 JB F0,D1 ;没按则F0=1,没按则F0=0

MOV A,22H

;有按则将取码指针暂存地址的值载入A

RL A

;乘2

MOV

DPTR,#TABLE ;至TABLE取码,取T的值

第32页,共37页

MOVC A,@A+DPTR; MOV MOV MOV RL INC MOVC MOV

MOV

D2: JB CALL SETB JB

JMP

UART:

MOV MOV CALL CALL CALL CLR

RET

KEY:

SETB MOV

MOV

D3: MOV MOV MOV MOV CLR CPL

MOV

TH0,A ;取到的高位字节存入TH0 21H,A ;取到的高位字节存入(21H) A,22H

;再载入取码指针

A ;乘2 A

;加1

A,@A+DPTR ;至TABLE取相对的低位字节计数值 TL0,A ;取到的高位字节存入TL0 20H,A

;取到的高位字节存入(20H)

RI,UART ;检测SCON的RI是否为1,是则表示接收到

KEY ;调用KEY,判断是否有键按下 EA; ;中断使能 F0,D1

;有按否?

D2;

;有则跳至D2

A,SBUF ;将SBUF的值载入ACC

P1,#0CH ;显示器ON,光标OFF,闪烁OFF

ENABLE; WRITE2 ;调用显示子程序

CHECK

;判断光标是否在屏幕最后位置 RI

;清除RI=0

F0 ;设F0=1

R3,#0F7H ;扫描初值(P2.3=0) R1,#00H

;取码指针初值

A,R3 ;载入扫描指针

P2,A ;输出至P2,开始扫描行 A,P2

;读入P2

R4,A C C

;令C=1

R5,#04H

;检测列

第33页,共37页

D4: RLC JNC INC DJNZ MOV CLR CPL RRC MOV JC

RET

KEYIN: MOV CLR

MOV

D5: MOV DJNZ

DJNZ

D6: MOV XRL JZ MOV CALL MOV MOV MOVC MOV MOV CALL CALL

RET

TIM0:

A

;左移一位(P2.7~P2.4) KEYIN

;检测行C=0,表示被按

R1 ;没按则取码指针加1 R5,D4

;4列检测完毕了?

A,R3 C C ;C=1

A

;扫描下一行,即下一行为0 R3,A

;存回R3扫描指针寄存器

D3

;C=0表示扫描完毕

22H,R1 ;取码指针存入22H地址

F0

;令F0=0

R7,#10

;消除抖动

R6,#248 R6,$ R7,D5

A,P2 ;按钮放开否?

A,R4 D6

P1,#0FH ;显示器ON,光标ON,闪烁ON

ENABLE A,R1

;至TABLE1取码

DPTR,#TABLE1 A,@A+DPTR SBUF,A ;载入SBUF发送出去 P1,A

;LCD显示

WRITE2 CHECK

;判断光标是否在屏幕最后位置第34页,共37页

PUSH PUSH MOV MOV CPL POP POP

RETI

CHECK:

MOV CLR SETB CLR NOP SETB JB MOV ANL CJNE MOV

CALL

A3: RET CLEAR: MOV CALL MOV CALL

RET

ENABLE:

CLR CLR CLR CALL SETB

RET

ACC ;将A的值暂存于堆栈 PSW

;将PSW的值暂存于堆栈

TL0,20H ;重设计数值

TH0,21H P3.4

;将P3.4反相

PSW ;至堆栈取回PSW的值 ACC

;至堆栈取回A的值

P1,#0FFH ;令P1=FFH

RS ;RS=0,R/W=1,读BUSY FLAG地址计数器

RW E

E

P1.7,CHECK ;BUSY FLAG=0? A,P1

;是则读入内部地址(光标) A,#7FH ;内部地址DB7无效

A,#48,A3 ;内部地址第2行最后一个字地址为4F P1,#80H ;是则令光标回到80H位置

ENABLE

P1,#01H ;清屏

ENABLE P1,#80H ;令光标回到第一行第一个字位置 ENABLE

RS ;RS=0,R/W=0写入指令组

RW E DELAY E

第35页,共37页

…… 此处隐藏:512字,全部文档内容请下载后查看。喜欢就下载吧 ……
单片机与PC机串口通信的设计(11).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/520285.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)