串行口及串行通信技术讲稿.ppt

上传人:石*** 文档编号:38211735 上传时间:2022-09-03 格式:PPT 页数:74 大小:2.64MB
返回 下载 相关 举报
串行口及串行通信技术讲稿.ppt_第1页
第1页 / 共74页
串行口及串行通信技术讲稿.ppt_第2页
第2页 / 共74页
点击查看更多>>
资源描述

《串行口及串行通信技术讲稿.ppt》由会员分享,可在线阅读,更多相关《串行口及串行通信技术讲稿.ppt(74页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、关于串行口及串行通信技术第一页,讲稿共七十四页哦什么是串行通信? 计算机1 GND 计算机2 GND并行通信 计算机1 GND 计算机2 GND发送接收串行通信v快、多(数据线)、近慢、少、远第二页,讲稿共七十四页哦发送器A站接收器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)第三页,讲稿共七十四页哦v 异步通信异步通信第四页,讲稿共七十四页哦v 同 步 通 信同 步 通 信同步字符可由通信双方约定,也可采用ASCII码中规定的SYNC代码,即16H。数据数据数据数据数据同步字符同步字符1同步字符2同步传送时,要求用时钟来实现发送端与接收端之间的同步。第五页,讲稿共七十四页哦波

2、特率(Band rate)。第六页,讲稿共七十四页哦举例第七页,讲稿共七十四页哦根据串行通信的格式及约定(如:同步方式、通讯速率、数据块格式、信号电平等)不同,形成了多种串行通信的协议与接口标准。常见的有:通用异步收发器(UART)本课程介绍的串口通用串行总线(USB)I2C总线CAN总线SPI总线RS-485,RS-232C,RS422A标准等等串行通信的基本特征是数据逐位顺序进行传送。第八页,讲稿共七十四页哦 串行口及串行通信技术串行通信基本知识89C51串口及其应用两个单片机之间的通信单片机与PC机之间的通信第九页,讲稿共七十四页哦 波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为

3、b/s,即位/秒。89C51的串行接口第十页,讲稿共七十四页哦图7-7return第十一页,讲稿共七十四页哦串行口结构 引脚RXD (P3.0串行数据接收端) 引脚TXD (P3.1串行数据发送端) MOV SBUF, A :发送数据到串口引脚 MOV A , SBUF :接收数据 RI :从串口上接收数据到SBUF RI=1 TI :数据从SBUF向外发送完 TI=1,99SBUFH 接收缓冲器发送缓冲器第十二页,讲稿共七十四页哦MCS-51串行接口寄存器第十三页,讲稿共七十四页哦控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的

4、第9位发送数据的第9位接收中断标志发送中断标志9FH9EH9DH9CH9BH9AH99H98HvSM2置置1,多机通信,用于方式,多机通信,用于方式2和方式和方式3D81,地址帧,地址帧D80,数据帧,数据帧vSM2置置0,不属于多机通信,不属于多机通信第十四页,讲稿共七十四页哦SM0 SM1工作方式功能波特率0 0方式08位同步移位寄存器fosc/120 1方式110位UART可变1 0方式211位UARTfosc/64或fosc/321 1方式311位UART可变串行方式的定义第十五页,讲稿共七十四页哦电源及波特率选择寄存器PCONSMOD GF1 GF0PDIDL87H第十六页,讲稿共七

5、十四页哦串行口四种工作方式应用比较工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART数据、起始、校验、结束位可变(取决于定时器1溢出率)波特率的设定可参见表7.2,实际无需计算。表第十七页,讲稿共七十四页哦方式01283456 10 11 12 13数 据 输 出移 位 脉 冲RXDTXD805174LS164D7D6 D5 D4 D3 D2 D1 D0方式0用于扩展I/O口输出第十八页

6、,讲稿共七十四页哦926543 14 13 12 11数 据 输 入移 位 脉 冲RXDTXD805174LS165D7D6D5D4D3D2D1D0方式0用于扩展I/O口输入第十九页,讲稿共七十四页哦方式1D0D1D2D3D4D5D6D71D0D11D700第n1字符帧第n字符帧8位数据起始位停止位10位的帧格式 串行口为波特率可调的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。第二十页,讲稿共七十四页哦方式2D0D1D2D3D4D5D6D70/1D0D110/1100第n1字符帧第n字符帧8位数据起始位停止位奇偶校验11位的帧格式第二十一页

