
第7章MCS-51单片机串行口及应用 本章要点: ①异步通信和同步通信 ②串行通信波特率 ③串行通信的制式 ④串行通信的校验 回串行口特殊功能春存器 @串行工作方式 计算机与外界信息交换称为通信。通信的基本方式可分为并行通信和串行通信。并行通 信是数据的各位同时发送或同时接收:串行通信是数据的各位依次逐位发送或接收。 并行通信优点:传送速度快 缺点不便长距离传送 申行通信优点:便于长距离传送缺点:传送速度较慢 S7~1串行通信基础 实际应用中,C四与其外部设备之间常要进行信息交换,计算机之间也需要交换信息,所 有这些信息交换均称为“通讯”。 通讯的基本方式可分为并行通讯和串行通讯两种。 并行通讯:数据的各位同时进行传送的方式。特点是传输速度快,但当距离较远,位数又 多时导致了通讯线路复杂且成本高。如图7,1(a》所示。 串行通讯:数据一位一位地顺序传送的通讯方式。其特点是通讯线路简单,只要一对传输 线就可以实现通讯,并可以利用电话线,从而降低了成本,适用于远距离通讯,但传送速度慢, 如图7,1(b》所示。 一、异步通信和同步通信 1.异步传送: 每一个字符要用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个地 发送和接收的。 每个字符的组成格式如图T,2()所示,首先是一位起始位表示开始:后面紧跟着的是 字符的数据字,可以是8或9位数据,在数据字中可根据需要加入奇偶校验位:最后是停止位, 其长度可以是一位、一位半或两位,所以,半行传送的数据字加上起始位和停止位就形成一个 字符串行传送的额。起始位用逻辑“0”表示,停止位用逻辑“1”表示。图所示为数据字为7 位,第8位(或第9位)是奇偶校验位。加上起始位、停止位,一个字符由10位(11位)组 成。这样加上成航信号后,字符便可以一个接一个地传递了。 在异步传送中,字符问隔不周定,在停止位后可以加空闲,空闲位用高电平表示,用于等 待传送。这样,接收和发送可以随时地或间断地进行,而不受时间的限制。图7,2(b》为有 空闲位的情况
第 7 章 MCS-51 单片机串行口及应用 本章要点: ①异步通信和同步通信 ②串行通信波特率 ③串行通信的制式 ④串行通信的校验 ⑤串行口特殊功能寄存器 ⑥串行工作方式 计算机与外界信息交换称为通信。通信的基本方式可分为并行通信和串行通信。并行通 信是数据的各位同时发送或同时接收;串行通信是数据的各位依次逐位发送或接收。 并行通信优点:传送速度快 缺点:不便长距离传送 串行通信优点:便于长距离传送 缺点:传送速度较慢 §7~1 串行通信基础 实际应用中,CPU 与其外部设备之间常要进行信息交换,计算机之间也需要交换信息,所 有这些信息交换均称为“通讯”。 通讯的基本方式可分为并行通讯和串行通讯两种。 并行通讯:数据的各位同时进行传送的方式。特点是传输速度快,但当距离较远,位数又 多时导致了通讯线路复杂且成本高,如图 7.1(a)所示。 串行通讯:数据一位一位地顺序传送的通讯方式。其特点是通讯线路简单,只要一对传输 线就可以实现通讯,并可以利用电话线,从而降低了成本,适用于远距离通讯,但传送速度慢, 如图 7.1(b)所示。 一、异步通信和同步通信 1. 异步传送: 每一个字符要用起始位和停止位作为字符开始和结束的标志,它是以字符为单位一个个地 发送和接收的。 每个字符的组成格式如图 7.2(a)所示。首先是一位起始位表示开始;后面紧跟着的是 字符的数据字,可以是 8 或 9 位数据,在数据字中可根据需要加入奇偶校验位;最后是停止位, 其长度可以是一位、一位半或两位。所以,串行传送的数据字加上起始位和停止位就形成一个 字符串行传送的帧。起始位用逻辑“0”表示,停止位用逻辑“1”表示。图所示为数据字为 7 位,第 8 位(或第 9 位)是奇偶校验位。加上起始位、停止位,一个字符由 10 位(11 位)组 成。这样加上成帧信号后,字符便可以一个接一个地传送了。 在异步传送中,字符间隔不固定,在停止位后可以加空闲,空闲位用高电平表示,用于等 待传送。这样,接收和发送可以随时地或间断地进行,而不受时间的限制。图 7.2(b)为有 空闲位的情况

计机成务 a并行通讯 (心)串行通讯 图7.】通讯的基本方式 在异步数据传送中,CPU与外设之间事先必须约好两项事宜: ①字符格式。双方要约好字符的编码形式,奇偶校验形式、以及起始位和停止位的规定, 第c-)个字符 第:个字花 第+1)个字花 华 停 校 位 7位数据山境收) 位 位 7位数据(成8位) o/1 o/1 年位 高位 下降滑指出下 一个字视的开始 (a) 第和个字符 一第+)个字符 奇 校 空 止 T位数据《成参位) 位 0 低 20w 高位 下降形带出下 决千被特率 一个字养的开 (b)
在异步数据传送中,CPU 与外设之间事先必须约好两项事宜: ①字符格式。双方要约好字符的编码形式,奇偶校验形式、以及起始位和停止位的规定。 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 0/1 0/1 0/1 0/1 起 始 位 停 止 位 奇 偶 校 验 7位数据(或8位) 停 止 位 奇 偶 校 验 起 始 位 7位数据(或8位) 1 0 0 第(n-1)个字符 第n个字符 第(n+1)个字符 低位 高位 下降沿指出下 一个字符的开始 (a) 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 起 始 位 7位数据(或8位) 停 止 位 奇 偶 校 验 起 始 位 0 0 第n个字符 第(n+1)个字符 低位 高位 下降沿指出下 一个字符的开始 1 1 1 1 空 用 位 位时间取 决于波特率 (b) 计 算 机 计 算 机 D0 D4 D1 D2 D3 D5 D6 D7 控制 (选通) 状 态 或 外 设 ( ) 0 1 0 0 0 0 1 1 T (a)并行通讯 计 算 机 计 算 机 或 外 设 ( ) 8T (b)串行通讯 图 7.1 通讯的基本方式

