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

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

来源:网络收集 时间:2026-07-17
导读: 表4-3 常用的各种波特率 Timer1 波特率(bit/s) 4800 2400 1200 19200 9600 4800 2400 1200 Fosc(MHZ) 12 12 12 11.059 11.059 11.059 11.059 11.059 SMOD C/T 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 模式 2 2 2 2 2 2

表4-3 常用的各种波特率

Timer1 波特率(bit/s) 4800 2400 1200 19200 9600 4800 2400 1200 Fosc(MHZ) 12 12 12 11.059 11.059 11.059 11.059 11.059 SMOD C/T 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 模式 2 2 2 2 2 2 2 2 自动载入 F3H F3H F6H FDH FDH FAH F4H F8H UART的中断要求:

其中断要求有两种方式:(1)当UART的接收器(RXD)接收到一个字节的数据且将其存入SBUF

寄存器后,就会将RI设定为1,而对AT89C51提出中断要求。(2)当UART的发送器将SBUF寄存器的8个位数据发送出去后,会将TI设定为1。

UART中断要求设定的步骤:

1.设定UART中断起始地址。

ORG 23H JMP

UART

2.设定TIMER1工作在MODE2

MOV

TMOD,#00100000B

3.设定波特率为2400

ANL MOV

4.启动计时器

SETB

TRX

PCON,#01111111B TH1,#0F3H

5.设定UART工作方式

MOV

SCON,#01××0000B

3.设定UART中断功能

MOV

IE,#10010000B

4.3 键盘扫描子程序设计

键盘扫描的步骤:

(1)设置P1口初始值07FH;

第16页,共37页

(2)P1口右移,检测行; (3)P1口左移,检测列; 流程图如图4-2所示。

键盘接口程序如下:

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

MOV R1,#00H ;取码指针初值 D3: MOV A,R3 ;载入扫描指针

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

;读入P2

CLR C CPL C

;令C=1

MOV R5,#04H ;检测列 D4: RLC A

;左移一位(P2.7~P2.4) JNC KEYIN ;检测行C=0,表示被按 INC R1 ;没按则取码指针加1 DJNZ R5,D4 ;4列检测完毕了?

MOV A,R3 CLR C CPL C ;C=1

RRC A

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

MOV R3,A ;存回R3扫描指针寄存器 JC D3

;C=0表示扫描完毕

RET

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

MOV R7,#10 ;消除抖动 D5: MOV R6,#248 DJNZ R6,$

DJNZ

R7,D5

D6: MOV A,P2

;按钮放开否?

XRL

A,R4

4.4 按键发声子程序的设计

按键发声子程序框图如图4-3所示。 程序如下:

ORG 00H

;主程序其始地址

图4-2 读键输入子程序框图 图4-3按键发声子程序框图 第17页,共37页

JMP START ORG 0BH JMP TIM0

;跳至主程序 ;TIMER0中断其始地址 ;跳至TIMER0中断子程序

START: MOV MOV

SETB

D1: CALL CLR JB MOV RL MOV MOVC MOV MOV MOV RL A INC A MOVC MOV

MOV

D2: CALL SETB JB

JMP KEY: SETB MOV

MOV D3: MOV MOV

MOV

TMOD,#00000001B ;设定TIMER0工作在MODE1 IE,#10000010B ;中断使能

TR0

;启动TIMER0

KEY ;调用KEY,判断是否有按下?

EA ;中断屏蔽 F0,D1 ;没按则F0=1,没按则F0=0

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

;乘2

DPTR,#TABLE ;至TABLE取码,取T的值 A,@A+DPTR; TH0,A ;取到的高位字节存入TH0 21H,A ;取到的高位字节存入(21H) A,22H ;再载入取码指针

;乘2

;加1

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

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

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

;有则跳至D2

F0

;设F0=1

R3,#0F7H;扫描初值(P2.3=0) R1,#00H ;取码指针初值 A,R3 ;载入扫描指针

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

;读入P2

第18页,共37页

CLR CPL MOV RLC JNC INC DJNZ MOV CLR CPL RRC MOV JC RET

C C

;令C=1

R5,#04H ;检测列 A

;左移一位(P2.7~P2.4) ;检测行C=0,表示被按 ;没按则取码指针加1 ;4列检测完毕了?

D4:

KEYIN R1 R5,D4 A,R3 C C A

;C=1

;扫描下一行,即下一行为0 ;存回R3扫描指针寄存器 ;C=0表示扫描完毕

R3,A D3

KEYIN: MOV

CLR RET PUSH PUSH MOV MOV CPL POP POP RETI

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

;令F0=0

TIM0:

ACC PSW

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

TL0,20H ;重设计数值 TH0,21H P3.4 PSW ACC

;将P3.4反相 ;至堆栈取回PSW的值 ;至堆栈取回A的值

TABLE: DW 64021,64103,64260,64400

DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178

5软硬件调试及结果

5.1 软件仿真

软件仿真使用的是ISIS 6 Professional,它可以完成单片机的电路仿真。图5-5-1是软件仿真的结果。

第19页,共37页

图5-1-1 软件仿真的结果

5.2硬件焊接

硬件的焊接是毕业设计中重要的环节,用的工具很简单:电烙铁、焊丝和镊子。因为我们选用的是实验板,所以要用导线把各个元器件连接起来,这就要有一定的技术基础,幸好这个在我们以前的生产实习中已经掌握。焊接要细心,还要有耐心。焊接前要对照电路图对元器件有一个合理的布局,那样的话就会使电路简洁明朗,而且不易出错,即使出错也容易检查。 5.3调试

调试的时候,PC机可以使用ComTools串口调试工具,而不必自己编写程序。ComTools的界面

如图5-3-1所示。

图5-3-1 ComTools串口调试工具操作界面

它的主要功能如下:

可设置各种通讯速率、奇偶校验、数据位和停止位;

可分别设置ASCII码(包括中文)或十六进制数据格式的发送模式或接收模式; 能将接收数据保存成文本文件,便于观察分析; 自动保存设置参数,无需每次重新设置;

第20页,共37页

…… 此处隐藏:1156字,全部文档内容请下载后查看。喜欢就下载吧 ……
单片机与PC机串口通信的设计(6).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)