7、,讲稿共七十四页哦方式3第二十二页,讲稿共七十四页哦MCS-51串行口的波特率串行口的波特率 在方式2中,波特率取决于PCON中的SMOD值: 当SMOD=0时,波特率为fosc/64; 当SMOD=1时,波特率为fosc/32.即波特率 = 。oscSMODf642 在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变图第二十三页,讲稿共七十四页哦波特率/(b/s)fosc/MHzSMOD定时器1C/模式初始值方式0:1 M方式2:375 k方式1、3:62.5 k19.2 k9.6 k4.8 k2.4 k1.2 k137.5 k11011012121211.05911.059

8、11.05911.05911.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=)x256(12f322oscsmodreturnRETURN第二十四页,讲稿共七十四页哦 解决的方法只有调整单片机的时钟频率解决的方法只有调整单片机的时钟频率foscfosc,通常采用,通常采用11.0592MHz11.0592MHz晶振晶振。常用波特率及其产生条件 常用波特率通常按规范取1200、2400、4800、9600、,若采用晶振12MHz和6MHz,则计算得出的T1定时初值将不是一个整数,产生波特率误差而

9、影响串行通信的同步性能。第二十五页,讲稿共七十四页哦四种工作方式应用举例第二十六页,讲稿共七十四页哦串行口的应用v编程注意事项设置串行口工作方式设置串行口工作方式设置波特率(设置波特率(SMOD,若是方式,若是方式1、3,设置,设置TI初值)初值)若串行口接收数据,若串行口接收数据,REN必须赋值为必须赋值为1TI和和RI标志,须由软件清标志,须由软件清01.第第9位位第二十七页,讲稿共七十四页哦串行口工作方式0 用于扩展I/O口,外接74HC164(串入并出)或165(并入串出)。RXD作为数据输入/输出端,TXD作为同步时钟信号,接至时钟端。 8位数据为1帧,由低位到高位,无起始位和停止位

10、。 波特率: fosc/12第二十八页,讲稿共七十四页哦例v用89C51串行口外接CD4049或164串入-并出移位寄存器扩展8位并行口;8位并行口的每位都接一个发光二极管,要求发光二极管从左到右以一定延迟轮流显示,并不断循环。设发光二极管为共阴极接法。如图所示。89C51 RXD TXD P1.0DATA CD4049CLK STB 第二十九页,讲稿共七十四页哦v解:设数据串行发送采用中断方式,显示延迟通过延迟程序DELAY来实现。v程序清单:ORG 0000H LJMP MAINORG0023HAJMPSBRORG2000HMAIN: MOVSCON, #00H ;串行口方式0初始化MOV

11、A, #80H ;最左一位发光二极管先亮CLRP1.0 ;关闭并行输出MOVSBUF, A ;开始串行输出LOOP: SJMP$ ;等待中断SBR:SETBP1.0 ;启动并行输出ACALL DELAY ;显示延迟一段时间CLRTI ;清发送中断标志RRA ;准备右移一位显示CLR P1.0 ;关闭并行输出MOVSBUF, A ;再一次串行输出RETI 第三十页,讲稿共七十四页哦串行口工作方式1v10位位通用异步串行口通用异步串行口UART (Universal Asynchronous Receiver / Transmitter) ,1位起始位、位起始位、8位数据、位数据、1位停位停止位。

12、止位。v波特率可调波特率可调,由定时器,由定时器T1的溢出率(定时时间)决定。的溢出率(定时时间)决定。 v当一帧数据接收完毕后,必须同时满足以下条件,这次接当一帧数据接收完毕后,必须同时满足以下条件,这次接收才真正有效:收才真正有效:REN =1RI=0, SBUF为空为空SM2=0或或SM2=1时,收到停止位为时,收到停止位为1,收到的数据才能装到,收到的数据才能装到SBUF里。里。 第三十一页,讲稿共七十四页哦串行口工作方式1322SMOD)21(12322XfnOSCSMOD波特率 (定时器T1的溢出速率) PCON.7波特率选择位第三十二页,讲稿共七十四页哦v7位ASCII码+1位奇

13、偶校验位=8vA中1的个数为奇数,P=1,如果最高位为为P的值,则A的1的个数编程偶数,因此,要把P的值取反以后放入ASCII码最高位,才是奇校验。v设发送数据区的首地址为20H,接收首地址为40H例例 89C51串行口按双工方式收发串行口按双工方式收发ASCII字符,最高位用作奇校验,字符,最高位用作奇校验,要求传送码率为要求传送码率为1200b/s,fosc=11.059MHz。奇偶校验位:数据位和奇偶位中1的个数偶校验:以上1的个数为偶数奇校验:以上1的个数为奇数第三十三页,讲稿共七十四页哦MOV TMOD, #20H; MOV TL1, #0E8H;MOV TH1, #0E8H;SET

14、B TR1;MOV SCON, #50H;MOV R0, #20H;MOV R1, #40H;SETBES;SETBEA;LCALLSOUT;SJMP$;T1为模式2时间常数,见表7-2重装时常启动T1串行口方式1,允许接收发送数据区首址接收数据区首址串行口开中断CPU开中断发送一个字符等待中断表ORG0000HLJMP MAINORG0050HMAIN:第三十四页,讲稿共七十四页哦中断服务程序ORG0023HLJMP SBR1ORG0100HPUSH ACCPUSHPSWJNBRI,SENDLCALLSINSJMP NEXTLCALLSOUTPOPPSWPOPACCRETISBR1:SEND

15、:NEXT:第三十五页,讲稿共七十四页哦发送子程序CLRTIMOV A,R0MOV C,PCPLCMOV ACC.7,CMOV SBUF,AINC R0RETSOUT:;若奇数个1,P1;取要发送的数据;A中的ASCII码为奇校验;发送;修改发送数据区指针第三十六页,讲稿共七十四页哦接收子程序CLR RIMOV A,SBUFJNB P,ERANL A,#7FHMOV R1,AINC R1RETSIN:;若偶数个1,出错;读接收到的数据;数据存入接收区;修改接收数据区指针;若奇数个1,ACC.7清0ER:;处理出错程序第三十七页,讲稿共七十四页哦串行口工作方式2和方式3每帧11位:1位起始位,9

16、位数据(D8D0),1位停止位;第9位数据作为奇偶校验位或地址/数据标志位;发送时,第9位(D8)数据装入TB8;-串口自动完成MOV A ,DATAMOV TB8, CMOV SBUF, A接收时,第9位(D8)数据装入RB8;D0D7 SBUFD8RB8RI =1多机通信第三十八页,讲稿共七十四页哦串行口工作方式2和方式3v方式2,波特率位fosc/32或fosc/64;v方式3,波特率可调,同方式1。第三十九页,讲稿共七十四页哦用第9个数据位作奇偶校验位, 编制串行口方式2的发送程序。v例:设计一个发送程序,将片内RAM 50H5FH中的数据串行发送;串行口设定为方式2状态,TB8作奇偶

17、校验位,采用偶校验。串行口初始化地址指针R0长度计数器R7置初值取数据APTB8ASBUFTI =1?0TI,指针R0+1(R7)-1=0?返回第四十页,讲稿共七十四页哦程序清单TRT: MOV SCON, #80H ;方式2设定 MOV PCON, #80H ; 波特率=fosc/32 MOV R0,#50H ;首地址R0 MOV R7, #10H ;数据长度LOOP:MOV A,R0 ;取数据 MOV C, PSW.0 ;PTB8 MOV TB8, C MOV SBUF, A ;数据SBUF,启动发送WAIT: JBC TI, CONT ;判断发送中断标志 SJMP WAITCONT: I

18、NC R0 DJNZ R7, LOOP RET第四十一页,讲稿共七十四页哦 串行口及串行通信技术串行通信基本知识89C51串口及其应用两个单片机之间的通信单片机与PC机之间的通信第四十二页,讲稿共七十四页哦两个单片机之间的通信v通信协议:帧格式、校验方式等 v波特率第四十三页,讲稿共七十四页哦双机通信软件编程双机通信软件编程查询方式 1) 甲机发送 编程将甲机片外1000H101FH单元的数据块从串行口输出。定义方式2发送,TB8为奇偶校验位。发送波特率375 kb/s,晶振为12 MHz, SMOD=1。第四十四页,讲稿共七十四页哦第四十五页,讲稿共七十四页哦2) 乙机接收 编程使乙机接收甲