图7.2异步通讯的格式 ②特率(aud rate)。波特率是衡量数据传送速率的指标,它要求发送站和接收站都要 以相同的数据传送遮率工作。 假设数据传送的速率是120字符/秒,而每一个字符假如为10位,则其传送的波特率为: 10位/字符×120字符/秒=1200位/秒 =1200波特(二进制电平时) 简而言之,传送采用二进制电平时,“波特”就是每秒传送多少位。100波特。就意味着 每秒可以传送1200位。而每一位的传送时间T就是波特率的例数。 应注意,波特率和有效数据位的传送速率并不一致。例如,上述10位中,真正有效的题 据位只有7位。所以,有效数据位的传送速率只有7×120-840位/秒 此外,被特率也是衡量传输通道顿宽的一个指标。 异步通讯的传送速率一般在509600波特之间,常用于计算机到CRT终端和字符打印机之 间的通讯、直通电报以及无线电通讯的数据发送等等。 2同步传送: 所谓同步传送就是去掉异步传送时每个字符的起始位和停止位的成帧标志信号,仅在数据 块开始处用同步字符来指示,如图7.3所示。很显然,同步传送的有效数据位传送速率高于异 步传送,可达50千波特,甚至更高。其缺点是硬件设备较为复条,因为它要求要有时钟米实 现发送端和接收端之间的严格同步,而且对同步时钟脉冲信号的相位一致性还要求非常严格, 为此通常还要采用“领相器”等措施来保证。 SYN字符#1 SYN字符=2 致据 图7.3同步传送 二,串行通讯中传输制式 一般情况下,串行数据传送是在两个通讯端之间进行的。其数 据传送的方向有如图7.4所示的几种情况。 图(a)为单工通讯方式。A端为发送站,B为接收站,数据仅 《}单工通信方式 能从A站发至B站。 厨一 图(b)为半双工通讯方式,数据可以从A发送到B,也可以 )半双工通信方式 由B发送到A。不过同一时间只能作一个方向的传送,其传送 方式由收发控制开关K来控制。 )全双工通信方式 图7.4点~点串行通讯方式
图 7.2 异步通讯的格式 ②波特率(Baud rate)。波特率是衡量数据传送速率的指标,它要求发送站和接收站都要 以相同的数据传送速率工作。 假设数据传送的速率是 120 字符/秒,而每一个字符假如为 10 位,则其传送的波特率为: 10 位/字符×120 字符/秒=1200 位/秒 =1200 波特(二进制电平时) 简而言之,传送采用二进制电平时,“波特”就是每秒传送多少位。1200 波特,就意味着 每秒可以传送 1200 位。而每一位的传送时间 Td 就是波特率的倒数。 应注意,波特率和有效数据位的传送速率并不一致。例如,上述 10 位中,真正有效的数 据位只有 7 位。所以,有效数据位的传送速率只有 7×120=840 位/秒 此外,波特率也是衡量传输通道频宽的一个指标。 异步通讯的传送速率一般在 50~9600 波特之间,常用于计算机到 CRT 终端和字符打印机之 间的通讯、直通电报以及无线电通讯的数据发送等等。 2. 同步传送: 所谓同步传送就是去掉异步传送时每个字符的起始位和停止位的成帧标志信号,仅在数据 块开始处用同步字符来指示,如图 7.3 所示。很显然,同步传送的有效数据位传送速率高于异 步传送,可达 50 千波特,甚至更高。其缺点是硬件设备较为复杂,因为它要求要有时钟来实 现发送端和接收端之间的严格同步,而且对同步时钟脉冲信号的相位一致性还要求非常严格, 为此通常还要采用“锁相器”等措施来保证。 SYN字符#1 SYN字符#2 数据 图 7.3 同步传送 二、串行通讯中传输制式 一般情况下,串行数据传送是在两个通讯端之间进行的。其数 据传送的方向有如图 7.4 所示的几种情况。 图(a)为单工通讯方式。A 端为发送站,B 为接收站,数据仅 能从 A 站发至 B 站。 图(b)为半双工通讯方式。数据可以从 A 发送到 B,也可以 由 B 发送到 A。不过同一时间只能作一个方向的传送,其传送 方式由收发控制开关 K 来控制。 (b) 半双工通信方式 (a) 单工通信方式 (c) 全双工通信方式 A B A B A B K K 图 7.4 点-点串行通讯方式

