课程设计说明Word文档格式.docx
- 文档编号:17340718
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:11
- 大小:68.11KB
课程设计说明Word文档格式.docx
《课程设计说明Word文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计说明Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
对于没有±
12V电源的场合,其适应性更强
图3MAX232芯片引脚
图4中,上半部分的的电容C1,C2,C3,C4以及V+,V-是电源变换电路部分。
在实际应用中,器件对电源噪声很敏感。
因此,VCC必须要对地加去耦电容C5,电容C1,C2,C3和C4取同样数值的钽电容,用以提高抗干扰能力。
在连接时必须尽量靠近器件。
下半部分为发送和接收部分。
实际应用中T1IN和T2IN可直接接TTL/CMOS电平的89C52单片机的串行发送端TXD;
R1OUT和R2OUT可直接接TTL/CMOS电平的89C52单片机的的串行接收端;
T1OUT和T2OUT可直接接PC的RS-232串口的接收端RXD;
R1IN和R2IN直接接PC的RS-232串口的发送端TXD。
图4MAX232典型工作电路图
(3)9针串口:
一个完整的RS-232接口是一个25针的D型插头座,25针的连接器实际上只有9根连接线,所以就产生了一个简化的9针D型RS-232插头座,常用的就是一个9针的D型插头座。
EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定:
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V
介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义。
因此如果要进行通信,还要对信号的电平进行转换,比如使用MAX3232芯片来转换电平。
使用串口进进行通信时,我们最主要关心的时以下这三个引脚:
5GND
2RXD
3TXD
要完成数据的发送与接收就必须要到上面这三个引脚。
而其它引脚是用来控制传输规则的,即握手协议。
下面是9针串口(DB9),引脚功能。
引脚号
缩写
英文全称
功能说明
1
DCD
DataCarrierDetection
数据载波检测
2
RXD
ReceiveData
接收数据
3
TXD
TransmitData
发送数据
4
DTR
DataTerminalReady
数据终端准备
5
GND
SystemGround
信号地
6
DSR
DataSetReady
数据设备准备好
7
RTS
RequesttoSend
请求发送
8
CTS
CleartoSend
清除发送
9
RI
RingIndicator
振铃指示
图5九针串口引脚功能
5.3.2模块实现
51单片机串口通信电路图
ORG0000H
MOVSCON,#50H;
设置成串口1方式
MOVTMOD,#20H;
波特率发生器T1工作在模式2上
MOVPCON,#80H;
波特率翻倍为2400x2=4800BPS
MOVTH1,#0F3H;
预置初值(按照波特率2400BPS预置初值)
MOVTL1,#0F3H;
SETBTR1;
启动定时器T1
;
以上完成通讯初始化设置
WRIT:
JBP3.6,$;
判断K1是否按下,如果没有按下就等待
ACALLDELAY10;
延时10毫秒消触点抖动
JBP3.6,WRIT;
去除干扰信号
JNBP3.6,$;
等待按键松开
MOVA,#0AFH;
将16进制的字符AF发送到串口去
MOVSBUF,A;
将AF通过串口发送出去
AJMPWRIT
10毫秒延时子程序
DELAY10:
MOVR4,#20
D2:
MOVR5,#248
DJNZR5,$
DJNZR4,D2
RET
END
=============两机串口通讯程序(主机)=====================
功能:
使用串行中断,接收数据并显示
硬件环境:
自制单片机实验板
软件环境:
伟福V3.20
Createdate:
2004_07_26
FirstModify:
secondModify:
LastModify:
Author:
Sujiande
===========预定义===================
LED0EQU40H;
预定义数码管
LED1EQU41H;
预定义数码管
LED2EQU42H;
LED3EQU43H;
LED4EQU44H;
LED5EQU45H;
LED6EQU46H;
LED7EQU47H;
SDABITP0.1;
定义数据线引脚定义
SCLBITP0.0;
定义时钟线引脚定义
---------------------------
ORG0000H;
主程序入口
AJMPMAIN;
跳转到主程序
ORG0100H;
主程序在ROM中存放位置
===============主程序=====================
MAIN:
MOVLED0,#00H;
赋初值
MOVLED1,#00H
MOVLED2,#16;
赋初值为16,数码管显示代码为:
灭
MOVLED3,#16
MOVLED4,#16
MOVLED5,#16
MOVLED6,#16
MOVLED7,#16
--------------------
MOVDPTR,#TABLE;
赋显示代码首地址
MOVR1,#00H;
给R1赋初值00H
ACALLDISPLAY;
调显示子程序
MOVSP,#30H;
给堆栈指针赋初值
--------------------------
使用定时器1,作为波特率发生器,设定波特率=9600,
定时器初值为:
FAH
串行控制器设置:
SM0=0,SM1=1,SM2=0,REN=1,TB8=0,
RB8=0,TI=0,RI=0即01010000B
波特率加倍
-----------------------------
MOVTMOD,#20H;
设置定时器1,工作方式2
MOVTH1,#0FAh;
赋初值:
FA
MOVTL1,#0FAh;
MOVSCON,#50h;
设置串行口控制寄存器
MOVPCON,#80h;
设置电源控制寄存器,让波特率加倍(2X)
SETBTR1;
启动定时
*****************主程序结束************************
LP8:
MOVA,R1;
将1的数据装到A中
-----------------------
MOVSBUF,A;
将A的数据送到缓冲区
JNBTI,$;
等待数据发送完毕
CLRTI;
清发送中断标志
INCR1
CJNER1,#99,LP3
MOVR1,#00H
LP3:
ACALLSEPERATE;
调拆分程序
调显示子程序
ACALLDELAY_1S;
调延时子程序
AJMPLP8
=================拆分程序=====================
SEPERATE:
ANLA,#0Fh;
与操作得到个位数据
MOVLED0,A;
个位送LED0
MOVA,R1
ANLA,#0F0H;
与操作得到十位数据
SWAPA
MOVLED1,A;
十位送LED1
===============显示子程序=====================
DISPLAY:
MOVA,LED0;
查表数据送A
MOVCA,@A+DPTR;
查表,得到显示代码
ACALLSHIFT;
调移位子程序
MOVA,LED1
MOVCA,@A+DPTR
ACALLSHIFT
MOVA,LED2
MOVA,LED3
MOVA,LED4
MOVA,LED5
MOVA,LED6
MOVA,LED7
---------显示代码表---------
TABLE:
DB11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H;
0,1,2,3,4,5,6,7,8,9,
DB50H,1CH,39H,16H,38H,78H,0FFH,0FEH,0EFH;
10,11,12,13,14,15,灭,-
================移位子程序============================
SHIFT:
PUSHA;
进栈暂存A值
MOVR0,#8;
循环8次
CLRC;
清进位标志
CLRSCL;
时钟线,先钳位为0
LP2:
RLCA
MOVSDA,C
NOP
SETBSCL
NOP
CLRSCL
DJNZR0,LP2
POPA;
出栈恢复A值
=============延时子程序===============
DELAY_1S:
MOVR7,#0ffH
LOOP7:
MOVR6,#0ffH
LOOP6:
NOP
DJNZR6,LOOP6
DJNZR7,LOOP7
------------------------------
=============两机串口通讯程序(从机)=====================
ORG0023H;
中断入口地址
AJMPS_INT;
跳转到中断程序
==============主程序========================
赋初值
MOVLED3,#16
--------------------------------------------
---------------------------------------------
FA
---------------------------------------
SETBEA;
启动总中断
SETBES;
启动串行中断
AJMP$;
等待中断
===============中断服务程序=============================
S_INT:
MOVR1,SBUF;
将缓冲区的数据送到R1
ACALLSEPERATE;
CLRRI;
清接收中断标志
RETI;
中断返回
MOVA,R1
ANLA,#0Fh;
SWAPA;
===============显示子程序======================
ACALLSHIFT
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 说明