Presentation is loading. Please wait.

Presentation is loading. Please wait.

单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传

Similar presentations


Presentation on theme: "单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传"— Presentation transcript:

1 单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传 返回主目录

2 5.1 任务九 单片机计数并显示 〖学习目标〗: 通过任务九的学习、完成,掌握单片机硬件资源定时计数器的使用。
5.1 任务九 单片机计数并显示 〖学习目标〗: 通过任务九的学习、完成,掌握单片机硬件资源定时计数器的使用。 〖任务描述〗: 单片机对按键次数(<99次)进行计数,并在发光二极管上实时显示。

3 硬件电路与工作原理 1.硬件电路

4 2.工作原理 用手按动按键S3,每按键一次S3引脚上出现一个负脉冲,单片机计数一次,并实时将按键次数以BCD码方式,在发光二极管上面显示。

5 控制程序 1.主程序流程 定时计数器 T0 初始化 启动计数器 开始 计数值送 P1 口显示 结束

6 2.控制程序 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV TMOD,#06H ;设定T0的工作方式 MOV TH0,#00H ;设定计数初值 MOV TL0,#00H ; SETB TR ;启动计数器 MOV P1,TL ;送显示 END

7 5.1.3 源程序的编辑、编译、下载 1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 1、正确选择单片机类型8751或8031
源程序的编辑、编译、下载 1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 1、正确选择单片机类型8751或8031 2、正确选择编译器-伟福编译器 3、选择模拟仿真功能 4、打开或新建文件进行编辑 5、编译 2.打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。 1、编译成功后打开下载软件 2、选择好单片机89S51并测试 3、打开伟福6000编译生成的.BIN或.HEX文件 4、选择自动写完成擦除、写、读、校验过程 5、观看运行结果

8 5.1.4 相关知识 1.单片机是如何进行计数的? 本次任务中,单片机完成了对S3键按键次数的累计,那么,单片机是如何进行计数的?
相关知识 1.单片机是如何进行计数的? 本次任务中,单片机完成了对S3键按键次数的累计,那么,单片机是如何进行计数的? 在单片机的内部结构中,我们知道在MCS-51的单片机内有两个16位可编程的定时/计数器,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。

9 T1由TH1、TL1构成,字节地址为8DH、8BH
T0由TH0、TL0构成,字节地址为8CH、8AH 特殊功能寄存器TMOD控制定时计数器的工作方式 TCON则用于控制定时计数器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。

10 GATE = 0 启动不受 /INT0或 /INT1的控制; GATE = 1 启动受 /INT0 或 /INT1 的控制。
TMOD 89H D7 D6 D5 D4 D3 D2 D1 D0 GATA M1 M0 ←T1方式字段→ ←T0方式字段→ GATE —— 门控位。 GATE = 0 启动不受 /INT0或 /INT1的控制; GATE = 1 启动受 /INT0 或 /INT1 的控制。 C/T —— 外部计数器 / 定时器方式选择位 C//T = 0 定时方式; C //T = 1 计数方式。 M1M0—— 工作模式选择位(编程可决定四种工作模式)。

11 C//T = 0 ——定时; C//T = 1 —— 对外计数。
定时:fosc / 12 = 1 /(12/fosc) = 1 / T N个方波 T 波形等间隔,次数已定,时间确定 即对机器周期进行计数。 左图定时时间为 N*T 计数:脉冲不等间隔。 每个下降沿计数一次 确认一次负跳变需两个机器周期, 所以,计数频率最高为fosc / 24。

12 TR1 —— 定时 / 计数器1运行控制位。(用法与TR0类似)
TCON 88H D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 TR0 —— 定时 / 计数器0运行控制位。 软件置位,软件复位。 TR1 —— 定时 / 计数器1运行控制位。(用法与TR0类似) TF0、TF1 分别是定时、计数器T0、T1的溢出标志位。

13 (1)定时/计数器的工作方式 M1M0—— 工作模式选择位(编程可决定四种工作模式) 位定时/计数器 模式0 位定时/计数器 模式1 位定时/计数器(自动重装初值) 模式2 T0 8位定时/计数 模式3 T1 停止工作 模式3

14 1)工作方式0 T0的等效逻辑结构

15 在计数工作方式下,计数器的计数值范围是:
          1~8192(2的13方) 当为定时工作方式时,定时时间的计算公式为:          ( 计数初值)×晶振周期×12 或    ( 计数初值)×机器周期 其时间单位与晶振周期或机器周期相同。 如果单片机的晶振选为6.000MHz,则最小定时时间为:      [8192—(8192—1)]×1/6×10-6×12=2×10-6(s)=2(us) 最长定时时间为:      (8192—0)×1/6×10-6×12=16384×10-6(s)=16384(us)。