图(c)为全双工通讯方式,每个站(A,B)既可同时发送,又可同时按收。 图7.4所示的通讯方式都是在两个站之间进行的,所以也称为点一点通讯方式。图7.5所 示为主从多编通讯方式。A站可以向多个终端(B、C、D:等)发出信息。在A站允许的条件 下,可以控制管理B、C、D等站在不同的时间向A站发出信息,又根据数据传送的方向分为 多终端半双工通讯和多终端全双工通讯。这种多端通讯方式常用于主一从计算机系统通讯中。 A (a)多终端半双工通讯方式 (b)多终端全双工通讯方式 图7,5主从多终端通讯方式 ⑧7~2串行口的结构和工作原理 80C51单片机有一个全双工的串行口,这个口既可以用于网络通信,也可以实现串行异步 通信,还可以作为同步移位寄存器使用。 一、串行口结构及基本原理 1.串行口结构 有两个物理空间上各自独立的发送缓冲器和接收缓冲器,这两个缓冲器公用一个地址99阳, 发送缓冲器只写不读,接收缓冲器只读不写。接收缓冲器是双缓冲的,以避免在接收下一帧数 据之前,C刊未能及时响应接收器中断。,没有把上一帧数据读走而产生两航数据重叠问题。对 于发送缓冲器,为了保持最大传送速率,一般为单缓冲型,因为发送时CW是主动的,不会产 生写重叠问题. 2.串行数据发递和接收的基本原理 串行数据缓冲器SF,在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具 有同一个单元地址99,用同一寄存器名S下。在物理上有两个,一个是发送缓冲寄存器,另 一个是接收缓冲寄存器。发送时,只需将发送数据输入S拟F,C刊将自动启动和完成串行数据 的发送,接收时,CU将自动把接收到的数据存入SF,用户只需从SF中读出接收数据。 二、串行通信控制寄存器 1.串行口控制寄存器SC0N 其字节地址98阳,可位寻址,位地址96广9F。格式为
图(c)为全双工通讯方式。每个站(A、B)既可同时发送,又可同时接收。 图 7.4 所示的通讯方式都是在两个站之间进行的,所以也称为点—点通讯方式。图 7.5 所 示为主从多端通讯方式。A 站可以向多个终端(B、C、D…等)发出信息。在 A 站允许的条件 下,可以控制管理 B、C、D…等站在不同的时间向 A 站发出信息。又根据数据传送的方向分为 多终端半双工通讯和多终端全双工通讯。这种多端通讯方式常用于主-从计算机系统通讯中。 A D B C A D B C (a)多终端半双工通讯方式 (b)多终端全双工通讯方式 图 7.5 主从多终端通讯方式 §7~2 串行口的结构和工作原理 80C51 单片机有一个全双工的串行口,这个口既可以用于网络通信,也可以实现串行异步 通信,还可以作为同步移位寄存器使用。 一、 串行口结构及基本原理 1. 串行口结构 有两个物理空间上各自独立的发送缓冲器和接收缓冲器。这两个缓冲器公用一个地址99H, 发送缓冲器只写不读,接收缓冲器只读不写。接收缓冲器是双缓冲的,以避免在接收下一帧数 据之前,CPU 未能及时响应接收器中断,没有把上一帧数据读走而产生两帧数据重叠问题。对 于发送缓冲器,为了保持最大传送速率,一般为单缓冲型,因为发送时 CPU 是主动的,不会产 生写重叠问题。 2.串行数据发送和接收的基本原理 串行数据缓冲器 SBUF,在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具 有同一个单元地址 99H,用同一寄存器名 SBUF。在物理上有两个,一个是发送缓冲寄存器,另 一个是接收缓冲寄存器。发送时,只需将发送数据输入 SBUF,CPU 将自动启动和完成串行数据 的发送;接收时,CPU 将自动把接收到的数据存入 SBUF,用户只需从 SBUF 中读出接收数据。 二、串行通信控制寄存器 1. 串行口控制寄存器 SCON 其字节地址 98H,可位寻址,位地址 98H~9FH。格式为

