单片机与嵌入式系统:第五章 单片机(五、六、七)(2课时)_第1页
单片机与嵌入式系统:第五章 单片机(五、六、七)(2课时)_第2页
单片机与嵌入式系统:第五章 单片机(五、六、七)(2课时)_第3页
单片机与嵌入式系统:第五章 单片机(五、六、七)(2课时)_第4页
单片机与嵌入式系统:第五章 单片机(五、六、七)(2课时)_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

定时器工作模式

M1M0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器定时器1:停止计数模式0模式1模式2模式3定时器初始化过程1、确定并设定定时器工作模式

TMOD2、设置定时/计数器初值

TH0、TL0或TH1、TL13、开启定时器中断

IE:ET0(ET1)和EA4、启动定时器

TCON:TR0(TR1)注:如果采用查询方式控制定时器还需要判断TF0(TF1)应用举例用定时器1方式0在P1.0上产生周期为2S的方波。晶振频率为12MHz。

1、最大定时时间:8192×1s=8.192ms2、选定定时T=5ms3、

X=3192=C78H=00001100,01111000B4、C78H=0110001111000BT0初值=01100011,00011000B=6318HTH1=63H,TL1=18H#include<reg51.h>sbitP1_0=P1^0;main(){ unsignedchari=200; TMOD=0x00;//设定工作模式为0 TH1=0x63;//根据计算设定计数器初值 TL1=0x18; TR1=1;//启动定时器 while(1) { if(TF1==1)//判断定时溢出标志 {TH1=0x63;//设定计数器初值TL1=0x18; TF1=0;//清除标志位 i=i-1;if(i==0)//判断是否计满200次,即定时1秒{ i=200; P1_0=!P1_0;//将P1.0电平翻转 } } }}程序(查询方式--C)程序(中断方式—C)#include<reg51.h>sbitP1_0=P1^0;unsignedchari=200;main(){ TMOD=0x00; TH1=0x63; TL1=0x18; TR1=1; IE=0x88; while(1){}}voidintT1()interrupt3//T1定时中断处理函数{ TH1=0x63;//定时器中断时间间隔5ms TL1=0x18;i=i-1; if(i==0) { i=200; P1_0=!P1_0; }}应用举例用定时器1方式1在P1.0上产生周期为2S的方波。晶振频率为12MHz。

1、最大定时时间:2、选定定时T=?3、T0初值X=?程序(中断方式—C)#include<reg51.h>sbitP1_0=P1^0;unsignedchari=20;main(){ TMOD=

; TH1=

; TL1=

; TR1=

; IE=0x88; while(1){}}应用举例用定时器1方式1在P1.0上产生周期为2S的方波。晶振频率为12MHz。

1、最大定时时间:65536×1s=65.536ms2、选定定时T=50ms3、

X=15536=3CB0H=00111100,10110000B4、T0初值=00111100,10110000B=3CB0HTH1=3CH,TL1=B0H程序(中断方式—C)#include<reg51.h>sbitP1_0=P1^0;unsignedchari=20;main(){ TMOD=0x10; TH1=0x3C; TL1=0xB0; TR1=1; IE=0x88; while(1){}}voidintT1()interrupt3//T1定时中断处理函数{ TH1=0x3C;//定时器中断时间间隔50ms TL1=0xB0;i=i-1; if(i==0) { i=20; P1_0=!P1_0; }}#include<reg51.h>sbitP1_0=P1^0;main(){ unsignedchari=20; TMOD=0x10;//设定工作模式为0 TH1=0x3C;//根据计算设定计数器初值 TL1=0xB0; TR1=1;//启动定时器 while(1) { if(TF1==1)//判断定时溢出标志 {TH1=0x3C;//设定计数器初值TL1=0xB0; TF1=0;//清除标志位 i=i-1;if(i==0)//判断是否计满20次,即定时1秒{ i=20; P1_0=!P1_0;//将P1.0电平翻转 } } }}程序(查询方式--C)17练习1定时器工作在中断模式,请指出下列程序的错误#include<reg51.h>main(){TMOD=0x10;TH0=25535/256;TL0=25535%256;TCON=0x40;ET0=1;ET1=0;EA=1;……}18练习2#include<reg51.h>main(){TMOD=0x10;TH1=25535/256;(25535>>8)TL1=25535%256;(25535的低8bit)TCON=0x40;ET1=1;EA=1;……}晶振12MHz,请写出定时器T1的中断时间间隔单片机与嵌入式系统第五章单片机:存储器扩展中南大学信息科学与工程学院程序存储器ROM的扩展数据存储器RAM的扩展第

系统扩展