16 2)工作方式1 T0的等效逻辑结构

17 在工作方式1下,计数器的计数值范围是:           1~65536(2的16方) 当为定时工作方式1时,定时时间的计算公式为:          (65536—计数初值)× 晶振周期×12 或    (65536—计数初值)× 机器周期 其时间单位与晶振周期或机器周期相同。 如果单片机的晶振选为6.000MHz,则最小定时时间为:       [65536—(65536—1)]×1/6×10-6×12=2×10-6(s)=2(us) 最长定时时间为:       (65536—0)×1/6×10-6×12=131072×10-6(s)=131072(us)。

18 3)工作方式2 T0的等效逻辑结构

19 方式2与方式0、1的区别: 工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。 工作方式2就具有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。 方式2在串口通讯时,常用作波特率发生器。

20 4)工作方式3

21   如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就因为自己的一些控制位已被定时/计数器0借用,只能工作在方式0、方式1或方式2下,等效电路参见下图:

22 2.怎样编制计数程序? 从前面的任务中,我们看到了,首先必须对定时计数器进行初始化,然后再开启定时或计数。简单的总结一下,定时计数器的初始化包括以下内容。 (1)确定工作方式——对TMOD赋值; 如:任务中的MOV TMOD,#06H指令,设定T0为计数器工作方式。 (2)预置定时计数器中计数的初值——直接写入TH和TL; 如:任务中的MOV TH0,#00H 两条指令,设定计数初值。 MOV TL0,#00H

23 (3)根据需要开放定时器/计数器的中断——对IE位赋值;
(4)启动定时器/计数器; 如:任务中的SETB TR0 指令 初值的计算方法 X=M-计数值 M是定时器的最大计数值。视工作方式不同而不同。 工作方式0: 13位定时/计数方式,因此,最多可以计到2的13次方,也就是8192次。 工作方式1: 16位定时/计数方式,因此,最多可以计到2的16次方,也就是65536次。 工作方式2和工作方式3:都是8位的定时/计数方式,因此,最多可以计到2的8次方,也说是256次。

24 预置值计算: 用最大计数量减去需要的计数次数即可。
通过上面的任务,我们掌握了计数程序的编制方法,下面我们再看看定时程序怎样编制。 首先我们看一下下面的程序段。 MOV TMOD,#01H MOV TL0,#00H MOV TH0,#4CH SETB TR0 以上程序是任务一中的定时程序段,它的初始化过程和计数方式类似。

25 小结: 1.定时计数器的基本结构及其四种工作方式? 2.定时计数程序的编制方法? 思考与练习: 实验实训 项目8 定时器控制流水灯课题 项目9 计数器课题 要求: 课外完成编程、相关硬件安装、仿真与调试

26 5.2 任务十 单片机流水灯控制 〖学习目标〗: 通过任务十的学习、完成,掌握单片机硬件资源中断系统的使用。
5.2 任务十 单片机流水灯控制 〖学习目标〗: 通过任务十的学习、完成,掌握单片机硬件资源中断系统的使用。 〖任务描述〗: 单片机上电,单灯按1HZ频率循环,一旦按下P3.2所接的按键,发光二极管按双灯循环,松开此键,单灯继续原来的循环。

27 硬件电路与工作原理 1.硬件电路

28 2.工作原理 一旦按下P3.2所接按键后,P3.2口线上会出现这样两个变化,第一,口线上出现由高到低的变化,即出现下降沿。第二,P3.2按住后口线保持低电平直到松键为止。单片机就是利用口线上的这种变化,实现上述各种状态的切换。

29 控制程序 1.程序流程图

30

31 2.控制程序 ORG H LJMP MAIN ORG 0003H LJMP INT_0 ORG 001BH LJMP DELAY MAIN: SETB IT0 MOV TMOD,#01H MOV TL0,#00H MOV TH0,#4CH SETB PT0 SETB EA SETB EX0 SETB ET0

32 MOV B,#20 SETB TR0 MOV A,#0FEH BEGIN: MOV P1,A CJNE B,#00,$ RL A SJMP BEGIN INT_0: PUSH ACC MOV A,#0FBH LOOP: MOV P1,A

33 JNB P3.2,LOOP POP ACC RETI DELAY: MOV TL0,#00H MOV TH0,#4CH DJNZ B,LOOP1 LOOP1: RETI END