19、机发送过来的数据块,并存入片内50H6FH单元。接收过程要求判断RB8,若出错置F0标志为1,正确则置F0标志为0,然后返回。 在进行双机通信时,两机应采用相同的工作方式和波特率。第四十六页,讲稿共七十四页哦第四十七页,讲稿共七十四页哦7.3 多个89C51通信多机通信步骤:主机SM20,所有从机的SM21,以便接收主机发来的地址。主机发送地址,其中D81。所有从机接收主机发来的地址,进入中断服务程序,并和本机地址比较,确认是否是被寻址从机。被寻址从机清除SM2,以便接收数据,并向主机发回从机地址,供主机核对。其他从机保持SM21,并退出中断服务程序。1.数据通信完毕,被寻址从机SM21,退出

20、中断服务程序,等待下次通信。第四十八页,讲稿共七十四页哦 串行口及串行通信技术串行通信基本知识89C51串口及其应用两个单片机之间的通信单片机与PC机之间的通信第四十九页,讲稿共七十四页哦PC机与单片机通信v PC机是国内目前使用应用最广泛的微机,在与单片机串行接口后,可以方便地构成主从分布式多机系统。从机(单片机)作数据采集或实时控制,主机作数据处理或中央管理等。v 这种多机系统在过程控制、仪表生产、生产自动化和企业管理等方面都有广泛的应用。此外微机和单片机串行接口后,可以大大方便单片机的开发过程。第五十页,讲稿共七十四页哦7.4 89C51与PC机通信电气规范不一致,电气规范不一致,TTL