本章内容SingleChipMicrocomputer1

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

器80318751805189C51片内RAM片内ROM256B(字节)4K64K64K(1)程序存储器程序存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,

在这三个单元存放一条

无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEHEA=1EA=0程序存储器资源分布中断入口地址0000HFFFFH(64K)内部外部(2)数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用

寄存器00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器

11第3区18H~1FH

01第1区08H~0FHRS1RS0寄存器区片内RAM地址

00第0区00H~07H10第2区10H~17H工作寄存器区选择位RS0、RS1PSW位地址CYACF0RS1RS0OVF1P⑴地址总线(AddressBus,简写AB)地址线A0~A15共16位,P2口提供高8位地址A8~A15,P0口经地址锁存器提供低8位地址A0~A7。片外存储器可寻址范围达64KB(即=65536个字节)。⑵数据总线(DataBus,简写DB)

地址线D0-D7共8位,由P0口提供,分时输送低8位地址(通过地址锁存器锁存)和8位数据信息。⑶控制总线(ControlBus,简写CB)

控制总线由P3口的第二功能(P3.6)、(P3.7)和3根独立的控制线、ALE和组成。MCS-51单片机的片外三总线结构所谓总线,就是连接单片机与系统中各部件的一组公共的信号线。5.1程序存储器ROM的扩展8051有片内ROM的容量:4K片外最大可扩展64KROM。有关的管脚:EA片内资源可用来扩展的存储器芯片:EPROM:2716(2K*8),2732,2764,27256等EEPROM:2816(2K*8),2864,28128等还要用到锁存器芯片:例74LS373。存储器27162816其引脚功能如下:A0~Ai地址输入线。Q1~Q8单向数据线;CE片选信号输入线,低电平有效;OE读选通信号输入线,低电平有效;VCC工作电源,电压为+5V;GND线路地。存储器读访问时序图8-2689C51地址总线扩展电路74LS373读外部程序存储器时序注意:上述时序是在取指令过程中自动产生在8031单片机上扩展单片EPROM在8031单片机上扩展多片EPROM(片选法)在8031单片机上扩展多片EPROM(片选法)在8031单片机上扩展多片EPROM(译码法)在8031单片机上扩展多片EPROM(译码法)5.2数据存储器RAM的扩展8051片内RAM的容量:256B片外最大可扩展64KRAM。片内资源可用来扩展的存储器芯片:SRAM6116,6264,62256等也要用到锁存器芯片:例74LS373。认识芯片图8-27常用静态RAM芯片引脚图其引脚功能如下:A0~Ai地址输入线,i=10(6116),12(6264),14(62256)。D0~D7双向数据线;CE片选信号输入线,低电平有效,当6264的26脚(CS)为高电平,且CE为低电平时。才选中该片;OE读选通信号输入线,低电平有效;WE写允许信号输入线,低电平有效;VCC工作电源,电压为+5V;GND线路地。读/写外部数据存储器时序图8-2889C51访问片外RAM操作时序图单片机与嵌入式系统第五章单片机:显示及键盘中南大学信息科学与工程学院键盘接口显示器接口第

接口技术

本章内容SingleChipMicrocomputer7.1键盘接口按键的特点及输入原理独立式按键矩阵式按键按键的特点及输入原理按键的分类:触点式:机械;无触点式:电气键输入原理:通过按键的接通与断开,产生两种相反的逻辑状态低电平“0”与高电平“1”。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。

键盘接口需要解决的问题是否有键按下按键识别:键抖动及消除:机械按键抖动时间在5ms~10ms之间

硬件方案——双稳态去抖电路

软件方案——延时10ms~20ms后再次判断消除方法:求键号独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法编程较为复杂,节省口资源,8键以上使用键盘扫描子程序一般包括以下内容:

1.判别有无键按下;

2.扫描获取闭合键的行、列值;

3.用计算法或查表法得到键值;

4.判断闭合键释放否,如没释放则继续等待;

5.保存闭合键号。按键识别——扫描法

流程:

当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。

键号=行首键号(0、4、8、12)+列号(0、1、2、3)

原理:

在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。矩阵式按键3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法编程较为复杂,节省口资源,8键以上使用定时扫描方式

定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。中断扫描方式

为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。7.2显示器接口技术LED的结构和显示原理静态显示方式动态显示方式动态显示的实现问题引入:

LED显示器如何显示出指定数字/字符?图9-11LED7段显示器

工作原理:以共阴极为例某各发光二极管阳极加上高电平时点亮驱动方式静态驱动:每个数码管用一个并口驱动动态驱动:共一个并口,轮询以节省资源

静态显示方式连接

所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。

