电子科技大学中山学院微处理器实验报告(5) 下载本文

微处理器实验报告

班级 实验名称 成绩 13电科A 串口实验 教师签名 姓名 张益航 学号 实验时间 批改时间 2012010201070 2015年11月4日 报 告 内 容 一、实验目的和任务 1、理解80C51单片机串口工作原理。 2、掌握80C51单片机串口控制方法。 3、掌握简单串行通信协议的设计方法。 二、实验原理简介 串行通信是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信。串行接口通讯实验是单片机和主机之间进行的通讯实验。 图3.5.1为ZSC-1实验箱串口通信电路的硬件结构,该电路提供RS232、USB两种接口,用于单片机与PC机之间的串行连接。CH340G为USB-UART协议转换芯片,在驱动程序支持下,CH340G可将PC机USB口映射为虚拟串口,其信号电平和数据格式与单片机串口兼容。MAX232A为串口电平转换芯片,可实现PC机RS232口与单片机串口之间的电平匹配。 Vcc1N581710uFUSBVCCD-D+GND12340.1uF654USBDMUSBDPV3XI7161N58170.1uFVcc2K2KCH340GTXDRXDGNDXO8VCC2311N5817MCU1STC12C5A60S212MHz22pF22pF1011MAX232AVCCV+C1+C1-T1OUTR1INV-GNDC2+C2-R1OUTT1IN6P3.0/RXDP3.1/TXDRS232162738495Vcc160.1uF210.1uF154512110.1uF314130.1uF1N5817 三、实验设备 1、PC机一台(已安装Keil μVision、STC_ISP等软件); 2、ZSC-1单片机实验箱一台。 四、实验内容和步骤 1、编写一段程序,利用单片机的串行口向PC机发送字符串。 ① 编写程序,设置目标选项成功通过KEIL系统的编辑、编译和部分程序的动态 ORG 0000H LJMP ORG DB MAIN 0050H 'WELCOME TO ZSC!' 1

ORG 0100H CLR EA MOV SP,#60H MAIN: MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH MOV SCON,#50H MOV PCON,#00H SETB MOV MOV TR1 R7,#15 DPTR,#0050H LOOP: MOV A,#00H MOVC A,@A+DPTR MOV SBUF,A JNB CLR TI INC DPTR TI,$ DJNZ R7,LOOP SJMP END $ ORG 0000H LJMP MAIN 2

ORG DB 0050H '调试,什么鬼!' ORG 0100H CLR EA MOV SP,#60H MAIN: MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH MOV SCON,#50H MOV PCON,#00H SETB MOV MOV TR1 R7,#12 DPTR,#0050H LOOP: MOV A,#00H MOVC A,@A+DPTR MOV SBUF,A JNB CLR TI INC DPTR TI,$ DJNZ R7,LOOP SJMP END $ 3

2、编写一段程序,接收主机串行口发送来的字符,在单片机接收到‘X’的时候返回一个‘T’表示正确,否则返回一个‘F’表示错误。 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#20H ;设置T1 为方式2 MOV TH1,#0FDH ;设置波特率为9600 MOV TL1,#0FDH MOV SCON,#50H ;设置串口为方式1 MOV PCON,#00H SETB TR1 ;启动定时器1 LOOP: JNB RI,$ CLR RI MOV A,SBUF CJNE A,#'X',FSEND MOV A,#'T' AJMP SEND FSEND: MOV A,#'F' SEND: MOV SBUF,A ;回发数据 JNB TI,$ CLR TI SJMP LOOP END 3、采用串行口中断方式,实现与实验2相同的功能。 ORG 0000H LJMP ORG MAIN 0023H LJMP ZRS232 ORG 0100H CLR EA MOV SP,#60H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH MOV SCON,#50H MOV PCON,#00H SETB ES SETB SETB TR1 EA 4

MAIN: SJMP $ JB CLR CLR RI MOV A,SBUF CJNE A,#'X',FSEND MOV MOV RETI END A,#'T' A,#'F' AJMP SEND MOV SBUF,A RI,ZR TI ZRS232: ZT: ZR: AJMP ZEND FSEND: SEND: ZEND: ORG ORG ORG CLR MOV MOV MOV MOV MOV MOV SETB ES SETB TR1 SETB EA SJMP CLR $ TI 0000H 0023H 0100H EA SP,#60H TMOD,#20H TH1,#0FDH TL1,#0FDH SCON,#50H PCON,#00H LJMP MAIN LJMP ZRS232 MAIN: ZRS232: JB RI,ZR ZT: AJMP SEND 5

ZR: CLR MOV CLR SJMP LP1 MOV MOV JC MOV JNC ADD MOV CLR END RI A,SBUF ES B,A A,B SEND A,B SEND A,#20H SBUF,A TI CJNE A,#'$',LP LP: SUBB A,#'9'+1 SUBB A,#'Z'+1 SEND: JNB TI,$ LP1: RETI 五.实验结论 1.串行通信要设定共同波特率。 2.串行通信分为异步和同步两种,异步通信指发送和接受设备使用各自时钟控制数据的传输过程;同步通信指要建立发送方时钟和接受方时钟的直接控制。 3.串口通信难度比较大,要多花时间掌握

6