21、与与RS232电平转换,电平转换,1488、148989C51第五十一页,讲稿共七十四页哦采用MAX232芯片接口的PC机与89C51单片机串行通信接口电路只需单一的+5V电源即可Tin、Rout-接单片机Rin、Tout-接PC机 Tin、Tout成对使用 Rin、Rout成对使用 T、R是针对单片机的动作命名的第五十二页,讲稿共七十四页哦PC机一般使用通用异步接收器机一般使用通用异步接收器/发送器发送器(8250) 或或16c550/作为串行通讯的控制器,使用作为串行通讯的控制器,使用9针针或或25针的接插件将串行口的信号送出。针的接插件将串行口的信号送出。第五十三页,讲稿共七十四页哦v一

22、、PC机串口资源及编程使用方法 v PC机一般有COM1和COM2两个串口。v 寄存器名称端口地址复位后初始值COM1COM2发送器保持寄存器(TBR)3F8H2F8HXXXXXXXXB接收器数据寄存器(RBR)3F8H2F8HXXXXXXXXB波特率因子低位寄存器(DLL)3F8H2F8H00000000B波特率因子高位寄存器(DLH)3F9H2F9H00000001B中断允许寄存器(IER)3F9H2F9H00000000B中断标识寄存器(IIR)3FAH2FAH00000000B线路控制寄存器(LCR)3FBH2FBH01100000B调制解调器控制寄存器(MCR)3FCH2FCHXXX

23、X0000B线路状态寄存器(LSR)3FDH2FDHXXXXXXXXB调制解调器状态寄存器(MSR)3FEH2FEHXXXXXXXXB8250系列寄存器的定义: 第五十四页,讲稿共七十四页哦使用串口必须先初始化,有以下使用串口必须先初始化,有以下4个步骤个步骤DLHDLL波特率DLHDLL波特率DLHDLL波特率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H38