特点原理简单;显示亮度强,无闪烁;占用I/O资源较多。动态显示方式连接

所有LED的段选线共同连接在一起共用一个8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式,每一个时刻只选通其中一个LED,同时在段选口送出该位LED的字型码。

单片机与嵌入式系统第五章单片机:串行通信中南大学信息科学与工程学院基本概念RS-232接口MCS-51的串行接口单片机与单片机之间的通信编程练习第

串行口通信技术本章内容SingleChipMicrocomputer什么是串行通信?串行通信和并行通信计算机1

GND计算机2

GND并行通信计算机1

GND计算机2

GND发送接收串行通信并行通信:数据的各位同时传送;串行通信:数据一位一位顺序传送。发送时的并串转换:接收时的串并转换:串行通信的分类:异步(AsynchronousCommunication)同步(SynchronousCommunication)

串行通信制式:单工(a)、半双工(b)和全双工(c)(simplexhalfduplexfullduplex)发送器A站接收器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)同步通信异步通信的概念

同步和异步都属于串行数据传送方式,但二者的传送格式有所不同。同步方式的一帧内含有很多数据位,而异步方式一帧内只含有几个数据位。如果要传送一大堆数据,同步方式只给这串数据进行一次外包装(即添加“头帧”、“尾帧”、“校验”帧),而异步方式在传送这串数据时则要对数据的每一个字节分别加以包装(即添加“头”位、“尾”位和校验)。

显然在相同的数据传输波特率下,同步方式比异步方式的传送速度快,但同步方式要求收发双方在整个事件传送过程中始终保持严格同步,这将增加硬件上的难度,而异步通信只要求每帧(字节)的传送中短时间保持同步即可,实现起来要容易得多。同步、异步数据通信格式数据数据数据……数据数据……同步字符同步字符1同步字符2图6.1同步传送的数据格式1100/10/10/10/10/10/10/10/10/1111起始位停止位奇偶校验8位数据空闲位空闲位第n个字符100/10/1起始位第n+1个字符0/10/1图6.2异步通信数据帧格式MCS-51的串行接口概述有一个可编程全双工串行通信接口(UART)(UniversalAsychronousReceiver/Transmitter)管脚:TXD(P3.1)、RXD(P3.0)可同时发送、接收数据(Transmit/Receive)有四种工作方式。波特率(Baudrate)可设置

波特率:每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。MCS-51串行接口的结构SBUFSBUF发送控制接收控制发送端口接收端口≥1波特率控制TXDRXDDBDBTIRI串行中断写SBUF读SBUF1.数据缓冲寄存器SBUF两个SBUF,一个用于发送(只写);一个用于接收(只读)。映象地址均为99H。2.数据发送与接收控制发送控制器在波特率作用下,将发送SBUF中的数据由并到串,一位位地传输到发送端口;接收控制器在波特率作用下,将接收接收端口的数据由串到并,存入接收SBUF中。MCS-51串行接口的结构MCS-51串行接口寄存器SBUF——串行口数据缓冲器共两个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。SCON——串行口控制寄存器PCON——电源及波特率选择寄存器控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允许串行接收位接收数据的第9位发送数据的第9位接收中断标志发送中断标志9FH9EH9DH9CH9BH9AH99H98HSCON98HSM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可变10方式211位UARTfosc/64或fosc/3211方式311位UART可变串行方式的定义例:设串行口工作在方式1,允许接收,则指令为:

MOVSCON,#01010000B串行通信只用该位,为1时,方式1、2、3波特率×2;为0时不变。电源及波特率选择寄存器PCONSMOD×××GF1GF0PDIDL87H串行口四种工作方式应用比较方式的选择由SM1、SM0实现。工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART数据、起始、校验、结束位可变(取决于定时器1溢出率)方式0在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。方式0用于扩展I/O口输出方式0用于扩展I/O输出口原理串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器SBUF时,立即启动发送,将8位数据以Fosc/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送标志TI由硬件置位。例:单片机串行口方式设为移位寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口。方式0用于扩展I/O口输入方式0用于扩展I/O输入口原理方式0用于扩展I/O输入口原理输入:RXD为串行输入端,TXD仍为同步脉冲移位输出端。当(RI)=0且(REN)=1时开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。例:利用串行口扩展了1片74LS165,从而实现了8个按键的输入,在单片机的P1口连接了8个LED发光二极管,程序中实现了用按键控制发光二极管的亮与灭。流程为8路开关-74165-3PIN数据线-8路指示灯。由此可以看出通过165传输,只用了3条数据线,就实现了8个开关控制8个灯的目的。从而节约了控制的连线。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论