34 5.2.3 源程序的编辑、编译、下载 1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 1、正确选择单片机类型8751或8031
源程序的编辑、编译、下载 1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 1、正确选择单片机类型8751或8031 2、正确选择编译器-伟福编译器 3、选择模拟仿真功能 4、打开或新建文件进行编辑 5、编译 2.打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。 1、编译成功后打开下载软件 2、选择好单片机89S51并测试 3、打开伟福6000编译生成的.BIN或.HEX文件 4、选择自动写完成擦除、写、读、校验过程 5、观看运行结果

35 相关知识 1.单片机如何中断原来的工作? 在本任务中当按键S1按下后,原来单片机正在进行的工作被打断,按键松开后单片机又恢复了原来的工作,这就是我们在前面所说的中断。 或者说,CPU正在执行原程序时,突然,被意外事情打断,转去执行新程序。CPU执行新程序结束后,又回到原程序中继续执行。这样的过程就叫中断。

36 (1)MCS-51的中断结构 5个中断源,两个中断优先级控制 。

37 (2)中断处理流程 CPU响应中断请求后,就立即转入执行中断服务程序。不同的中断源、不同的中断要求可能有不同的中断处理方法,但它们的处理流程一般都如下所述。 1)现场保护和现场恢复 2)中断打开和中断关闭 3)中断服务 4)中断返回

38 (3)MCS-51的中断源 8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制。 TCON 88H TCON D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

39 IE1: 外部边沿触发中断1请求标志,其功能和操作类似于TF0。
IT1: 外部中断1类型控制位,通过软件设置或清除,用于控制外中断的触发信号类型。IT1=1,边沿触发。IT=0是电平触发。 IE0: 外部边沿触发中断0请求标志,其功能和操作类似于IE1。 IT0: 外部中断0类型控制位,通过软件设置或清除,用于控制外中断的触发信号类型。其功能和操作类似于IE1。 必须注意:在不同外部中断触发方式下,标志清除方法不一样。

40 SCON 98H SCON D7 D6 D5 D4 D3 D2 D1 D0 - TI RI 位地址 99H 98H TI: MCS-51串行口的发送中断标志。中断响应后,必须软件清除标志。 RI: MCS-51串行口的接收中断标志。中断响应后,必须软件清除标志。

41 MCS-51的对中断的开放和屏蔽是由中断允许寄存器IE(A8H)控制来实现的,IE的结构格式如下。 IE D7 D6 D5 D4 D3 D2
(4)中断的控制 MCS-51的对中断的开放和屏蔽是由中断允许寄存器IE(A8H)控制来实现的,IE的结构格式如下。 IE D7 D6 D5 D4 D3 D2 D1 D0 EA - ES ET1 EX1 ET0 EX0 位地址 AFH ACH ABH AAH A9H A8H EA: 中断总控制位,EA=1,CPU开放中断。EA=0,CPU禁止所有中断。 ES: 串行口中断控制位,ES=1允许串行口中断,ES=0,屏蔽串行口中断。 ET1: 定时/计数器T1中断控制位。ET1=1,允许T1中断,ET1=0,禁止T1中断。

42 EX1: 外中断1中断控制位,EX1=1,允许外中断1中断,EX1=0,禁止外中断1中断。
ET0: 定时/计数器T0中断控制位。ET1=1,允许T0中断,ET1=0,禁止T0中断。 EX0: 外中断0中断控制位,EX1=1,允许外中断0中断,EX1=0,禁止外中断0中断。 MCS-51的中断系统有两个不可寻址的优先级状态触发器,一个指出CPU是否在执行高优先级中断服务程序,另一个指出CPU是否正在执行低优先级的中断服务程序,这两个中断触发器的1状态分别屏蔽所有中断申请和同一级别的其他中断申请。此外,MCS-51还有一个申请优先级寄存IP,IP的格式如下,字节地址是B8H。

43 IP D7 D6 D5 D4 D3 D2 D1 D0 - PS PT1 Px1 PT0 PX0 位地址 BCH BBH BAH B9H B8H PS: 串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,PS=0,串行口定义为低优先级中断。 PT1: 定时器1优先级控制位。PT1=1,声明定时器1为高优先级中断,PT1=0定义定时器1为低优先级中断。 PX1: 外中断1优先级控制位。PT1=1,声明外中断1为高优先级中断,PX1=0定义外中断1为低优先级中断。 PT0: 定时器0优先级控制位。PT1=1,声明定时器0为高优先级中断,PT1=0定义定时器0为低优先级中断。 PX0: 外中断0优先级控制位。PT1=1,声明外中断0为高优先级中断,PX1=0定义外中断0为低优先级中断。