24、40001H80H30000H20H360000H01H115200例:设COM1的波特率为9600,则outportb(0 x3fb,0 x80);/*写线路控制寄存器,访问波特率因子寄存器*/ outportb(0 x3f8,0 x0c);/*写入波特率因子低字节*/ outportb(0 x3f9,0 x00);/*写入波特率因子高字节*/ 设置波特率PC机串口初始化第五十五页,讲稿共七十四页哦 设置数据格式设置数据格式 例:设数据为例:设数据为7位,位,1位起始位,位起始位,1位停止位,偶校验,则设置位停止位,偶校验,则设置如下:如下:outportb(0 x3fb,0 x1a); 设

25、置操作方式设置操作方式不允许中断:不允许中断:outportb(0 x3fc,0 x03);允许中断:允许中断:outportb(0 x3fc,0 x0b);自测试工作方式,且不允许中断:自测试工作方式,且不允许中断:outportb(0 x3fc,0 x13); 设置中断允许寄存器设置中断允许寄存器开放中断语句:开放中断语句:outportb(0 x3f9,0 x0f); PC机串口初始化第五十六页,讲稿共七十四页哦例例1 将将PC机的机的COM1初始化为初始化为9600波特率、波特率、7位数据、偶校验、位数据、偶校验、1位停止位、不中断,则位停止位、不中断,则初始程序初始程序如下:如下:i

26、nitcom1()()outportb(0 x3fb,0 x80);); /*写线路控制寄存器,访问波特率因写线路控制寄存器,访问波特率因子寄存器子寄存器*/ outportb(0 x3f8,0 x0c);); /*写入波特率因子低字节写入波特率因子低字节*/ outportb(0 x3f9,0 x00);); /*写入波特率因子高字节写入波特率因子高字节*/ outportb(0 x3fb,0 x1a);); /*设数据为设数据为7位,位,1位起始位起始 位,位,1位停位停止位,偶校验止位,偶校验*/ outportb(0 x3fc,0 x03);); /*不允许中断不允许中断*/PC机的发

27、送、接收程序第五十七页,讲稿共七十四页哦例例2 PC机从机从COM1发送一个字符,程序如下:发送一个字符,程序如下:send(char sendchar)Int coms;do/*查询发送缓冲器是否空查询发送缓冲器是否空*/coms=inportb(0 x3fd););while(coms!=0 x20););查询等待查询等待com1的线路状态寄存器的线路状态寄存器(LSR)的第五位的状态是否为)的第五位的状态是否为1,即发送保持寄存器是否为空?即发送保持寄存器是否为空?outportb(0 x3f8,sendchar););第五十八页,讲稿共七十四页哦例例3 PC机从机从COM1接收一个字符

28、,程序如下:接收一个字符,程序如下:char receive()() char coms,receivechar;waitok:/*查询接收数据是否有效查询接收数据是否有效*/coms=inportb(0 x3fd););if(coms&0 x01)=0)goto waitok;receivechar= inportb(0 x3f8););return receivechar;v第五十九页,讲稿共七十四页哦v二、二、PC机与单片机双机通信机与单片机双机通信 v PC机与单片机构成主从式上下位计算机系统。机与单片机构成主从式上下位计算机系统。v 例:从例:从PC机键盘上输入一个字符,然后将这个字