D A SCON (98H) SMO SM1 SM2 REN TB8 E图 TI RI 包括方式远择位、接收发送控制位及中断状态标志位。 S0、S1:串行口方式选择位 S2:允许方式2、方式3多机通讯控制位。在方式2或方式3中,如S21,则接收到的 第9位数据(阳8)为“0”时,不启动接收中断标志RI(RI=0)。当接到收的第9位数据(R图) 为“1”时,则启动接收中断RI(RI=1)。如果S2=0,则接收到的第9位数据(B8)无论为 “1”或“0”均启动RI(RI=1)。在方式1时,如S2=1,则只有在接收到有效停止位时才启 动R1,若没有接收到有效停止位,则1为“0。如果不是多机通讯,则无论半行口工作在方 式0、1、2、3时,一般S2都置为“0 表7-】串行口工作方式 SMO SMI 方式 功能说明 0 0 0 移位毒存器方式(用于1/0扩展》被特率为fosc/12 1 1 8位UART,波特率可变(T1溢出率决定) 0 2 9位UART,波特率为fose/61或fosc/32 3 9位UART,波特率可变(T1溢出率决定) N:允许接收控制位, 由软件置“1”时,允许接收:由款件置“0”时,禁止接收。 B8:在方式2和方式3中要发送的第9位数据。需要时由软件置位或复位。 阻8:在方式2和方式3中是接收到的第9位数据。在方式1时,如S20,8是接收到 的停止位。在方式0中,不使用RB8。 T1:发送中断标志,由硬件在方式0申行发送数据第8位结束时置“1”,或在其它方式中 串行发送停止位的开始时置“1”。向C刊申请中断或供CU查询。必须由软件清“0” 1:接收中断标志,由硬件在方式0接收到数据第8位结束时置“1”。或其它方式接收到 停止位的中间时置“1”。向C刊中请中断或供CPU查询。必须由软件清“0” 3.特殊功能寄存器四 字节地址87。没有位寻址功能。与串行口有关的只有最高位。 PCON (87H) SMOD SOD:波特率选择位。当SMOD=1时,波特率提高一倍. S0SW一一串行口工作方式选择位。 S2一一多机通信控制位。 N一一允许接收控制位。N1,允许接收
D7 D0 SCON(98H) SM0 SM1 SM2 REN TB8 RB8 TI RI 包括方式选择位、接收发送控制位及中断状态标志位。 SM0、SM1:串行口方式选择位 SM2:允许方式 2、方式 3 多机通讯控制位。在方式 2 或方式 3 中,如 SM2=1,则接收到的 第 9 位数据(RB8)为“0”时,不启动接收中断标志 RI(RI=0)。当接到收的第 9 位数据(RB8) 为“1”时,则启动接收中断 RI(RI=1)。如果 SM2=0,则接收到的第 9 位数据(RB8)无论为 “1”或“0”均启动 RI(RI=1)。在方式 1 时,如 SM2=1,则只有在接收到有效停止位时才启 动 RI,若没有接收到有效停止位,则 RI 为“0”。如果不是多机通讯,则无论串行口工作在方 式 0、1、2、3 时,一般 SM2 都置为“0”。 表 7-1 串行口工作方式 SM0 SM1 方式 功能说明 0 0 0 移位寄存器方式(用于 I/O 扩展)波特率为 fosc/12 0 1 1 8 位 UART,波特率可变(T1 溢出率决定) 1 0 2 9 位 UART,波特率为 fosc/64 或 fosc/32 1 1 3 9 位 UART,波特率可变(T1 溢出率决定) REN:允许接收控制位。由软件置“1”时,允许接收;由软件置“0”时,禁止接收。 TB8:在方式 2 和方式 3 中要发送的第 9 位数据。需要时由软件置位或复位。 RB8:在方式 2 和方式 3 中是接收到的第 9 位数据。在方式 1 时,如 SM2=0,RB8 是接收到 的停止位。在方式 0 中,不使用 RB8。 TI:发送中断标志。由硬件在方式 0 串行发送数据第 8 位结束时置“1”,或在其它方式中 串行发送停止位的开始时置“1”。向 CPU 申请中断或供 CPU 查询。必须由软件清“0”。 RI:接收中断标志。由硬件在方式 0 接收到数据第 8 位结束时置“1”,或其它方式接收到 停止位的中间时置“1”。向 CPU 申请中断或供 CPU 查询。必须由软件清“0”。 3.特殊功能寄存器 PCON 字节地址 87H,没有位寻址功能。与串行口有关的只有最高位。 PCON(87H) SMOD SMOD:波特率选择位。当 SMOD=1 时,波特率提高一倍。 SM0 SM1 —— 串行口工作方式选择位。 SM2 —— 多机通信控制位。 REN —— 允许接收控制位。REN=1,允许接收

TB8一一方式2和方式3中要发送的第9位数据, 图8一一 方式2和方式3中要接收的第9位数据, TI 发送中断标志。 RI 接收中断标志 $7一3串行口的工作方式和应用 一、串行工作方式0 80C51串行通信共有4种工作方式,由串行控制寄存器SC0W中S0S1决定. 1、数据发送和接收 以X知(P3.0)端作为数据移位的输入/输出端,以TX知(P3.1)端输出移位脉冲。 移位数据的发送和接收以8位为一镇,不设起始位和停止位,无论输入/输出,均低位在 前高位在后。其航格式为:方式0可将串行输入输出数据转换成并行输入输出数据。 )数据发送 串口作为并行输出口使用时,要有“串入并出”移位寄存器配合。在移位时钟脉冲(TXD) 的控制下,数据从串行口CD编逐位移入74C164SA、SB瑞。当8位数据全部移出后,SCON 寄存器的TI位被自动置1.其后74HC164的内容即可并行输出.74HC164.R为清0端,输出 时C.R必须为1,否则74HC164Q0Q7输出为0。 (2)数据接收 串行口作为并行输入口使用时,要有“并入串出”的移位寄存器配合。74C165S/L端为 移位/置入瑞,当S/儿0时,从g0~Q7并行置入数据,当S/L1时,允许从阳端移出数据。 在8OC51串行控制寄存器SCON中的REN华】时,TXD端发出移位时钟脉冲,从RXD端串行输入8 位数据。当接收到第8位数据D7后,置位中断标志RI,表示一航数据接收完成。 并行输出 80C51 1ifai的66h Q0Q1Q203Q405Q6Q7 RXD SA、 B 74HC164 TXD CLK CLR P1.0 串行口扩展为并行口输出
TB8 —— 方式 2 和方式 3 中要发送的第 9 位数据。 RB8 —— 方式 2 和方式 3 中要接收的第 9 位数据。 TI —— 发送中断标志。 RI —— 接收中断标志 §7~3 串行口的工作方式和应用 一、 串行工作方式 0 80C51 串行通信共有 4 种工作方式,由串行控制寄存器 SCON 中 SM0 SM1 决定。 1、数据发送和接收 以 RXD(P3.0)端作为数据移位的输入/输出端,以 TXD(P3.1)端输出移位脉冲。 移位数据的发送和接收以 8 位为一帧,不设起始位和停止位,无论输入/输出,均低位在 前高位在后。其帧格式为:方式 0 可将串行输入输出数据转换成并行输入输出数据。 ⑴ 数据发送 串口作为并行输出口使用时,要有“串入并出”移位寄存器配合。在移位时钟脉冲(TXD) 的控制下,数据从串行口 RXD 端逐位移入 74HC164 SA、SB 端。当 8 位数据全部移出后,SCON 寄存器的 TI 位被自动置 1。其后 74HC164 的内容即可并行输出。74HC164 CLR 为清 0 端,输出 时 CLR 必须为 1,否则 74HC164 Q0~Q7 输出为 0。 (2) 数据接收 串行口作为并行输入口使用时,要有“并入串出”的移位寄存器配合。74HC165 S/L 端为 移位/置入端,当 S/L=0 时,从 Q0~Q7 并行置入数据,当 S/L=1 时,允许从 QH 端移出数据。 在 80C51 串行控制寄存器 SCON 中的 REN=1 时,TXD 端发出移位时钟脉冲,从 RXD 端串行输入 8 位数据。当接收到第 8 位数据 D7 后,置位中断标志 RI,表示一帧数据接收完成。 串行口扩展为并行口输出