44 (5)中断的响应 MCS-51CPU在每一个机器周期顺序检查每一个中断源,在机器周期的S6按优先级处理所有被激活的中断请求,此时,如果CPU没有正在处理更高或相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者CPU不是正在执行RETI指令或访问IE和IP的指令(因为按MCS-51中断系统的特性规定,在执行完这些指令之后,还要在继续执行一条指令,才会响应中断),CPU在下一个机器周期响应激活了的最高级中断请求。 中断响应的主要内容就是由硬件自动生成一条长调用LCALL addr16指令,这里的addr16就是程序存储器中相应的中断区入口地址,这些中断源的服务程序入口地址如下:

45 中断源 入口地址 外中断0 0003H 定时/计数器0 000BH 外中断1 0013H 001BH 串行口中断 0023H 生成LCALL指令后,CPU紧跟着便执行之.首先将PC(程序计数器)的内容压入堆栈保护断点,然后把中断入口地址赋予PC,CPU便按新的PC地址(即中断服务程序入口地址)执行程序。

46 2.单片机中断程序怎样编制? 从上面的任务程序中,我们来体会以下中断服务程序的编制方法。 (1)首先必须对中断系统进行初始化,包括: 1)开中断,即设定IE寄存器。 如上面程序中的 SETB EA ;开总中断控制位 SETB EX0 ;开外部中断0 SETB ET0 ;开定时器中断0 2)设定中断优先级,即设置IP寄存器。 如上面程序中的 SETB PT0;设定时器0中断为高优先级 3)如果是外部中断,还必须设定中断响应方式,即设定IT0、IT1位。

47 如上面程序中的 SETB IT0 ;设外部中断0为边沿触发方式
4)如果是计数、定时中断必须先设定定时、计数的初始值。 如上面程序中的 MOV TL0,#00H MOV TH0,#4CH 5)初始化结束后,对于定时、计数器而言,还应该记得启动定时或计数,即设定TR0、TR1位。串口接收中断,要记得允许接收位REN应该设置。 如上面程序中的 SETB TR0

48 (2)中断初始化结束后,就可以编制中断服务程序,编制中断服务程序时注意:
1)中断服务程序,第一条指令必须安排在相应的中断入口地址,并且应该是转移指令,由于中断响应时,已经由硬件执行了LCALL指令,中断程序断点地址已经入栈,所以不能再用子程序调用指令。 如任务程序中的 ORG 0003H ;外部中断0入口地址 LJMP INT_0 ORG 001BH ;定时器T0中断入口地 ;址 LJMP DELAY

49 2)由于中断的产生是随机的,所以对程序中的公共单元(其他程序中已经使用,中断程序中也使用了的单元),必须在中断服务程序开始处,采用堆栈进行保护,即入栈。子程序返回前再出栈。
如任务程序中的 PUSH ACC …… POP ACC 3)中断服务程序必须以RETI结束,因为RETI指令具 有两个功能:第一,将断点地址弹回PC指针,以保证能继续原来的程序,第二,能将中断优先级状态触发器清零,以保证新的中断请求能够被相应。

50 小结: 1.MCS-51中断系统的结构及与中断有关的寄存器是什么? 2.怎样编制中断服务程序? 思考与练习: 实验实训: 项目10 中断方式实现流水灯控制 项目11 外部中断课题 项目12 按键使用课题 要求: 课外完成编程、相关硬件安装、仿真与调试

51 5.3 任务十一两台单片机数据互传 〖学习目标〗: 通过任务十一的学习、完成,掌握单片机硬件资源串行通讯接口的使用
5.3 任务十一两台单片机数据互传 〖学习目标〗: 通过任务十一的学习、完成,掌握单片机硬件资源串行通讯接口的使用 〖任务描述〗: 两台单片机之间,要求将对方单片机的按键值(S1=1)通过串口传送给另外一方,并在发光二极管显示。

52 硬件电路与工作原理 1.硬件电路

53 2.工作原理 单片机扫描到S1(P3.2)键合上后,即启动串行发送,将01H这个数发送给对方单片机,对方单片机收到数据后,再从P1口送出来显示。

54 控制程序 1.程序流程图

55 2.控制程序 ;发送程序段 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SCON,#40H ;串口初始化,设置工 ;作方式1 MOV PCON,#80H ;波特率加倍 MOV TMOD,#20H ;定时器1工作在方式2 MOV TH1,#0FDH ;设置波特率为9600 SETB TR1 LOOP: JB P3.2,$ ;判键是否合上? LCALL DELAY ;延时10MS去抖 JB P3.2,LOOP MOV SBUF,#01H ;启动串行发送 JNB TI,$ ;判断是否发送完毕?