29、符发送给单片机,机键盘上输入一个字符,然后将这个字符发送给单片机,单片机接收到这个字符后,不做任何处理,又将它发回给单片机接收到这个字符后,不做任何处理,又将它发回给PC机,机,PC机将这个字符显示在屏幕上。连接电路如下:机将这个字符显示在屏幕上。连接电路如下: PC机RXDTXDMAX232T1OUTR1INT1IN(R1OUTRXDTXDMCS-51约定:u波特率:2400b/su信息格式:8位数据,1位停止位u传送方式:PC机采用查询式收发数据,单片机采用中断式收发数据 由于PC机是RS-232C电平,单片机是TTL电平,用MAX232进行电平转换。PC机与单片机通信设计机与单片机通信设

30、计第六十页,讲稿共七十四页哦 PC机的通信软件机的通信软件 #include “stdio.h”main()() char c1,c2; int coms;outportb(0 x3fb,0 x80););/*初始化初始化8250*/outportb(0 x3f8,0 x30);); outportb(0 x3f9,0 x00););outportb(0 x3fb,0 x03););/*8位数据,位数据,1位停位停止位止位*/outportb(0 x3fc,0 x03););c1=getchar();();开 始初始化8250有键输入吗?取键盘字符发送寄存器空否?向单片机发送字符接收单片机发回

31、的字符接收的数据有效码?显示发回的字符NNNYYY结 束PC机发送程序第六十一页,讲稿共七十四页哦开 始初始化定时器T1初始化串行口启动定时器T1开放中断主程序踏步中断服务程序关中断清接收中断标志RI保护现场接收PC机发来的字符将字符发送回PC机开中断,恢复现场中断返回MCS-51单片机通信软件主程序中断服务程序第六十二页,讲稿共七十四页哦主程序:ORG0000HLJMP MAINORG0023HLJMPSERVEMAIN: MOV TMOD,#20H ;初始化T1MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#50H;串行口为方式1,REN=1MOVPCON,#80H;SM

32、OD=1SETB TR1SETBEASETBESHERE: SJMPHERE单片机接收程序第六十三页,讲稿共七十四页哦中断服务程序:中断服务程序:SERVE:CLREA;中断服务程序;中断服务程序CLRRIPUSH PSW;保护现场;保护现场PUSH ACCMOVA,SBUF;接收;接收PC机发来的字符机发来的字符MOVSBUF,A;将字符回送给;将字符回送给PC机机WAIT:JNBTI,WAIT;等待发送完毕;等待发送完毕CLRTIPOPACC;恢复现场;恢复现场POPPSWSETBEARETIEND第六十四页,讲稿共七十四页哦v三、三、PC机与单片机通讯多机通信机与单片机通讯多机通信v多机

33、通信的关键问题:识别单片机!给单片机编号。多机通信的关键问题:识别单片机!给单片机编号。v怎样识别单片机?怎样识别单片机?起始位D0D1D2D3D4D5D6D7奇偶位停止位起始位D0D1D2D3D4D5D6D7TB8停止位 从PC机和单片机帧格式可知:通过软件编程,使得PC机在发送地址(单片机编号)时,奇偶位为1,发送数据时为0;单片机接收时,TB8为1表示收到的地址,为0表示收到的数据。 PC机与单片机通讯多机通信第六十五页,讲稿共七十四页哦v例:从例:从PC机的键盘上输入单片机的编号,要求机的键盘上输入单片机的编号,要求PC机机与该单片机进行通信测试,从键盘上输入一个字符,发送与该单片机进

34、行通信测试,从键盘上输入一个字符,发送给某单片机,单片机受到该字符后,又发回给给某单片机,单片机受到该字符后,又发回给PC机,在机,在屏幕上显示出来。屏幕上显示出来。v 由于由于RS-232C不能实现多机通信,故采用不能实现多机通信,故采用RS-422标准。电路如下:标准。电路如下: PC机TXDRXD232/422转换器RXDTXDMCS-5175175751741号RXDTXDMCS-5175175751742号RXDTXDMCS-517517575174n号PC机与单片机的多机通信图中75174是长线发送器,它将单端输入信号变成差动输出信号,并增强驱动能力。75175是长线接收器,它将差

35、动输入信号变成单端输出信号。第六十六页,讲稿共七十四页哦什么是差分信号?v一个差分信号是用一个数值来表示两个物理量之间的差异。v一个差分信号作用在两个导体上,信号值是两个导体间的电压差。采用差分信号有什么好处 ?v因为你在控制基准电压,所以能够很容易地识别小信号。 v它对外部电磁干扰(EMI)是高度免疫的。 v在一个单电源系统,能够从容精确地处理双极信号 第六十七页,讲稿共七十四页哦开 始初始化8250输入单片机编号发送单片机编号接收单片机送回的编号取键盘字符编号一致吗?向单片机发送字符接收单片机发回的字符显示发回的字符NY结 束多机通讯程序设计第六十八页,讲稿共七十四页哦v程序清单:程序清单

36、:v#include “stdio.h”vmain()()vv char c1,c2,n1,n2;v int coms;v outportb(0 x3fb,0 x80););/*初始化初始化8250*/v outportb(0 x3f8,0 x30);); v outportb(0 x3f9,0 x00););v outportb(0 x3fb,0 x2b););/*8位数据,位数据,1位停止,奇偶校验位为位停止,奇偶校验位为1*/v outportb(0 x3fc,0 x03););/*PC机处于发送地址状态机处于发送地址状态*/v outportb(0 x3f9,0 x00););/*禁止

37、禁止8250中断中断*/v printf(“Please input the number of MCS:n”););v scanf(“%c”,&n1););v do/*查询发送移位寄存器是否空查询发送移位寄存器是否空*/v coms=inportb(0 x3fd)&0 x40;v while(coms!=0 x40););v outportb(0 x3f8,n1););/*PC机发送单片机地址编号机发送单片机地址编号*/v outportb(0 x3fc,0 x01););/*PC机处于接收状态机处于接收状态*/v waitok1:/*查询单片机返回的编号是否有效查询单片机返回的编号是否有效

38、*/v coms=inportb(0 x3fd););v if(coms&0 x01)=0) PC机端的程序第六十九页,讲稿共七十四页哦goto waitok1; n2=inportb(0 x3f8););/*读入单片机返回的编号读入单片机返回的编号*/if(n1!=n2)printf(“The number of MCS is error!n”););break;elseoutportb(0 x3fc,0 x03););/*PC机处于发送状态机处于发送状态*/outportb(0 x3fb,0 x3b););/* PC机处于发送数据状态机处于发送数据状态*/c1=getchar();();d