并行输入 80C51 00Q1Q20304C56Q7 RXⅫ+ QH 74HC165 2 TXD CLK S/I P1.0 1 串行口扩展为并行口输入 2.波特率 方式0波特率固定,为单片机品振频率的十二分之一。 3.应用举例 【例】1.电路如图所示,试编制程序按下列顺序要求每隔0.5秒循环操作。 ①8个发光二极管全部点亮: ②从左向右依次暗灭,每次减少一个,直至全灭: ③从左向右依次点亮,每次亮一个: ④从右向左依次点亮,每次亮一个: ⑤从左向右依次点亮,每次增加一个, 直至全部点亮: ⑥返回从②不断循环。 80C51 1112114T65 989rQ6Q594939291 RD 4094 STR P1.0 LIGHT:MOV SCON.#00H :串行口方式0 CLR ES :禁止串行中断 MOV DPTR.#TAB :置发光二极管亮暗控制字表首址 LP1:MOV R7,#0 :置顺序编号0 LP2:MOV A R7 :读顺序编号
串行口扩展为并行口输入 2. 波特率 方式 0 波特率固定,为单片机晶振频率的十二分之一。 3. 应用举例 【例】1.电路如图所示,试编制程序按下列顺序要求每隔 0.5 秒循环操作。 ① 8 个发光二极管全部点亮; ② 从左向右依次暗灭,每次减少一个,直至全灭; ③ 从左向右依次点亮,每次亮一个; ④ 从右向左依次点亮,每次亮一个; ⑤ 从左向右依次点亮,每次增加一个, 直至全部点亮; ⑥ 返回从②不断循环。 LIGHT: MOV SCON , #00H ;串行口方式 0 CLR ES ;禁止串行中断 MOV DPTR , #TAB ;置发光二极管亮暗控制字表首址 LP1: MOV R7 , #0 ;置顺序编号 0 LP2: MOV A , R7 ;读顺序编号

