51单片机接口(并口串口)10
10MCS-51单片机常用接口电路
0000H
START
000BH
T0_INT
SP,
#5FH
TMOD, #01H
TH0, #0F8H
TL0,
#30H
TR0
ET0
EA
DISP_W, #00H
DISP_BIT
DISPLAY
LOOP
;复位入口地址。
;跳到主程序。
;定时/计数器0中断入口地址-51使用统一编址的方式每一接口芯片中的 一个功能寄存器(端口)的地址就相当于一个RAM单 元。 10.1.3 I/O数据的几种传送方式
为实现和不同的外设的速度匹配,I/O接口必须 根据不同外设选择恰当的I/O数据传送方式。I/O数据 传送的几种传送方式是:
(1)同步传送 (2)查询传送 (3)中断传送。
;定时/计数器0工作于方式1。 ;设置定时2ms的定时器初值高位。 ;设置定时2ms的定时器初值低位。 ;允许T0计数。 ;允许T0中断。 ;开单片机中断。
;指向显示的第一个数码管。
;清除定时标志DISP_BIT。 ;调显示子程序。
T0_INT: MOV
MOV
SETB RETI
;显示子程序入口: DISPLAY: JB
d
c
b
a
段码如下表所示:
显示字符 0 1 2 3 4 5 6 7 8 9 A B
共阴极段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77FH 7CH
共阳极段码 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H
显示字符 C D E F P U T y H L
第10章 MCS-51单片机常用接口电路 10.1 扩展I/O接口的设计 ➢MCS-51单片机要通过I/O接口来和外设交换信息。 ➢I/O扩展属于单片机系统扩展的一部分,MCS-51单 片机有P0~P3共4个8位的并行I/O口,由于P0和P2 在很多场合要用作16位的地址总线和8位的数据总 线,真正能用作I/O接口的只有P1口和P3口的部分 引脚。 ➢在具体应用设计中往往需要扩展I/O接口。
MCS51P端口知识
MCS-51P端口知识1 引言MSC—51是70年代末的产品,目前出现了很多功能更强大的单片机,但在目前市场上的产品中MSC—51仍占单片机的多半产品,且MCS—51是其他单片机的基础。
本文将详细讨论MSC—51的并行接口,目的是为单片机的使用者提供更好的理论依据。
2 MSC—51的并行I/O端口2.1 I/O端口简介I/O端口又称为I/O接口或I/O通路,是MSC—51单片机对外部实现控制和信息交换的必经之路,是一个过渡的大规模集成电路,用于信息传递过程中的速度匹配和增强单片机的负载能力。
I/O 端口可以实现和不同外设的速度匹配,以提高CPU的工作效率,可以改变数据的传送方式,如:内部并行总线与外部设备串行数据传送的转换。
2.2 MSC—51各并行I/O的组成I/O端口分为串行口和并行口。
串行I/O端口一次只能传送一位二进制信息;并行I/O端口一次可传送一个字节的数据。
MSC—51单片机有四个并行端口,分别命名为P0、P1、P2、P3,每个端口都有八条端口线,用于传送数据或地址信息。
由于每个端口的结构各不相同,因此它们在功能和用途上差别颇大。
每个I/O端口都由一个八位数据锁存器和一个八位数据缓冲器组成,其中八位数据锁存器的端口与P0、P1、P2、P3同名,属于21个特殊功能寄存器中的4个,对应内部RAM地址分别为80H、90H、A0H、B0H。
需要输出数据时,8个数据锁存器用于对端口引脚上输入数据进行锁存。
需要输入数据时,8个数据缓冲器用于对端口引脚上输入数据进行缓冲。
另外访问并行I/O端口除了可以用字节地址访问外,还可以进行按位寻址。
3 P0综述3.1 P0口功能P0.7—P0.0为P0所用。
P0口的访问地址是80H,位地址范围是80H—87H。
由于P0口具有较大的负载能力,最多可推动8个TTL门,因此是真正的双向I/O口。
一般来说,P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。
51单片机结构功能
51单片机结构功能51单片机是指基于Intel的8051微处理器为核心的单片机,其结构功能丰富,被广泛应用于各种嵌入式系统。
一、结构51单片机采用冯·诺依曼结构,具有指令存储器和数据存储器,其中程序存储器(ROM)用于存储程序和表格数据,而数据存储器(RAM)用于存储可变数据。
51单片机还具有特殊功能寄存器(SFR),这些寄存器专门用于控制和设置单片机的各种功能。
二、功能1、运算功能:51单片机具有8位运算器,可以进行算术、逻辑和位运算。
2、控制功能:51单片机具有丰富的控制指令,可以实现如条件转移、跳转、中断等功能,还可以进行定时器和计数器的控制。
3、通信功能:51单片机可以通过串行口实现串行通信,也可以通过并行口实现并行通信。
4、存储功能:51单片机内部具有少量的RAM和ROM存储器,同时还可以外接扩展存储器。
5、定时/计数功能:51单片机内部具有定时器和计数器,可以实现定时和计数的功能。
6、中断功能:51单片机具有多个中断源,可以实现多级中断控制。
7、输入/输出功能:51单片机具有多个输入/输出端口,可以实现多种输入/输出控制。
51单片机以其结构紧凑、功能丰富、易于使用等特点,被广泛应用于工业控制、智能家居、消费电子等领域。
C51单片机寄存器功能湖山网络广播系统设计方案一、概述随着科技的发展和数字化的普及,网络广播系统在各种场所扮演着越来越重要的角色。
湖山网络广播系统设计方案旨在满足湖山地区对高质量、高效的网络广播系统的需求。
该方案旨在构建一个稳定、可靠、易用的网络广播系统,以满足湖山地区在公共广播、紧急通知、日常资讯等方面的需求。
二、系统需求分析1、稳定性:系统应具备高度的稳定性,能够保证长时间的连续运行,避免因设备故障或网络问题导致的广播中断。
2、可靠性:系统应具备可靠的备份机制,确保在主设备出现问题时,备份设备能够迅速接管,保证广播的连续性。
3、易用性:系统应具备良好的用户界面,操作简单易懂,方便管理员进行配置和管理。
单片机系统的扩展技术
INC R0
INC DPTR
; 修改数据指针
DJNZ R7, AG
END
4.2.3 MCS-51对外部存储器的扩展
下 图 所 示 的 8031 扩 展 系 统 中 , 外 扩 了 16KB 程 序 存 储 器 ( 使 用 两 片 2764芯片)和8KB数据存储器(使用一片6264芯片)。采用全地址译码方 式,用于控制2―4译码器的工作,参加译码,且无悬空地址线,无地址重 叠现象。1# 2764, 2# 2764, 3# 6264的地址范围分别为:0000H~1FFFH, 2000H~3FFFH, 4000~5FFFH。
4.2 存储器的扩展
存储器是计算机系统中的记忆装置,用来存放要运行的程序和程序 运行所需要的数据。单片机系统扩展的存储器通常使用半导体存储器, 根据用途可以分为程序存储器(一般用ROM)和数据存储器(一般用 RAM)两种类型。
MCS-51单片机对外部存储器的扩展应考虑的问题:
(1)选择合适类型的存储器芯片
引脚符号的含义和功能如下:
D7~D0:三态数据总线; A0~Ai:地址输入线,i=12~15。2764的地址线为13位,i=12; 27512的地址线为16位,i=15; CE :片选信号输入线; OE :输出允许输入线;
CE
VPP:编程电源输入线; PGM :编程脉冲输入线; VCC:电源; GND:接地; NC:空引脚。
8051扩展2764的电路连接方法:
数据线:P0口接EPROM的D0~D7 ;
地址线: 2764容量为8KB,213=8KB,需要A0~A12共13根地址线。P0口
经地址锁存器后接EPROM的A0~A7 ; 为了与片内存储器的空间地址衔 接,~接EPROM的A8~A11 , 经非门后与A12连接。
MCS-51单片机并行口的结构与操作
华中科技大学光学与电子信息学院单片机( 2015 -- 2016学年度第一学期)题目:MCS-51单片机并行端口结构与操作院系:光学与电子信息学院班级:学号:学生姓名:指导教师:成绩:日期: 2015年 9月 21日MCS—51单片机并行口的结构与操作一、MCS—51单片机简介MCS—51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MCS—51单片机作为代表进行理论基础学习.MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:8位CPU、4kbytes 程序存储器(ROM)、128bytes的数据存储器(RAM)、32条I/O口线、111条指令,大部分为单字节指令、21个专用寄存器、2个可编程定时/计数器、5个中断源,2个优先级、一个全双工串行通信口、外部数据存储器寻址空间为64kB、外部程序存储器寻址空间为64kB、逻辑操作位寻址功能、双列直插40PinDIP封装、单一+5V电源供电。
如图所示:1。
结构(1)中央处理单元(8位)数据处理、测试位,置位,复位位操作(2)只读存储器(4KB或8KB)永久性存储应用程序,掩模ROM、EPROM、EEPROM(3)随机存取内存(128B、128B SFR)在程序运行时存储工作变量和资料(4)并行输入/输出口(I / O)(32条)作系统总线、扩展外存、I / O接口芯片(5)串行输入/输出口(2条)串行通信、扩展I / O接口芯片(6)定时/计数器(16位、加1计数)计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作(7)时钟电路内振、外振。
(8)中断系统五个中断源、2级优先。
51单片机的基本结构
51单片机的基本结构51单片机是一种高性能、低功耗的微控制器,是嵌入式系统中常用的一种芯片。
它具有集成度高、易编程、可编程性强等特点,在各种电子设备中广泛应用,包括家电、工业控制、汽车电子、智能仪器等领域。
51单片机的基本结构主要包括CPU、存储器、输入输出端口、定时计数器和串口通信等部分。
1.CPU51单片机的CPU是其核心部分,负责执行指令、进行运算处理。
它通常采用哈佛结构,即指令和数据分开存储。
51单片机的CPU主要由ALU (算术逻辑单元)、寄存器组、指令寄存器、程序计数器等部分组成,能够完成基本的运算和控制功能。
2.存储器51单片机的存储器包括ROM(只读存储器)和RAM(随机存储器)。
ROM用于存储程序代码和常量数据,是只读的;RAM用于存储变量数据和临时结果,是可读写的。
在51单片机中,通常ROM用于存储程序代码和初始化数据,RAM用于存储运行时数据和临时结果。
3.输入输出端口51单片机的输入输出端口用于与外部设备进行数据交换。
它可以通过不同的接口与外部设备连接,比如并行口、串行口、通用输入输出口等。
通过输入输出端口,51单片机可以与外部设备进行数据传输和通信,实现各种功能。
4.定时计数器51单片机的定时计数器可以用于计时和计数,通常用于控制时序和频率。
在51单片机中,定时计数器可以生成各种定时中断,实现定时控制功能。
定时计数器可以根据需要设定不同的时钟源和计数模式,实现灵活的定时控制。
5.串口通信51单片机的串口通信功能可以用于与外部设备进行串行通信,比如与PC机、外围设备等进行数据传输。
串口通信包括串行口和UART(通用异步收发器),可以通过串行口进行双向数据传输。
串口通信在51单片机中广泛应用于各种通信设备和控制系统中。
总的来说,51单片机的基本结构包括CPU、存储器、输入输出端口、定时计数器和串口通信等部分,通过这些部分的组合和协作,可以实现各种功能和应用。
在实际应用中,设计人员可以根据需要对这些部分进行配置和扩展,实现更丰富的功能和性能要求。
单片机-第8章 单片机的并行接口
1.8155的内部结构
图8-1 8155的内部结构
8155芯片各组成部分的作用:
双向数据总线缓冲器:用于缓冲存储单 片机与8155的RAM之间的读/写数据。 地址锁存器:用于锁存单片机送给8155 的端口地址或RAM单元地址。 地址译码器:用于对地址锁存器送来的 低3位地址进行译码,根据译码输出,选择 命令/状态寄存器、定时器/计数器或A、B 和C 3个I/O寄存器中的某一个工作。
命令寄存器和状态寄存器:命令寄存器存放 单片机送来的命令字,只能写入;状态寄存器 存放8155的状态字,只能读出。 定时器/计数器:是一个二进制14位的减法 计数器。计数器初值由单片机送入,由TIMER IN引脚上输入的脉冲实现减1计数控制,并根据 不同的计数输出方式从TIMER OUT引脚输出相 应的波形。作为定时器使用时,TIMER IN引脚 应输入频率恒定的周期脉冲。
读写控制器:根据和线上的信号,控制 单片机与8155之间所传信息的 读写。
RAM存储器:容量为256字节,用于存 放实时数据。存储器存储单元地址由地址 锁存器指定。
I/O寄存器:A、B和C 3个端口各有一 个I/O寄存器。其中A、B端口的I/O寄存器 为8位,用于存放外设的输入/输出数据;C 口的I/O寄存器为6位,用于存放输入/输出 数据或命令/状态信息。8155在某一时刻只 能选中某个I/O寄存器工作,这由单片机送 给8155的命令字决定。
PC1、PC2:C口工作方式设置位,设 置方法如表8-2所示。
P3口 的第二功能
P3口引脚 P3.0 名称 RXD 功 能 串行口输入
P3.1 P3.2 P3.3 P3.4 P3.5 P3.6
P3.7
TXD
INT0
51单片机并行口驱动LED数码管显示电路及程序
51单片机并行口驱动LED数码管显示电路及程序
介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。
1 硬件电路
多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。
本文将介绍一种利用单片机的一个并行I/O口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。
其中,74LS138是3线-8线译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。
显示时,其显示数据以串行方式从89C52的P12口输出送往移位寄存器74LS164的A、B 端,然后将变成的并行数据从输出端Q0~Q7输出,以控制开关管WT1~WT8的集电极,然后再将输出的LED段选码同时送往数码管LED1~LED8。
位选码由89C52的P14~P16口输出并经译码器74LS138送往开关管Y1~Y8的基极,以对数码管LED1~LED8进行位选控制,这样,8个数码管便以100ms的时间间隔轮流显示。
由于人眼的残留效应,这8个数码管看上去几乎是同时显示。
<51单片机并行口驱动LED数码管显示电路>
2 软件编程
该系统的软件编程采用MCS-51系列单片机汇编语言完成,并把显示程序作为一个子程序,从而使主程序对其进行方便的调用。
图2所示是其流程图。
具体的程序代码如下:
<51单片机并行口驱动LED数码管显示程序>。
MCS51单片机内部并行口及应用
读锁存
0
P0
DB0.0 写控制信号
DQ 锁存器
CP Q
转换开关
0
读引脚
注意: 1、P2口作输入口时,P20—P27上的信号经过缓冲器送到内部数据总线上。 在读引脚之前,要先将锁存器置1,否则总是读到0。 2、CPU对P2口的读操作有2种:读引脚和读—改—写锁存器。
返回
1 .当使用单片机内部串行口1时.1,.若4CPPU执3行口M结OV构A,SBUF指令,则P3.0(RXD)作
返回
当CPU执行读—改—写指令(以端口为目 的操作数的ANL、ORL、XRL、DEC、 INC 、P(1S口将E直PTB1接.、0做处C输的LR入0等送口)入时时D,B,输0产.0入生的信读过息锁程的存) 过程: 信号,此时是先读锁存器的状态,在修改 之后,送回锁存器保存。
读锁存
当CPU执行 MOV A,P1或 JB/JNB
读锁存
地址/数据控制线 0
&
0
DB0.0
0
写控制信号
DQ 锁存器 1 CP Q
转换开关
+5V
0P0.0
读引脚
注意: P0口做输出口时,内部数据经过锁存器送到P00---P07上。由于上 管始终截止,而当下管也截止时,P00—P07被架空,没有标准的高电平, 所以P0口作输出口使用时,必须外接上拉电阻。
读锁存
地址0控制线
0
DB0.0
0
写控制信号
DQ 锁存器
CP Q
1 转换开关
+5V
0
P0
读引脚
注意:P2口做输出口时,内部数据经过锁存器送到P20---P27上。 由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。
51单片机串口通信程序
51单片机串口通信程序51单片机是我国自主研发的一款微控制器,在国内广泛应用于各种电子设备中。
在很多应用场景中,需要通过串口进行通信,以实现数据传输。
本文将介绍51单片机串口通信程序的编写方法。
一、串口介绍串口是一种通信接口,用于在电子设备之间传输数据。
其主要特点是一条通信线路同时只能传输一位数据,因此称为串口。
串口和并口属于不同的通信接口标准。
串口的优点是具有通信距离远、传输速率快、可靠性高等优点,因此广泛应用于各种场合中。
串口有两种工作模式:同步模式和异步模式。
在实际应用中,异步串口通信更为常见。
二、异步串口通信原理在异步串口通信中,数据的传输是通过发送端和接收端的时钟信号不同步实现的。
在发送数据时,发送端会发出一个起始位,接下来是数据位,最后是一个或多个停止位。
在接收端,当检测到起始位时,开始接收数据。
根据通信协议,在接收完数据位后,接收端会判断是否正确,然后再结束本次通信。
1. 硬件连接在51单片机和电脑之间进行串口通信,需要用到串口转USB线。
将串口转USB线的TxD接口与51单片机的P3.1接口相连,RxD接口与P3.0接口相连。
此外,需要一个5V的电源供给51单片机。
2. 准备工作在编写程序之前,需要进行一些准备工作:(1)将P3口设为外部中断P3口的最低2位是外部中断的2个输入端,需要将它们设为中断输入。
EA=1;EX0=1;(2)设置波特率串口通信需要设置波特率。
常见的波特率有9600、19200、38400等。
对应的波特率常数为0xFD、0xFA、0xF4等。
TH1=0xFD;//波特率9600(3)使能串口中断在发送和接收数据时,会不断产生中断,需要将中断使能。
ES=1;//允许串口中断3. 编写程序(1)发送数据void SendData(unsigned char SendBuff[],unsigned int ULength){unsigned int i;for(i=0;i<ULength;i++){SBUF=SendBuff[i];//发送数据while(TI==0); //等待,直到发送完成TI=0;}}(2)接收数据(3)主函数TMOD|=0x20;//定时器1工作方式2TH1=0xFD;//波特率9600TR1=1;//打开定时器1SCON=0x50;//串口方式1,8位数据,无校验,1停止位EA=1;//开总中断ES=1;//开串口中断while(1){SendData(pSendData,4);//发送数据 RecvData(pRecvData,4);//接收数据if(pRecvData[0]=='K'){P0=0x01;//点亮LED}else{P0=0x00;//关闭LED}}}四、总结。
51单片机串口原理
51单片机串口原理
51单片机串口原理是指通过串行通信协议实现数据的发送与
接收的一种通信方式。
串口通信可以用于串联外部设备与单片机进行数据传输,如与计算机、传感器、模块等进行数据交互。
串口通信由发送端与接收端组成。
发送端将要发送的数据转换成串行数据流,通过串行引脚将数据发送到接收端。
接收端接收到串行数据流后,将其转换为并行数据并进行相应的处理。
51单片机的串口通信主要依靠两个寄存器:TBUF(发送缓冲器)和RBUF(接收缓冲器)。
发送端通过向TBUF写入数据
实现数据发送,接收端通过读取RBUF来获取接收到的数据。
串口通信的波特率是指每秒钟传送的位数,它是串口通信中十分重要的参数。
串口通信的波特率由波特发明,并以其名字命名。
常见的波特率有9600、38400、115200等。
串口通信使用的是异步串行通信,即数据以比特为单位依次传送。
在每个数据字节的前后,都有一个起始位和一个或多个停止位。
起始位用于通知接收端数据的到来,停止位用于标记数据的结束。
在51单片机中,通过设置相应的寄存器来配置串口的波特率、数据位数、停止位数和校验位。
通过配置串口通信的参数,可以实现不同设备之间的数据传输。
以上就是51单片机串口通信的基本原理,通过串口通信可以
实现单片机与外部设备之间的数据交互,为嵌入式系统的开发提供了方便和灵活性。
MCS51的片内接口及定时器计数器
参考程序如下:
ORG 0000H LJMP MAIN
ORG 0100H MAIN:
MOV TMOD,#09H MOV TH0,#00H MOV TL0,#00H BACK1: JB P3.2,BACK1 SETB TR0
BACK2: JNB P3.2,BACK2
BACK3: JB P3.2,BACK3 CLR TR0 MOV 70H,TL0 MOV 71H,TH0 SJMP $
P1=~K;} Return; }
5.2 MCS-51定时/计数器及其应用
51系列内部有2个16位的定时/计数器T0、T1
52系列内部有3个16位的定时/计数器T0、T1、T2
功能:
定时 计数
可编程 串行口的波特率发生器
定时/计数器的可编程特性:
⑴ 确定其工作方式是定时还是计数
⑵ 预置定时或计数初值
回目录 上页 下页
计数初值X的计算方法: 计数方式:
N= 2n-X(X即为要求计数的次数)
定时方式: (2n - X)×T = 定时值
∴ X = 2n -定时值 / T 其中T为机器周期,时钟的12分频, 若晶振为6MHz,则T = 2µs, 若晶振为12MHz,则T = 1µs
回目录 上页 下页
BACK:
MOV A,P0 ;读P0口开关状态,并送入累加器A
CPL A
;对累加器A求反
MOV P1,A
;从P1口输出
SJMP BACK ;循环执行
C51参考程序如下: Sfr P0=0x80; Sfr P1=0x90; Void main(){ Volatile unsigned char k; P0=0xff; P1=0; While(1) { K=P0;
proteus仿真51单片机串口双机通讯
51单片机的串口双机通讯一、什么是串口串口是串行发送数据的接口,是相对于并口来说的,是一个广泛的定义。
本期我们说的串口指的是指UART或是RS232。
二、什么是波特率波特率是指串行端口每秒内可以传输的波特位数。
这里所指的波特率,如标准9600不是每秒种可以传送9600个字节,而是指每秒可以传送9600个二进位。
一个字节需要8个二进位,如用串口模式1来传输,那么加上起始位和停止位,每个数据字节就要占用10个二进位。
9600bps用模式1传输时,每秒传输的字节数是9600÷10=960个字节,发送一个字节大概需要1ms时间。
三、51单片机串口相关寄存器1、SCON串口控制寄存器(1)SM0和SM1:方式选择寄存器SM0 SM1 工作方式功能波特率0 0 方式0 8位同步移位寄存器晶振频率/ 120 1 方式1 10位UART 可变1 0 方式2 11位UART 晶振频率/32或晶振频率/64 1 1 方式3 11位UART 可变多机通信是工作在方式2和方式3的,所以SM2主要用于方式2和方式3,多级通信时,SM2=1,当SM2=1时,只有当接收到的数据帧第9位(RB8)为1时,单片机才把前八位数据放入自己的SBUF中,否则,将丢弃数据帧。
当SM2=0时,不论RB8的值是什么,都会把串口收到的数据放到SBUF中。
(3)REN:允许接收位REN用于控制是否允许接收数据,REN=1时,允许接收数据,REN=0时,拒绝接收数据。
(4)TB8:要发送的第9位数据位在方式2和方式3中,TB8是要作为数据帧第9位被发送出去的,在多机通信中,可用于判断当前数据帧的数据是地址还是数据,TB8=0为数据,TB8=1为地址。
(5)RB8:接收到的第9位数据位当单片机已经接收一帧数据帧时,会把数据帧中的第9位放到RB8中。
方式0不使用RB8,在方式2和方式3中,RB8为接收到的数据帧的第9位数据位。
(6)TI:发送中断标志位方式0中,不用管他。
51单片机的基本结构及其主要组成部分
51单片机的基本结构及其主要组成部分51单片机是一种非常常见的嵌入式微控制器芯片,其被广泛应用于各种电子设备中。
其基本结构及其主要组成部分既是设计开发嵌入式系统的基础,也是学习51单片机的关键。
一、51单片机基本结构51单片机的基本结构主要包括存储器、CPU、输入输出接口以及时钟电路四个部分。
1. 存储器存储器是51单片机系统的一个重要组成部分。
其中包括的存储器主要有ROM、RAM和EEPROM,ROM用来存储程序代码,RAM用来存储变量和中间结果,EEPROM则可实现数据的存储。
2. CPUCPU是整个51单片机系统的核心部分,其主要功能是执行指令,负责程序的控制和各种数据的处理。
在51单片机中,CPU主要通过时钟信号不断地获取并执行程序指令。
3. 输入输出接口输入输出接口是将51单片机与外界连接的一个重要部分,也是实现嵌入式系统功能的关键。
其中包括并口、串口、SPI接口、I2C接口等等,用于处理外设的输入和输出信号。
4. 时钟电路51单片机的时钟电路用来提供时钟信号给CPU,并且用于控制各种外围设备和CPU执行指令的同步。
二、51单片机主要组成部分1. 程序存储器程序存储器是指ROM,其存储了单片机的程序代码。
在51单片机中,程序存储器可以分为两种类型:OTP(一次可编程)ROM和Flash ROM (可被反复擦写)。
在OTP ROM中,编程后的程序无法修改,而Flash ROM则可被反复擦写。
2. 数据存储器数据存储器是指RAM和EEPROM,用来存储程序中的变量和中间结果。
其中RAM用来存储临时数据,EEPROM则用于数据的存储,这些数据在掉电情况下也不会丢失。
3. 中央处理器中央处理器(CPU)是单片机最核心的部分,它负责执行程序中的指令并且控制其它硬件设备的工作。
4. 输入输出接口输入输出接口是将单片机与外部设备相互连接的途径。
在这些接口中,包括并口、串口、SPI、I2C等。
这些接口是为特定的设备开发的,包括LCD显示器、键盘及调制解调器等。
51单片机串口变并口汇编程序
51单片机串口变并口汇编程序51单片机是一种常用的微控制器,它具有高性能、低功耗、丰富的外设和广泛的应用领域。
其中,串口和并口是常见的通信接口方式。
本文将详细介绍51单片机串口变并口汇编程序的实现方法。
## 1. 串口和并口介绍### 1.1 串口串行通信接口(Serial Communication Interface),简称串口,是一种将数据以连续位的形式传输的通信方式。
它只需要两根线(发送线和接收线)即可实现数据传输,适用于远距离传输和多设备连接。
### 1.2 并口并行通信接口(Parallel Communication Interface),简称并口,是一种将数据以多个位同时传输的通信方式。
它需要多根线同时传输数据,适用于高速数据传输和短距离连接。
## 2. 串行通信与并行通信转换原理在51单片机中,通过软件编程可以实现串行通信与并行通信之间的转换。
下面是其基本原理:### 2.1 串行转并行在将串行数据转换为并行数据时,需要一个移位寄存器来存储接收到的串行数据,并通过时钟信号按位移出到并行总线上。
具体步骤如下:1. 初始化串口参数,包括波特率、数据位、停止位等。
2. 等待串口接收到数据。
3. 将接收到的串行数据写入移位寄存器。
4. 通过时钟信号依次将移位寄存器中的数据按位移出到并行总线上。
### 2.2 并行转串行在将并行数据转换为串行数据时,需要一个移位寄存器来存储要发送的并行数据,并通过时钟信号按位读取并发送出去。
具体步骤如下:1. 初始化串口参数,包括波特率、数据位、停止位等。
2. 将要发送的并行数据写入移位寄存器。
3. 通过时钟信号依次从移位寄存器中读取数据,并发送出去。
## 3. 51单片机串口变并口汇编程序实现下面是一个示例程序,演示了如何在51单片机中实现串口变并口的功能。
```assembly; 定义串口接收和发送函数USART_Rx: ; 串口接收函数MOV A, SBUF ; 读取SBUF中的接收数据RETUSART_Tx: ; 串口发送函数MOV SBUF, A ; 将A寄存器中的数据写入SBUFRET; 主程序入口MAIN:MOV TMOD, #20H ; 设置定时器1为工作模式2,用于串口通信 MOV TH1, #FDH ; 设置波特率为9600SETB TR1 ; 启动定时器1; 初始化串口参数MOV SCON, #50H ; 设置串口工作模式为8位数据位、1位停止位、可变波特率; 接收数据并转换为并行数据发送CALL USART_Rx ; 调用串口接收函数,将接收到的数据存入A寄存器MOV P0, A ; 将A寄存器中的数据写入P0,并行总线; 并行数据转换为串行数据发送MOV A, P1 ; 从P1并行总线读取要发送的数据,存入A寄存器CALL USART_Tx ; 调用串口发送函数,将A寄存器中的数据发送出去SJMP MAIN ; 无限循环END```上述汇编程序通过调用USART_Rx和USART_Tx函数实现了串口接收和发送功能。
51单片机并行口的操作
并行输入/输出端口
•MCS-51系列单片机的输入输出端口设计十分巧妙,熟悉了 这种端口的电路设计,我们不但可以熟练的使用它,而且 还可以作为其它电路的输入输出部分的设计参考。MCS- 51各个端口的设计有相同之处,但又因为各个端口功能不 同又有所差别,各端口的设计各具特点。 •80C51共有四个 8位的并行双向口,计有 32根输入/输出 (I/O)口线。各口的每一位均由锁存器、输出驱动器和输 入缓冲器所组成。因此,CPU数据从并行I/O接口输出时可 以得到锁存,输入时可以得到缓冲。由于它们在结构上的 一些差异,故各口的性质和功能也就有了差异。
使用“MOVX A,@Ri”及“MOVX @Ri ,A”类访问指令时, 高位地址通过程序设定,只利用 P1 、 P3 甚至 P2 口中的某几根口 线送高位地址,从而保留P2口的全部或部分口线作I/O口用。
D、P3口位结构
P3口既可用I/O口,又分别具有第二功能,但二者不 能混用,其第二功能如下表所示。
二、片外三总线结构
1、地址总线(AB)
由P2,P0提供16位地址 2、数据总线(DB) 由P0口提供8位数据 3、控制总线(CB)
由P3口和RST、EA、ALE、PS高8位地址总线。
C、P2口位结构
P2口
P2口是一个多功能的8位口,可以字节访问也可位访 问,其字节访问地址为A0H,位访问地址为A0H~A7H。 ⒈ P2口位结构和工作原理 多路开关的输入口有两个:一个是输出锁存器的输出 端Q;一个是地址寄存器(PC或DPTR)的高位输出端。 多路开关的输出经反相器反相后去控制输出 FET的 Q0。 多路开关的切换由内部控制信号控制。 输出锁存器的输出端是Q而不是Q,多路开关之后需接 反相器。
单片机原理及应用课件0451系列单片机的并行口结构和功能
读锁存器
内部 总线 1 写锁 存器
读引脚
2 1
DQ CK /Q
1
第二功能输出
Vcc
(WR,RD,TxD)
内部上拉电阻
16
反相器 3
1
引脚 P3.X
4
第二功能输入时,信号经缓冲器4 直接进入内总线。
读锁存器
内部 总线
1
写锁 存器
2
DQ CK /Q
1
此端自动=1
Vcc 内部上拉电阻
4 P2某几根线作地址使用时,剩下的线不能作I/O口线用。 5 P3口的某些口线作第二功能时,剩下的口线可以单独
作I/O口线使用。
●MCS-51系列单片机为总线结构,外部三总线如下: ◆ 数据总线:P0口; ◆ 地址总线:P2口(高8位)+P0口(低8位); ◆ 控制总线:∕EA、∕PSEN、∕WR、∕RD、ALE。
读锁存器
地址/数据 控制 =0
T1 Vcc 截
内部 总线 1
2
DQ
3
0 &0
止 引脚P0.X
2
T2 截
写锁 存器
CK /Q 0
MUX
0
止
1
读引脚 =1 (1)作输出口:内部总线数据写到P0.X引脚,加上拉电阻。 (2)作输入口:引脚作输入口,事先必须对它写“1”。
2、P0口作为地址∕数据总线使用 控制信号=1
1
0截
17
13
止 引脚 P3.X
4
读引脚
第二功能输入(RxD,
T0,T1,INT0,INT1)
P3口第二功能表
引脚
第二功能
P3.0
RxD: 串行口接收数据输入端
自制51单片机、AVR单片机 USB下载线
现在的笔记本包括台式机都渐渐地舍弃了并口、串口;很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法。
看来做个USB-ISP下载线是势在必行了。
在网上搜了下,主要有两种方案,一种是用FT245串口芯片加ATMEGA8的方案,另一种是只用ATMEGA8进行USB串口协议的软件模拟和ISP下载全部完成。
据说第一种稳定,但成本高,电路复杂,不便自制。
我们还是本着低成本,简单易做的原则进行。
就用单个M8来做。
好!废话少说,干活。
在网上搜了一下找了个BUG少,易于自制的图。
在制做前首先要搞清楚几点,第一,这个USB下载线本身就是一AVR单片机,在制做完成后首先也得通过其它并或串口ISP下载线给它下载程序,这样它才能工作。
第二先得大概了解一下这个AVR单机机M8的基本资料。
这样才能对电路有个了解,从而便于调试。
因此,你原先用的并口ISP下载线在这里还得起着关键的作用,可别扔掉啊!我图示一下这个过程先:接下来按上述图的要求准备元件。
元件准备好后,先得检测下质量,电阻的阻值、发光管的极性、电容是否有短路。
要测试下两个稳压管的稳压值是否正确。
最最重要的是先把USB接口用延长线接到PC上,然后用万用表测一下正极在哪,做个标记,这样就能搞清楚了D+、D-的位置,也不会接反电源了。
免得焊好后发现错了极性反复焊,焊盘很容易脱落,也避免接反烧了元件。
(我开始用的是USB公头接口,后来发现在板子上吃不上劲,稍一用力很可能会松脱。
所以换成母口了)电路图我整理了一下,因为有的元件不需要,有的为了方便检查,避免漏连了线。
焊接过程就没什么好说的了,不是PCB板,是洞洞板的,在事先大概做个布局(布局原则就是减短引长度,跳线尽量少。
好像我做的跳线并不少哦!)然后就按照上面的电路图焊接,完成后如下图,感觉是不是还不错?:再来张反面吧,有点惨不忍睹吧!在调试前也还得先弄清几个问题:第一、电源题:原先的并口下载线是靠S51板上来供电的,也就是说当你焊好你的USB-ISP板后给它装固件时,USB-ISP板得向原并口下载线供电,而固件装好后USB-ISP板就是靠PC的USB口向我们的USB-IS板供电了,而你以后的51实验板就不能向这个USB-ISP板供电了,否则PC和51实验板都向USB-ISP供电,那么电压不同就有可能烧坏PC口或元件的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串行通讯的异步模式
空闲 起始 D0 D1 D2 D3 D4 D5 D6 D7 休止 空闲
½T
T
• 移位时钟由收发双方各自产生,因此只需要1条信号线 • 双方约定数据格式:发送速率BPS=(数据位宽T)-1;数 据位数;数据顺序;起始位;休止位等。
异步通讯数据格式
波特率:数据传送速率BPS,即“位/每秒” 空闲:高电平,宽度不限 起始位:低电平,1位宽度 数据位数:通常是8位,还可设为:6位;7位和9 位等。 数据顺序:通常D0先发,也可以反过来D7先发。 数据逻辑:通常是正逻辑,也有使用负逻辑的 休止位:高电平,1~1.5位宽度 以上全部并含三个“通常”都是默认的,除非特殊 强调。
常用译码器
图中E;E1;E2;E3;G1;G2均为使能控制端,可以连接到地址线, 也可以连接固定电平。当这些引脚“有效”时才能译码,否则 芯片输出高电平。ABCD连接低位地址。
3-8译码器举例
高3位地址用于译码, 可得8条选择线,每线 可以选择(64/8=8) 8KB的地址范围: Y0选择0000H~1FFFH;
2.
UART电路可以集成在MCU中,也可以是独立芯片。例如常
见的独立芯片UART有:Ins 8250;Intel8251;MC6850; MC6852;Z80SIO等。它们通常需要外接波特率发生电路:振荡 器+分频器。
同步方式
同步字符 同步字符 数据长度
数据
数据
…………
校验
同步方式是一种连续传送(块/包)方式,字节间不需要起始 位,休止位,因而节约传送时间。 同步字符用于判断数据开始,现代通讯还包含了“传输速率” 的信息。 接受方利用“同步字符”校准锁相环电路从而产生自适应的接 收波特率。 这种方式具有异步通讯不需要移位时钟的特点,又有“块方式” 特点,因此传输效率高,自适应能力强。 数据格式通常称为“通讯协议”,不同公司开发的产品使用的 协议可能不同。例如同步帧/字符位数,代码等。
51 单片机的3总线结构
读写时序
P0 ALE 373出 P2
A0~A7 A8~A15 A0~A7 A8~A15 A0~A7 A8~A15 D0~D7 A0~A7 D0~D7 A0~A7 D0~D7 A0~A7
• 74LS373 是一种“透明”的8D锁存器,当LE引脚为 “高”时,输出=输入。低电平时锁定数据。 • Intel 8282 类似,但引脚不一样。 • 不能用其它锁存器代替。
Y4 0
0
1
0
0
0/1
0/1
XXX
2000H
练习
如图,采用8051做CPU,请给出RAM的地址,如果 将#30H放如RAM的第一个单元,如何编写程序
线选法
由于单片机通常不需要太多的扩展,往往只需 扩展2~3个芯片即可,因此没有必要使用译码 器。 直接使用P2.X连接到CS,称为“线选法” 线选法客观上会导致“地址重叠”,软件上需 要考虑不去访问重叠地址。译码法没有这个问 题。
地址推导举例
图中:A15,A14为限定状态,只有 它们全为0时,译码器才能译码, 因此在表中写0。
这与前面图差别在于:前图中 A15,A14参与了译码。
A15 A14 A13 A12 A11 A10 Y0 0 Y1 0 Y2 0 Y3 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0/1 0/1 0/1 0/1
(2)在扩展外部ROM时,用控制信号PSEN, 而在扩展外部RAM时,用控制信号RD和WR。 (3)在选用外接存储器时,应注意ALE信号 与锁存器选通信号的配合。
CS/CE的产生和使用
目的:将64K地址分配给多个芯片使用,各个芯片占用不同的地址 段。(51单片机I/O和存储器采用统一编址) 被扩展的芯片,无论是存储器还是接口都有相应引脚CS/CE ,其 意义是:1.选中此芯片,CPU要对其进行访问。2.它代表地址信息。 CS/CE一般为低电平有效。 地址分配方法(产生CS/CE的方法)有两种,经典方法是使用 “译码器”;单片机还可以使用“线选法”。 使用译码器译码,称为“译码法”。常用的译码器有:双二四译 码器74LS139,三八译码器74LS138,四十六译码器74LS154。 使用高位地址线直接作为CS/CE使用,称为“线选法”。
Y1选择2000H~3FFFH;
Y2选择4000H~5FFFH;
对于存储器RAM 6264或EPROM 2764;E2PROM 2864,地址A0~A12 可以直接连接到存储器的地址线,Yi连接到CS就行了。对于某些芯片, 它们不需要太多的地址线时,我们只需连接低位地址。例如8255,只 需连接A0和A1就行。
;读片内RAM一个单元 ;写入外部RAM一个单元 ;片外RAM地址指针加1 ;片内RAM地址指针加1 ;循环计数器减1,不等于0,转移 ; r0为循环计数器 ;DPTR为片外RAM地址指针 ;40H为和数的存放单元
;读片外RAM一个单元到a中 ;寄存到b中 ; ;求和
ROM的扩展
10.2 串行通讯与并行通讯特点
串行通讯方式的
单工、双工、半双工
TXD TXD RXD TXD RXD TXD RXD
RXD
TXD RXD
TXD
RXD
串行通讯的同步模式(位同步)
串行数据
同步时钟
写入并行数据
D Q 同步时钟
CK
读出并行数据
D Q
CK
D Q
CK
D Q SDATA
CK
D Q
CK
D Q
CK
SCLK
• 特点:需要两条信号线:SDATA,SCLK
串行通讯基本入门知识
同步方式:这里仅指“位同步”方式 异步方式:指约定波特率方式,传送1字节8位 数据需要10位以上宽度。(每字节前面有“起 始位”,后面有“休止位”。 异步方式有一些“标准”需要学习,他们主要 有:RS-232C;RS-422;RS-423;RS-485, 这些主要指“驱动方式” 通常讲解时,默认使用TTL电平。
ReaWri: mov a,@r0 movx @dptr,a inc dptr inc r0 djnz r2,ReaWri mov r0,#10h mov dptr,#0 mov 40h,#0 addAga: movx a,@dptr MOV B,A MOV A,40H Add a,B
RAM 的扩展
地址 控制时序 编程
RAM 的扩展
根据前面的电路原理图,编写数据传送程序,内部RAM30H~3FH单元置 初值00H~0FH,然后传送到外部RAM(6264)的ห้องสมุดไป่ตู้000H~000FH单元中, 再将0000H~000FH中内容求和送到P1口显示。
Org 0000h Mov r0,#10h Mov a,#0 Mov r1,#30h WriAga: mov @r1,a inc a inc r1 djnz r0,WriAga mov dptr,#0 mov r2,#10h mov r0,#30h ; r0为循环计数器 ; ; r1为片内RAM地址指针 ;写片内RAM一个单元 ;地址指针加1 ;循环计数器减1,不等于0,转移 ;DPTR为片外RAM地址指针 ;r2为循环计数器 ; r0为片内RAM地址指针
UART
1.
UART电路模块具有:
能够对发送数据自动添加休止位,起始位,按照“异步方式”发 送数据 能够判定起始位,休止位,按照“异步方式”接收数据 这样的电路模块称为“通用异步收发器”——UART( Universal Asynchronous Reseiver and Transmitter) 可以兼顾同步通讯的UART又称为USART(Universal Synchronous Asynchronous Reseiver and Transmitter)
51单片机接口
串行接口
串行通讯与并行通讯
发送方 数据准备好 数据D0~D7 接收方
8条数据线
数据收到
甲方 发送数据 接收数据
上图:并行单向通讯 下图:串行双向通讯
乙方 接收数据 发送数据
10.1 接口/存储器的扩展
并口应用中已经介绍了地址/数据总线的扩展,本节举例应用要点。 数据线D0~D7(P0口AD0~AD7),8位 地址线A0~A15(P0-74LS373=A0~A7,P2=A8~A15) 扩展电路可以是存储器,也可以是接口芯片。 存储器: 6116(2K),6264(8K),62256(32K),2716(2K),2764(8K),27256(32K)… … 接口:8255,8253,8279,8259,8251…以及 ADC0809,0804,DAC0832,AD75176…… 所有这类芯片都有:CS/CE,WR/RD(OE)以及数据/线地址线。地址 线的多少主要看芯片内部寄存器/存储器数量多少而定。 CS/CE引脚称为“片选:Chip Select”或者“芯片使能:Chip Enable”,CPU将其用于选中芯片以确定访问对象,它通常代表一个地 址范围,由“地址译码器”提供。
A9 0/1 0/1 0/1 0/1
其它 XXX XXX XXX XXX
起始地址 0000H 0800H 1000H 1800H
Y4 0
0
1
0
0
0/1
0/1
XXX
2000H
地址推导举例
图中:A15,A14为限定状态,只有 它们全为0时,译码器才能译码, 因此在表中写0。