39、o/*查询发送移位寄存器是否空查询发送移位寄存器是否空*/coms=inportb(0 x3fd)&0 x40;while(coms!=0 x40););outportb(0 x3f8,c1););outportb(0 x3fc,0 x01););/*PC机处于接收状态机处于接收状态*/waitok2:/*查询单片机返回的字符是否有效查询单片机返回的字符是否有效*/coms=inportb(0 x3fd););if(coms&0 x01)=0)goto waitok2;c2=inportb(0 x3f8););/*读入单片机返回的字符读入单片机返回的字符*/printf(“The return

40、 char is:”););/*显示返回的字符显示返回的字符*/putchar(c2);第七十页,讲稿共七十四页哦v 单片机程序流单片机程序流程程中断服务程序保护现场接收地址与本机地址相等否?回送本机地址接收PC机发来的字符将收到的字符回送PC机恢复现场中断返回NY单片机软件设计单片机软件设计第七十一页,讲稿共七十四页哦v3、程序清单:ORG0000HLJMPMAINORG0023HLJMPSERVEMAIN:MOVTMOD,#20H;初始化T1MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#0F0H;串行口为方式3,REN=1MOVPCON,#80H;SMOD=1SETBT

41、R1SETBEASETBESHERE:SJMPHERESERVE:CLREAPUSHACCPUSHPSWCLRRS1SETBRS0第七十二页,讲稿共七十四页哦MOVA,SBUF;接收地址;接收地址XRLA,#01H;与本机地址进行比较;与本机地址进行比较JNZRETURN;与本机地址不符,则返回;与本机地址不符,则返回CLRSM2;置单片机为接收数据状态;置单片机为接收数据状态CLRRIMOVA,#01HMOVSBUF,A;发送本机地址给;发送本机地址给PC机机JNBTI,;等待发送完毕;等待发送完毕CLRTIJNBRI, ;等待;等待PC机发来的字符接收完毕机发来的字符接收完毕MOVA,SBUF;读入字符;读入字符CLRRIMOVSBUF,AJNBTI,;等待发送完毕;等待发送完毕CLRTIRETURN:POPPSWPOPACCSETBEARETIEND第七十三页,讲稿共七十四页哦感谢大家观看第七十四页,讲稿共七十四页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com