56 CLR TI SJMP $ DELAY: MOV R3,#100 DEL: MOV R4,#50 DJNZ R4,$ DJNZ R3,DEL RET END ;接收程序段 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SCON,#40H ;串口初始化,设置工 ;作方式1

57 MOV PCON,#80H ;波特率加倍 MOV TMOD,#20H ;定时器1工作在方式2 MOV TH1,#0FDH ;设置波特率为 SETB TR1 SETB REN ;允许接收 LOOP: JB RI,$ ;判键是否合上? CLR RI ;延时10MS去抖 MOV P1,SBUF SJMP $ END

58 5.3.3 源程序的编辑、编译、下载 1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 1、正确选择单片机类型8751或8031
源程序的编辑、编译、下载 1.打开“伟福”模拟仿真软件进行程序的编辑、编译。 1、正确选择单片机类型8751或8031 2、正确选择编译器-伟福编译器 3、选择模拟仿真功能 4、打开或新建文件进行编辑 5、编译 2.打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。 1、编译成功后打开下载软件 2、选择好单片机89S51并测试 3、打开伟福6000编译生成的.BIN或.HEX文件 4、选择自动写完成擦除、写、读、校验过程 5、观看运行结果

59 相关知识 1.单片机如何能收、发数据? MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。

60 (1)基本概念 1)数据通信的传输方式 【并行通信和串行通信】 并行通信:数据的各位同时送出。 串行通信:数据的各位逐位送出。 P1.0
1 P1.0 P1.1 P1.2 P1.3 RXD TXD 单片机 外设1 外设2 11

61 【单工方式】 数据仅按一个固定方向传送。 【半双工方式】 数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。 【全双工方式】 允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。

62 2)串行数据通信两种形式 【异步通信】在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位 。 【同步通信】发送器和接收器由同一个时钟源控制, 同步传输方式去掉了起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。 这两种方式各有何优劣?

63 3)串行数据通信的传输速率 串行数据传输速率有两个概念,即每秒转送的位数bps(Bit per second)和每秒符号数—波特率(Band rate),在具有调制解调器的通信中,波特率与调制速率有关。 举例:设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为每秒240个字符。求波特率。 解:(1+8+1)×240 = 2400 b/s = 2400波特。

64 (2)MCS-51的串行口和控制寄存器 1)串行口数据缓冲器SBUF 在物理结构上,有一个串行口接收缓冲器SBUF 、一个发缓冲器SBUF ,但这两个寄存器具有同一地址(99H)。 只允许写 只允许读

65 SM0 SM1 SM2 REN TB8 RB8 9FH 9EH 9DH 9CH 9BH 9AH 2)串行通信控制寄存器 SCON D7 D6
TI RI 位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H TI / RI :中断请求标志位 RB8:接收的第九位数 TB8:发送的第九位数 REN:允许接收控制位 SM2:多机通信控制位 SM0、SM1:工作方式选择位(四种工作方式)

66 3)电源管理寄存器PCON 字节地址87H,不可位寻址。它的D7位SMOD为串行口波特率控制位,可由软件置位或清零。若SMOD=1,则使工作在方式1、2、3时的波特率加倍。 4)中断允许寄存器IE IE D7 D6 D5 D4 D3 D2 D1 D0 EA - ES ET1 EX1 ET0 EX0 位地址 AFH ACH ABH AAH A9H A8H EA、ES位控制串口中断的开启。

67 2.单片机怎样通过程序控制收发数据? 串口程序的编制和定时、计数器以及中断程序编制一样,首先也应该初始化。 (1) 先设定SCON,设定好串口工作方式 如:任务程序中的 MOV SCON,#40H 设定串口工作方式一。 (2) 如果用到中断的,还必须设定IE或IP。 如:任务中的接收程序可以改成: …… ORG 0023H LJMP P_JS ORG 0030H

68 SETB EA SETB ES P_JS: CLR RI …… RETI (3) 然后设定波特率,即根据工作方式设置定时计数器T1、以及PCON寄存器。 如任务中的 MOV PCON,#80H ;波特率加倍 MOV TMOD,#20H ;定时器1工作在方 ;式2 MOV TH1,#0FDH ;设置波特率为9600 值得注意的是,由于串行发送、接收标志不能硬件自动清除,所以,不管是中断方式还是查询方式编程时都必须用软件方式清除TI、RI。

69 小结: 1.串行口的四种工作方式各有何特点? 2.怎样编制串口通讯程序? 思考与练习: 实验实训 项目14 串口通讯课题 要求:课外完成编程、相关硬件安装、仿真与调试


Download ppt "单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传"

Similar presentations


Ads by Google