MOVC AA+DPTR :读控制字 CLR P1.0 :关闭并行输出 MOV SBUF,A :启动串行发递 JNB T1,8 :等特发送完毕 CLR TI :清发送中断标志 SETB P1.0 :开启并行输出 LCALL DLY500ms :调用延时0.5秒子程序 INC R7 :指向下一控制字 CJNE R7,#30.LP2 :判循环操作完否?未完继续 SJMP LP1:顺序编号0一29依次操作完,从0开始重新循环 TB:DB0F用,7FH,3I,1用,0FH,07N,03,01H,00I: 从左向右依次暗灭,每次减少一个,直至全灭: DB80阳,401,20H,10阳,08邵,04组,02州,01日:从左向右依次点亮,每次亮一 个 DB02H,04H,08,10阳,20H,40阳,80H: 从右向左依次点亮,每次亮一个 B0C0明,0E0明,0F0阳,0F8阳,OFCH,0FE: 从左向右依次点亮,每次增加一个,直至全部点亮: 【例】2.电路如图,编程:输入K1一8状态数据,并存入内RAW0 80C51 P145OT▣ 题 98 4014 T知 CLK P唇 P1.0
MOVC A , @A+DPTR ;读控制字 CLR P1.0 ;关闭并行输出 MOV SBUF , A ;启动串行发送 JNB TI,$ ;等待发送完毕 CLR TI ;清发送中断标志 SETB P1.0 ;开启并行输出 LCALL DLY500ms ;调用延时 0.5 秒子程序 INC R7 ;指向下一控制字 CJNE R7 ,#30, LP2 ;判循环操作完否?未完继续 SJMP LP1 ;顺序编号 0~29 依次操作完,从 0 开始重新循环 TAB: DB 0FFH ,7FH ,3FH ,1FH , 0FH , 07H , 03H , 01H , 00H; 从左向右依次暗灭, 每次减少一个,直至全灭; DB 80H , 40H , 2 0H , 10H , 08H , 04H , 02H , 01H ;从左向右依次点亮,每次亮一 个 DB 02H , 04H , 08H , 10H , 20H , 40H , 80H ; 从右向左依次点亮,每次亮一个 DB 0C0H , 0E0H , 0F0H , 0F8H , 0FCH , 0FEH ; 从左向右依次点亮,每次增加一个,直至全部点亮; 【例】2.电路如图,编程:输入 K1~K8 状态数据,并存入内 RAM 40H

解:编程如下: KIN:MOV SC0N,#00阳 :串行口方式0 CLR ES :禁止串行中断 CLR P1.0 :锁存并行输入数据 SETB P1.0 :允许串行移位操作 SETB REN :允许并启动接收(TD发送移位脉冲) JNB R1,$ :等待接收完毕 OV40H,SBF:存入K1一K8状态数据 RET
解:编程如下: KIN: MOV SCON , #00H ;串行口方式 0 CLR ES ;禁止串行中断 CLR P1.0 ;锁存并行输入数据 SETB P1.0 ;允许串行移位操作 SETB REN ;允许并启动接收(TXD 发送移位脉冲) JNB RI,$ ;等待接收完毕 MOV 40H,SBUF ;存入 K1~K8 状态数据 RET ;