文档库 最新最全的文档下载
当前位置:文档库 › (整理)51单片机的基本端口操作.

(整理)51单片机的基本端口操作.

(整理)51单片机的基本端口操作.
(整理)51单片机的基本端口操作.

第一章51单片机的基本端口操作

主要对单片机最简系统在实际应用中的使用方法,从简单到复杂地实现单片机最简系统的基本功能。

“点亮最简单的单片机系统”从单片机原理上介绍单片机的基本组成和最简单系统的典型电路,以及有关单片机C51编程方法和例程。

“更加明亮的小灯”从功能上介绍如何使LED发光稳定,从原理上介绍单片机I/O口的电气特性和使用方法。

“定时亮灭的小灯”介绍如何使LED灯定时亮、灭,从单片机原理上介绍定时器的使用和编程方法。

“小灯亮灭的人工控制”从功能上介绍如何通过按键控制LED灯的亮灭,从单片机原理上介绍单片机中断的使用和编程方法。

先复习下Keil 51的操作。

1.1点亮最简单的单片机系统

常用MCS-51系列单片机引脚功能说明

引脚定义引脚功能功能说明

Vcc +5V电源电源电压

Vss 地电路接地端

P0.0-P0.7 通道0 8位漏极开路的双向I/O通道

P1.0-P1.7 通道1 8位拟双向I/O通道

P2.0-P2.7 通道2 8位拟双向I/O通道

P3.0 RXD 串行输入口

P3.1 TXD 串行输出口

P3.2 INT0 外部中断0输入口

P3.3 INT1 外部中断1输入口

P3.4 T0 定时器/计数器0外部时间脉冲

输入端

P3.5 T1 定时器/计数器1外部时间脉冲

输入端

P3.6 WR 外部数据存储器写脉冲

P3.7 RD 外部数据存储器读脉冲

RST/VPD 复位输入信号该引脚上有2个机器周期的高电

平可以实现复位操作,在掉电情

况下将只给片内RAM供电

ALE/PRO G 地址锁存有效

信号

主要作用是提供一个适当的定

时信号

PSEN 程序选通有效

信号低电平时,指令寄存器的内容读到数据总线上

EA/Vpp 片选使能当保持TTL高电平时,8051执

行内部ROM的指令;当使TTL

为低电平时,从外部程序存储器

取出所有指令

XTAL1 晶振输入端 内部振荡器外接晶振的一个输入端

XTAL2 晶振输入端 内部振荡器外接晶振的另一个输入端

提问:什么是单片机系统、

提问:单片机中晶振有什么作用?

回答:单片机访问一次存储器的时间,称之为一个及其周期,是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHz 晶振,它的时钟周期是1/12us ,它的一个机器周期是12X (1/12us

,也就是1us 。

若是12MHz 的晶振,当单片机中定时/计数器的数值加1时,实际经过的时间就是1us 。 提示:晶振电路,复位电路

单片机

输入控制

输出显示

晶振、复位电路

外围功能器件

基本电路图:

发光二极管导通压降通常为1.7V-1.9V;

为什么要接电阻?

电路原理及器件选择?

89C51:单片机,控制发光二极管亮灭

OSC:晶振,在本例中选择12MHz的立式晶振

C3,C2:晶振电路的起振电容,容值为22pF

L1:发光二极管

R1:限流电阻,阻值为1k欧

地址分配和连接?

P1.0:与发光二极管电路相连,控制LED发光二极管阴极的电平高低

RESET:复位引脚

X1,X2:单片机的晶振引脚

程序设计:

延时程序:我们先不使用单片机的定时器,而是直接采用软件的延时程序定时控制发光二极管的亮灭。在12M晶振时,一个指令周期为1us,那么1M次就是1s。

程序代码:

#include

sbit gate=P1^0;//位定义

void main(void)

{

unsigned int i,j;

while(1)

{

for(i=1000;i>0;i--) //双重循环,延时约1s

for(j=1000;j>0;j--);

gate=!gate; //对P10取反,控制小灯

}

}

补充:结合第五代开发板电路图可以看到…

1.2更加明亮的小灯

外加与非门做驱动电路,增大电流,当然也有相应的电子驱动芯片。

1.3定时亮灭的小灯

下面我们进入单片机最重要的内容之一,定时和中断。

1.什么是单片机的定时器?

MSC-51单片机一般有两个内部的16位定时器/计数器,分别成为T0和T1.分别有两个8位的RAM单元组成,即每个计数器都是16位的计数器,最大计数量为2的16次方等于65536.

而定时和计数的关系是什么呢?找个同学告诉我吧。定时器每完成一个时间的定时,计数器就加1.

2.一定要计满65536个数吗?

3.如何使用MCS-51单片机的定时器呢?

定时器有两个特定的寄存器TMOD和TCON,就象定时器的操作界面。

首先介绍定时器/计数器的方式寄存器TMOD。

TMOD的控制字

TMOD .7 TMOD

.6

TMOD

.5

TMOD

.4

TMOD

.3

TMOD

.2

TMOD

.1

TMOD

.0

GAT E

C/T M1 M0 GAT

E

C/T M1 M0

可以看到,高四位和第四位分别代表两个定时器/计数器,所以我们可以以TMOD第四位来说明各位的定义与功能。

GATE:分为两种情况,GATE=0时,定时器的起停和INT1无关,在这种情况下,定时器的起停只取决与TR0.GATE=1时,在此种情况下定时器/计数器的开关不仅要由TR0来控制,而且还要受到INT1引脚的控制,只有TR1为1时,且INT1引脚也是高电平,定时器才能开始工作。

C/T:定时/计数器功能选择。如果C/T为0就做定时器,如果C/T为1就做计数器。当然只能二选一。

M1,M0:用M1,M0来控制定时器/计数器4种工作方式的选择。

工作方式0:M1=0,M0=0.13位定时.计数方式。

它由TL(1/0)的低五位和TH(0/1)的8位构成13位的计数器,此时TL(1/0) 的高3位未用。

工作方式1:M1=0,M0=1.是16位定时/计数方式,其他特性与工作方式0相同。

工作方式2:M1=1,M0=0.自动重装初值的8位定时/计数器。初值放在T(0/1)的高8位。在工作方式2,只有低8位参与计算,而高8位不参与计算,用作预置数存放,技术范围256。每当计数溢出,就会打开T(0/1)的高、低8位之间的开关,计预置数进入低8位。这是由硬件自动完成的。通常这种方式用于波特率发生器(我们将在串行接口中讲解)

工作方式3:M1=1,M0=1.这种工作方式下,定时/计数器被拆成2个独立的定时/计数器来用。其中,TL0可以构成8位的定时器或计数器的工作方式,儿TH0则只能作为定时器来用。只有在T1以工作方式2运行时,才让T0以工作方式3运行。

然后,我们介绍控制寄存器TCON

TCON控制寄存器

TCON .7 TCON

.6

TCON

.5

TCON

.4

TCON

.3

TCON

.2

TCON

.1

TCON

.0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

TR0: T0的运行控制位。启动定时器T0没有专门的指令,而是通过TR0进行控制。当GATE=0时,T0

的运行只取决于TR0的0和1;当门控位GATE=1时,

仅当TR0=1,并且外中断0引脚上的输入值为高电平

时,T0才开始计数,这两个条件缺一不可

TF0: T0的溢出和中断申请标志位。当T0溢出时,硬件置位TF0,表示提出了中断申请。该标志位可以

通过软件查询,也可以用软件清零和置位,在单片机响

应中断申请后,硬件自动清零。

TR1:

TF1:

接下来我们来看一个典型的定时器程序。

要求:定时10ms,P1.0反相。

//定义头文件和位定义

#include

#include

sbit P00=P0^0;

sbit P13=P1^3;

void main(void)

{

//初始化端口

P0=0xFF;

P13=0;

//初始化定时器

TMOD=0x01;

TH0=0xD8;

TL0=0xF0;

//启动定时器,开中断

TR0=1;

ET0=1;

EA=1;

//等待循环

while(1);

}

//定时器0中断服务子程序

void timer0_ISR(void) interrupt 1 using 1 {

//定时器初始重载

TH0=0xD8;

TL0=0xF0;

//操作

P00=!P00;

}

到这里,大家肯定就会有疑惑,什么叫做中断服务子程序,什么又叫做中断。我们稍后解释。

这里需要提醒大家的是单片机定时/计数器各种工作方式下的最大计数量。

工作方式0:13位,2的13次方等于8192次;

工作方式1:16位,2的16次方等于65536次;

工作方式2和3:都是8位的,2的8次方等于256次

那么就出现了一个问题,如果我想定时1s的话,该怎么做呢?大家思考一下,然后我请个同学来回答。

下面我们一起来看看如何实现1s的定时亮灭。

#include

#include

#define unit unsigned int

#define uchar unsigned char

sbit P00=P0^0;

sbit P13=P1^3;

uint overflow_count=0;

void main(void)

{

P0=0xFF;

P13=0;

TMOD=0x01;

TH0=0xD8;

TL0=0xF0;

TR0=1;

ET0=1;

EA=1;

while(1)

{

If(overflow_count==100)

{ P00=!P00;

Overflow_count=0;

};

}

void timer0_ISR(void) interrupt 1 using 1

{

TH0=0xD8;

TL0=0xF0;

Overflow_count++;

}

完成了小灯定时亮灭,我们就基本学会了如何使用单片机定时器/计数器的使用方法。下面,就让我们来看看前面留下的

问题----“中断”。

定义:中断属于一种对事件的实时处理过程,中断源可能随时停止CPU当前的工作,转而去处理中断服务程序,待中断服务程序完成后,再返回原来工作的断点处,继续原来的工作。

再者,我们需要知道,单片机内部有多个中断,分别是定时/计数器0中断----T0中断

定时/计数器1中断----T1中断

外中断0----INT0中断

外中断1----INT1中断

串口中断----串口中断

那么,当不同的中断同时发出终端申请,自然就会有一个中断优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已经产生而未结束,又有一个中断产生的情况。

最后,就是中断的响应过程。具体来说可以分为以下几个步骤。

保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈;

寻找中断入口,根据5个不同的中断源所产生的中断,查找5个不同的入口地址;

执行中断服务程序,用中断服务程序处理需要改变的

变量或者事件;

中断返回,执行完中断服务程序后,从中断断点处返回主程序,继续执行主程序。

上面分什么是中断,中断优先级,中断的响应三个部分简单介绍了中断,下面我们来看看单片机中断系统有何作用。简单的说,单片机在自动控制中所起到的作用就两个,一个是定时/计数,另一个就是中断的使用。中断的作用如下:

第一、实现高速CPU和低速外设之间的配合,利用中断方式进行I/O口操作,在宏观上可以看成CPU和外设的并行工作;

第二、可以实现实时控制。实时处理是控制系统对单片机提出的要求,各个设备可以随时向CPU发出中断申请,而CPU也必须做出快速响应和及时处理。

第三、实现故障的紧急处理。当外设发生故障时,可以利用中断系统请求CPU及时处理这些故障。

第四、便于人机联系。操作人员可以利用键盘等实现中断,完成人工介入。

接下来我们学习中断的使用!

中断系统主要包括5个中断请求源和4个控制寄存器IE,IP,TCON和SCON来控制中断申请,中断开关和中断

优先级。

1.中断方式和标志位TCON

TCON的低四位用于外部中断的控制,高4位用于T0,T1的控制。

TCON中的控制字

TCON .7 TCON

.6

TCON

.5

TCON

.4

TCON

.3

TCON

.2

TCON

.1

TCON

.0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

外部中断请求源

IT0: INT0触发方式控制位,可由软件进行置位和复位。

IT0=0,INT0为低电平触发方式;IT0=1,INT0为负跳

变触发方式。

IE0: INT0中断请求标志位。当有外部中断的请求时,这位就会置1;在CPU响应中断后,IE0置0;

IT1:

IE1:

2.中断允许寄存器IE

中断允许寄存器IE

IE.7 IE.6IE.5IE.4IE.3IE.2IE.1IE.0

EA X X ES ET1 EX1 ET0 EX0

其中:

EA:总开关,如果它等于0,则所有中断都不允许

ES:串行口中断允许

ET1:定时器1中断允许

EX1:外中断1中断允许

ET0:定时器0中断允许

EX0:外中断0中断允许

5个中断的自然优先级为:

外中断0----INT0中断----EX0

定时器0----T0中断----ET0

外中断1----INT1中断----EX1

定时器1----T1中断----ET1

串口中断----串口中断----ES

中断优先级寄存器

- - - IP.4 IP.3 IP.2 IP.1 IP.0 EA X X PS PT1 PX1 PT0 PX0

其中某位为1,那么就为高优先级。

了解了中断的控制,最后我们回到开始程序中的中断服务子程序。函数格式为

返回值函数名称(【参数】)【模式】【重入】interrupt n 【using n】

其中interrupt n对应的是中断源的编号,而using n 决定了使用寄存器的组号。而51系统中有四个寄存器组,取决与PSW的两位RS0和RS1的设置。

为了方便大家理解,我们给出不同中断服务程序的C51写法如下:

外中断INT0

void intsvr0(void) interrupt 0 using 1

定时/计数器T0

void timer0(void) interrupt 1 using 1

外中断INT1

void intsvr1(void) interrupt 2 using 1

定时/计数器T1

void timer1(void) interrupt 3 using 1

串口中断

void serial0(void) interrupt 4 using 1

基于51单片机的步进电机控制-设计报告(说明书)及源程序

南京XX大学 指导老师:张X 课程设计基于51单片机的步进电机控制 机械电子工程学院 测控技术与仪器 XXXXX Xxx 2012年1年4日

步进电机控制系统 [摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启 动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 关键字:步进电机、数码管、51单片机、ULN2803 一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

MCS-51指令详解

MCS-51指令详解 说明:为了使MCS-51单片机初学者快速入门,迅速掌握单片机指令含意、操作码、操作数及;对应地址,汇编语言怎样编写等,现按指令操作码按顺序编写,可对照本公司编写的<>一书第145页指令手册查看,更详细资料请阅第四章 MCS-51指令系统" 及第124页指令系统摘要。并在仿真器上装入;JJM.HEX文件,并对有关单元置数,用单步(F8)验证其正确性及其运行结果。 ORG 0000H NOP ;空操作指令 AJMP L0003 ;绝对转移指令 L0003: LJMP L0006 ;长调用指令

L0006: RR A ;累加器A内容右移(先置A为88H) INC A ; 累加器A 内容加1 INC 01H ;直接地址(字节01H)内容加1 INC @R0 ; R0的内容(为地址) 的内容即间接RAM加1 ;(设R0=02H,02H=03H,单步执行后02H=04H) INC @R1 ; R1的内容(为地址) 的内容即间接RAM加1 ;(设R1=02H,02H=03H,单步执行后02H=04H) INC R0 ; R0的内容加1 (设R0为00H,单步执行后查R0内容为多少) INC R1 ; R1的内容加1(设R1为01H,单步执行后查R1内容为多少)

INC R2 ; R2的内容加1 (设R2为02H,单步执行后查R2内容为多少) INC R3 ; R3的内容加1(设R3为03H,单步执行后查R3内容为多少) INC R4 ; R4的内容加1(设R4为04H,单步执行后查R4内容为多少) INC R5 ; R5的内容加1(设R5为05H,单步执行后查R5内容为多少) INC R6 ; R6的内容加1(设R6为06H,单步执行后查R6内容为多少) INC R7 ; R7的内容加1(设R7为07H,单步执行后查R7内容为多少) JBC 20H,L0017; 如果位(如20H,即24H的0位)为1,则转移并清0该位L0017: ACALL S0019 ;绝对调用 S0019: LCALL S001C ;长调用

51单片机各引脚及端口详解

51单片机各引脚及端口详解 51单片机引脚功能: MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图: l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。 P0口有三个功能: 1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口) 2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)

3、不扩展时,可做一般的I/O使用,但部无上拉电阻,作为输入或输出时应在外部接上拉电阻。 P1口只做I/O口使用:其部有上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其部有上拉电阻; P3口有两个功能: 除了作为I/O使用外(其部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/Vpp) 接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方 式由第9脚(即RST/VPD)引入,以保护部RAM中的信息不会丢失。 在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输 入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。 ALE 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。参见图2(8051扩展2KB EEPROM电路,在图中ALE与4LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址, 即P0口输出。 由于ALE是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE 脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用。

基于51单片机的流水灯设计说明

基于51单片机的流水灯设计 一.基本功能 利用AT89c51作为主控器组成一个LED流水灯系统,实现8个LED 灯的左、右循环显示。 二.硬件设计 图1.总设计图

1.单片机最小系统 1.1选用AT89C51的引脚功能 图2. AT89C51 XTAL1:单芯片系统时钟的反向放大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。 RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得部特殊功能寄存器容均被设成已知状态。 P3:端口3是具有部提升电路的双向I/O端口,通过控制各个端口的高低电平了实现LED流水灯的控制。

1.2复位电路 如图所示,当按下按键时,就能完成整个系统的复位,使得程序从新运行。 图3.复位电路 1.3时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。 在AT89C51芯片部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用12MHz的石英晶体。

图4.时钟电路 2.流水灯部分 图5.流水灯电路 三.软件设计 3.1编程语言及编程软件的选择 本设计选择C语言作为编程语言。C语言虽然执行效率没有汇编语言

51单片机基础知识及期末复习

51单片机简答题部分(经典) 1、什么叫堆栈? 答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。 2、进位和溢出? 答:两数运算的结果若没有超出字长的表示范围,则由此产生的进位是自然进位;若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。 3、在单片机中,片内ROM的配置有几种形式?各有什么特点? 答:单片机片内程序存储器的配置形式主要有以下几种形式:(1)掩膜(Msak)ROM型单片机:内部具有工厂掩膜编程的ROM,ROM中的程序只能由单片机制造厂家用掩膜工艺固 化,用户不能修改ROM中的程序。掩膜ROM单片机适合于 大批量生产的产品。用户可委托芯片生产厂家采用掩膜方法 将程序制作在芯片的ROM。 (2)EPROM型单片机:内部具有紫外线可擦除电可编程的只读存储器,用户可以自行将程序写入到芯片内部的EPROM 中,也可以将EPROM中的信息全部擦除。擦去信息的芯片 还可以再次写入新的程序,允许反复改写。 (3)无ROM型单片机:内部没有程序存储器,它必须连接程序存储器才能组成完整的应用系统。 无ROM型单片机价格低廉,用户可根据程序的大小来选择外接 程序存储器的容量。这种单片机扩展灵活,但系统结构较复 杂。 (4)E2ROM型单片机:内部具有电可擦除叫可编程的程序存储器,使用更为方便。该类型目前比较常用 (5)OTP(One Time Programmable)ROM单片机:内部具有一次可编程的程序存储器,用户可以在编程器上将程序写入片内程 序存储器中,程序写入后不能再改写。这种芯片的价格也较 低。 4、什么是单片机的机器周期、状态周期、振荡周期和指令周期?它们之间是什么关系? 答:某条指令的执行周期由若干个机器周期(简称M周期)构成,一个机器周期包含6个状态周期(又称时钟周期,简称S周期),而一个状态周期又包含两个振荡周期(P1和P2,简称P周期)。也就是说,指令执行周期有长有短,但一个机器周期恒等于6个状态周期或12个振荡周

单片机说明

第一章 LAB2000单片机仿真系统的使用 1.1 单片机仿真系统的介绍 1.1.1 概述 本仿真实验系统可实现MCS51/MCS196单片机原理与接口的一系列实验,并在硬件上预留了自主开发实验的空间。该实验系统对基本实验仅需少量连线就可进行,以减轻学生的工作量,同时也提供了一些需较多连线的扩展性实验以进一步锻炼学员的动手能力(详见第2部分)。此外,它还为学生们提供了强大的软硬件调试手段。本仿真实验系统由板上仿真器、实验仪、伟福仿真软件、开关电源构成。 1.仿真器系统构成 本仿真实验系统具有三种使用方法: (1)无系统机,仅用实验仪的板上仿真器进行仿真和实验。 (2)有系统机,用系统机上的WINDOWS/DOS软件驱动板上仿真器进行仿真和实验。 (3)有系统机、用外接仿真器进行仿真和实验。 (4)无实验仪、无仿真器,仅在系统机上采用软件模拟方式进行仿真。 2.实验系统自带键盘和显示器,自带系统监控程序。如果没有系统机也照样进行各种学习和实验。 3.配备有DOS,Windows两套PC机系统软件,在有系统机的情况下,通过外接仿真器实现64K全空间的硬件断点和仿真。 4.PC机和系统机软件具有全集成化仿真环境,中、英文两种界面,软件仿真与硬件仿真两种模式,软件仿真可以在无仿真仪的情况下进行。 5.其中实验实例及实验程序,可采用机器码、汇编、C等三种语言编写,以适应不同层次的学生的需求。 本实验仪可以方便灵活地构成各种实验方案,在有无系统机和实验仪的情况下,都能进行相应的编程实验,从而具有极为广泛的应用围,板上提供了基本的实验电路,减少繁琐的连接线过程,板上也提供了DIP40/28/24/20/16/14插孔和CPU的地址数据总线引出插孔,供学生自己扩展其它实验,培养实际动手能力,加强对实验电路的理解。实验程序采用多种语言适应不同层次的学生的需要。高级语言编写应用程序,是一种时代的需要,通过应用高级语言的编程和实验,可使学生掌握高级语言的编程方法,为今后进入社会实践打下坚实的基础。而汇编语言又能让学生了解机器深层的原理。 1.1.2 伟福实验系统的支持软件 1.板上单片机仿真部分(使用WAVE集成调试软件) (1)支持DOS、Windows'95/98双平台 (2)具有编辑、汇编、编译、调试和软件模拟等功能,所有操作均可通过窗口和菜单的 选择来完成。方便用户编写和调试软件、直观反映程序运行情况,提高软件开发效率。 (3)支持汇编语言、C、PLM高级语言源程序调试。 (4)可观察数组,记录等各种复杂变量。 (5)脱开实验系统单独进行软件模拟,这种方式尤其适用于软件实验 注意:(1)无论是集成电路的插拔、通讯电缆的连接、跳线器的设置还是实验线路的连接,都应确保在断电情况下进行,否则可能造成对设备的损坏。 (2)实验线路连接完成后,应仔细检查无误后再接通电源。 1.2 WAVE的开发环境

51系列单片机P0端口具体讲解

有关单片机P0口具体讲解 图1 (一)在我们讲解P0端口之前我们首先梳理一下各个端口有什 么不同之处: P0口有三个功能: 1、外部扩展存储器时,当做数据(Data)总线(如图1中的D0~D7为数据总线接口) 2、外部扩展存储器时,当作地址(Address)总线(如图1中的A0~A7为地址总线接口) 3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻(后面将详细介绍)。 P1口只做I/O口使用:其内部有上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用(如图1中的A8~A15为地址总线接口) 2、做一般I/O口使用,其内部有上拉电阻; P3口有两个功能: 除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。

图2(注:该图只是P0口的一位,也就是说P0口有8个相同的这样的结构) 图3

(二)由图2可以看出每个P0口都有这些元件: 一个锁存器,两个三态输入缓冲器和一个输出驱动电路组成 在访问外部存储器时,P0是一个真正的双向口,当P0输出地址/数据信息时,CPU内部法控制电平“1”来打开上面的与门,又使模拟开关MUX把地址/数据信息经过反相器和T1接通(我们称上面的场效应晶体管FET为T1,下面的场效应管FET为T2); 输出的地址/数据信息既通过与门去驱动T1,又通过反相器去驱动T2,是两个FET构成推拉输出电路; 1.当P0口作为外部扩展存储器的数据地址总线时: ●若地址数据信息为“0”,那么这个信号就使得T1截止,使T2导通(经过反反相器作 用使得T2接收到的信号为“1”,根据场效应晶体管的特性,T2导通),若T2导通,那么T2的上下两个N极就导通,而发射极(下面的N极)接地信号则为“0”,这样P0口就相当于接收到了“0”信号; ●若地址数据信息输入“1”,则该信号使T2截止,使T1导通,在T1导通情况下,T1 的上下N极导通,使得VCC与P0相同,从而输出高电平,即“1”信号; ●若从P0口输入信号,信号从引脚通过输入缓冲器进入内部总线; 2.当P0口作为一般I/O口使用时: ●CPU内部发布控制信号“0”,封锁与门,使得T1截止,同时使模拟开关MUX把锁存 器的非Q端与T2端的栅极接通; ●在P0口作为输出时,由于非Q端和T2的倒相作用,那么内部总线上的信息与到达P0 口上的信息是同相的,只要写脉冲加到锁存器的CL端,内部总线上的信息就会P0的引脚上; ●但是由于此时T2为漏极开路输出,所以要外接上拉电阻。 当P0作为输入时,由于该信号既加到T2又加到下面的三态缓冲器。现在我们假设我们刚刚输出的信号为“0”,也就是输入锁存器的数据为“0”,经过非Q达到T2使T2导通,这样P0引脚上的信号就被T2钳在“0”电平上,这样就使输入的“1”无法读入。那么我们就必须在输入信号前,应该先向锁存器Q端写“1”,非Q就为“0”,使T2截止,这就是所谓的“准双向口”的解释。但是在访问片外存储器时,CPU会自动向锁存器Q写入“1”,所以对用户而言P0口作为数据/地址总线时,是一个真正的双向口。

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

51单片机教程:单片机逻辑与或异或指令详解

51单片机教程:单片机逻辑与或异或指令详解 ANL A,Rn ;A 与Rn 中的值按位’与’,结果送入A 中 ANL A,direct;A 与direct 中的值按位’与’,结果送入A 中 ANL A,@Ri;A 与间址寻址单元@Ri 中的值按位’与’,结果送入A 中 ANL A,#data;A 与立即数data 按位’与’,结果送入A 中 ANL direct,A;direct 中值与A 中的值按位’与’,结果送入direct 中 ANL direct,#data;direct 中的值与立即数data 按位’与’,结果送入direct 中。这几条指令的关键是知道什么是逻辑与。这里的逻辑与是指按位与 例:71H 和56H 相与则将两数写成二进制形式: (71H)01110001 (56H)00100110 结果00100000 即20H,从上面的式子可以看出,两个参与运算的值只要其中有一个位上是0,则这位的结果就是0,两个同是1,结果才是1。 理解了逻辑与的运算规则,结果自然就出来了。看每条指令后面的注释 下面再举一些例子来看。 MOV A,#45H;(A)=45H MOV R1,#25H;(R1)=25H MOV 25H,#79H;(25H)=79H ANL A,@R1;45H 与79H 按位与,结果送入A 中为41H (A)=41H ANL 25H,#15H;25H 中的值(79H)与15H 相与结果为(25H)=11H)ANL 25H,A;25H 中的值(11H)与A 中的值(41H)相与,结果为(25H)=11H 在知道了逻辑与指令的功能后,逻辑或和逻辑异或的功能就很简单了。逻辑或是按位或,即有1 为1,全0 为0。例:

基于51单片机的温湿度采集系统设计毕业设计说明书

毕业设计说明书基于51单片机的温湿度采集系统设计

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

51单片机的基本端口操作

第一章51单片机的基本端口操作 主要对单片机最简系统在实际应用中的使用方法,从简单到复杂地实现单片机最简系统的基本功能。 “点亮最简单的单片机系统”从单片机原理上介绍单片机的基本组成和最简单系统的典型电路,以及有关单片机C51编程方法和例程。 “更加明亮的小灯”从功能上介绍如何使LED发光稳定,从原理上介绍单片机I/O口的电气特性和使用方法。 “定时亮灭的小灯”介绍如何使LED灯定时亮、灭,从单片机原理上介绍定时器的使用和编程方法。 “小灯亮灭的人工控制”从功能上介绍如何通过按键控制LED灯的亮灭,从单片机原理上介绍单片机中断的使用和编程方法。 先复习下Keil 51的操作。 1.1点亮最简单的单片机系统 常用MCS-51系列单片机引脚功能说明 引脚定义引脚功能功能说明 Vcc +5V电源电源电压 Vss 地电路接地端 P0.0-P0.7 通道0 8位漏极开路的双向I/O通道 P1.0-P1.7 通道1 8位拟双向I/O通道

P2.0-P2.7 通道2 8位拟双向I/O通道 P3.0 RXD 串行输入口 P3.1 TXD 串行输出口 P3.2 INT0 外部中断0输入口 P3.3 INT1 外部中断1输入口 P3.4 T0 定时器/计数器0外部时间脉冲 输入端 P3.5 T1 定时器/计数器1外部时间脉冲 输入端 P3.6 WR 外部数据存储器写脉冲 P3.7 RD 外部数据存储器读脉冲 RST/VPD 复位输入信号该引脚上有2个机器周期的高电 平可以实现复位操作,在掉电情 况下将只给片内RAM供电 ALE/PROG 地址锁存有效 信号主要作用是提供一个适当的定时信号 PSEN 程序选通有效 信号低电平时,指令寄存器的内容读到数据总线上 EA/Vpp 片选使能当保持TTL高电平时,8051执行 内部ROM的指令;当使TTL为低 电平时,从外部程序存储器取出 所有指令

51单片机开发板使用手册

STU_MAIN单片机开发板使用手册 第一章STU_MAIN 单片机开发板简介 (2) 1.1 单片机开发板概述 (2) 1.2 单片机开发板载资源介绍 (2) 1.3 STU_MAIN 单片机开发板接口说明 (4) 1.4 如何开始学习单片机 (5) 第二章软件使用方法 ......................... . (6) 2.1 KEIL 软件的使用方法 (6) 2.2 STC-ISP 软件的安装与使用 (13) 2.3 使用USB 口下载程序时设置步骤 (18) 第三章STU_MAIN 开发板例程详细介绍 (21) 3.1 准备工作 (21) 3.2 安装STC-ISP下载程序 (21) 3.3 闪烁灯 (22) 3.4 流水灯 (23) 3.5 单键识别 (25) 3.6 利用定时器和蜂鸣器唱歌 (28) 3.7 DS18B20 温度测量显示实验 (31) 3.8 LCD1602 字符液晶显示 (36) 3.9 串口通讯实验 (39) 3.10 基于DS1302的多功能数字钟实验 (41) 3.11 EEPROM X5045 实验 (47)

第一章STU_MAIN 单片机开发板简介 1.1 单片机开发板概述 STU_MAIN 单片机开发板是经过精心设计开发出的多功能MCS-51 单片 机开发平台。该开发板集常用的单片机外围资源、串口调试下载接口于一身,可以让您在最短的时间内,全面的掌握单片机编程技术。该开发板特别适合单片机初学者、电子及通信等专业的课程设计以及电子爱好者自学使用。 STU_MAIN 单片机开发板可作为单片机课程的配套设备,课程从最基本的预备知识开始讲起,非常详细的讲解KEIL 编译器的使用,包括软件仿真、测定时间、单步运行、全速运行、设置断点、调试、硬件仿真调试、变量观察等,整个过程全部用单片机的C 语言讲解,从C 语言的第一个主函数MAIN 讲起,一步步一条条讲解每一个语法、每条指令的意思,即使对单片机一巧不通,对C 语言一无所知,通过本课程的学习也可以让你轻松掌握MCS-51 单片机的C 语言编程。全新的讲课风格,跳过复杂的单片机内部结构知识,首先从单片机的应用讲起,一步步深入到内部结构,让学生彻底掌握其实际应用方法,把MCS-51单片机的所有应用、每个部分都讲解的非常清晰明了,授课教师在教室前面用电脑一条一条写程序,旁边用STU_MAIN 单片机开发板逐个实验的演示,给学生解释每条指令的意思及原理,通过一学期的学习让学生完全掌握单片机的C 语言编程及单片机外围电路设计的思想。以实践为主、学生现场写程序、直接下载到开发板观察现象。 1.2 单片机开发板载资源介绍 一. STU_MAIN单片机开发板(串口直接下载程序) 本开发板以STC 公司生产的STC90C54RD+ 单片机做核心控制芯片,它是 一款性价比非常高的单片机,它完全兼容ATMEL 公司的51/52系列单片机,除此之外它自身还有很多特点,如:无法解密、低功耗、高速、高可靠、强抗静电、强抗干扰等。 其次STC 公司的单片机内部资源比起ATMEL 公司的单片机来要丰富的多,它内部有1280 字节的SRAM、8-64K 字节的内部程序存储器、2-8K 字节的ISP 引导码、除P0-P3 口外还多P4 口(PLCC封装)、片内自带8路8位AD(AD 系列)、片内自带EEPROM、片内自带看门狗、双数据指针等。目前STC 公司的单片机在国内市场上的占有率与日俱增,有关STC 单片机更详细资料请查阅相关网站。 STU_MAIN单片机开发板可完全作为各种MCS-51单片机的开发板,用汇编语言或C 语言对其进行编程。当用STC 公司的单片机时,直接用后面介绍的串口线将开发板与计算机串口相连,按照STC 单片机下载操作教程便可下载程序,

51单片机的P0口工作原理详细讲解

51单片机的P0口工作原理详细讲解 一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到 P0.7的任何一位,即在P0口有8个与上图相同的电路组成。下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的部数据总线上。D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。大家看上图中的D 锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。多路开关:在51单片机中,当部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(部没有ROM)的单片机或者编写的程序超过了单片机部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。大家看上图,当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为‘地址/数据’总线使用的。输出驱动部份:从上图中我们已看出,P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。 前面我们已将P0口的各单元部件进行了一个详细的讲解,下面我们就来研究一下P0口做为I/O口及地址/数据总线使用时的具体工作过程。1、作为I/O端口使用时的工作原理P0口作为I/O端口使用时,多路开关的控制信号为0(低电平),看上图中的线线部份,多路开关的控制信号同时与与门的一个输入端是相接的,我们知道与门的逻辑特点是“全1出1,

最新51单片机的基本端口操作

51单片机的基本端口 操作

第一章51单片机的基本端口操作 主要对单片机最简系统在实际应用中的使用方法,从简单到复杂地实现单片机最简系统的基本功能。 “点亮最简单的单片机系统”从单片机原理上介绍单片机的基本组成和最简单系统的典型电路,以及有关单片机 C51编程方法和例程。 “更加明亮的小灯”从功能上介绍如何使LED发光稳定,从原理上介绍单片机I/O口的电气特性和使用方法。 “定时亮灭的小灯”介绍如何使LED灯定时亮、灭,从单片机原理上介绍定时器的使用和编程方法。 “小灯亮灭的人工控制”从功能上介绍如何通过按键控制LED灯的亮灭,从单片机原理上介绍单片机中断的使用和编程方法。 先复习下Keil 51的操作。 1.1点亮最简单的单片机系统 常用MCS-51系列单片机引脚功能说明

提问:什么是单片机系统、 提问:单片机中晶振有什么作用? 回答:单片机访问一次存储器的时间,称之为一个及其周期, 是一个时间基准。一个机器周期包括12 个时钟周期。如果一个单片机选择了12MHz 晶振,它的时钟周期是 1/12us ,它的一个机器周期是 12X (1/12us ),也就是 1us 。 若是12MHz 的晶振,当单片机中定时 /计数器的数值加 1时,实际经过的时间就是 1us 。 提示:晶振电路,复位电路

基本电路图: 发光二极管导通压降通常为1.7V-1.9V; 为什么要接电阻? 电路原理及器件选择? 89C51:单片机,控制发光二极管亮灭 OSC:晶振,在本例中选择12MHz的立式晶振C3,C2:晶振电路的起振电容,容值为22pF

L1:发光二极管 R1:限流电阻,阻值为1k欧 地址分配和连接? P1.0:与发光二极管电路相连,控制LED发光二极管阴极的电平高低 RESET:复位引脚 X1,X2:单片机的晶振引脚 程序设计: 延时程序:我们先不使用单片机的定时器,而是直接采用软件的延时程序定时控制发光二极管的亮灭。在12M晶振时,一个指令周期为1us,那么1M次就是1s。 程序代码: #include sbit gate=P1^0; //位定义 void main(void) { unsigned int i,j; while(1) { for(i=1000;i>0;i--) //双重循环,延时约1s

51单片机IO端口的四种输入输出模式

51单片机IO端口的四种输入输出模式(by wuleisly) 单片机I O口的使用对所有单片机玩家来说都是“家常便饭”,但是你真的了解I O 口吗?你真的能按你的需要配置I O口吗? 一、准双向口输出 准双向口输出类型可用作输出和输入功能而不需重新配置 口线输出状态。这是因为当口线 输出为1时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强, 可吸收相当大的电流。(准双向口有3个上拉晶体管适应不同的需要) 准双向口读外部状态前,要先锁存为…1?,才可读到外部正确的状态. 二、强推挽输出 推挽输出配置的下拉结构与开漏输出以及准双向口的下拉 结构相同,但当锁存器为1时提供持续的强上拉。推挽模式一般用于需要更大驱动电流的情况。 三、仅为输入(高阻) 输入口带有一个施密特触发输入以及一个干扰抑制电路。 四、开漏输出配置(若外加上拉电阻,也可读) 当口线锁存器为0时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到V c c。如果外部有上拉电阻,开漏的I/O口还可读外部状态,即此时被配置为开漏模式的I/O口还可作为输入I/O口。这种方式的下拉与准双向口相同。 开漏端口带有一个施密特触发输入以及一个干扰抑制电路。 关于I/O口应用注意事项: 1.有些是I/O口由低变高读外部状态时,读不对,实际没有损坏,软件处理一下即可。 因为1T的8051单片机速度太快了,软件执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,就有可能读不

对,正确的方法是在软件设置由低变高后加1到2个空操作指令延时,再读就对了. 有些实际没有损坏,加上拉电阻就OK了 有些是外围接的是NP N三极管,没有加上拉电阻,其实基极串多 大电阻,I/O口就应该上拉多大的电阻,或者将该I/O口设置为强 推挽输出. 2.驱动L E D发光二极管没有加限流电阻,建议加1K以上的限流电阻,至少也要加470欧姆以上 做行列矩阵按键扫描电路时,实际工作时没有加限流电阻,实际工作时可能出现2个I/O口均输出为低,并且在按键按下时,短接在一起,我们知道一个C MOS电路的2个输出脚不应该直接短接在一起,按键扫描电路中,此时一个口为了读另外一个口的状态,必须先置高才能读另外一个口的状态,而8051单?片机的弱上 拉口在由0变为1时,会有2时 钟的强推挽高输出电流输出到另外一个输出为低的I/O口,就有 可能造成I/O口损坏.建议在其中的一侧加1K限流电阻,或者在 软件处理上,不要出现按键两端的I/O口同时为低. 一种典型三极管控制电路: 如果用弱上拉控制,建议加上拉电阻R1(3.3K~10K),如果不加上拉电阻R1(3. 3K~10K), 建议R2的值在15K以上,或用强推挽输出。 典型发光二极管控制电路:

DL-51单片机开发板用户使用手册

STC89C52RC 动力DL-51Board○R User's Manual Preliminary

开发指南 Copyright?2010-2011Milk-Power Limited.All rights reserved 版本信息 本手册进行了以下更改。 芯达STM32用户手册修订记录 日期修订版本CR ID修改章节修改描述作者2011-10-12 1.00全部创建Milk-power 2011-10-26 1.10修改键盘程序Milk-power Milk-power 2011-11-08 1.20修改开发板外观 图片

版权声明 本手册版权归属https://www.wendangku.net/doc/f614669668.html,(以下简称“Milk-Power”)所有,并保留一切权力。非经Milk-Power同意(书面形式),任何单位或个人不得擅自摘录本手册部分或全部,违者我们将追究其法律责任。 敬告: 在售开发板的手册会经常更新,请在https://www.wendangku.net/doc/f614669668.html, 网站查看最近更新,并下载最新手册,不再另行通知。

目录 目录 (4) 4写在前面........................................................................................................................ ........................................................................................................................55第一章买到DL-51该如何下手 (6) 6第二章DL-51硬件资源.............................................................................................. ..............................................................................................772.1DL-51开发板硬件概述.. (7) 2.2DL-51开发板硬件资源清单 (8) 2.3DL-51开发板的特点 (9) 2.4DL-51开发板原理图说明 (10) 2.4.1电源电路 (10) 2.4.2系统时钟电路 (10) 2.4.3复位电路 (11) 2.4.4用户LED 电路 (11) 2.4.5数码管电路 (11) 2.4.6串口电路 (12) 2.4.7按键电路 (12) 2.4.8LCD 液晶接口电路 (13) 2.4.9外扩IO 接口电路 (14) 第三章DL-51单片机开发快速入门........................................................................ ........................................................................15153.1单片机开发流程简介 (15) 3.2简单的单片机开发举例 (17) 工作室简介 (18) 18

51单片机汇编语言教程:13课单片机逻辑与或异或指令详解

51单片机汇编语言教程:第13课-单片机逻辑与或异或指令详解

结果11111001 而所有的或指令,就是将与指仿中的ANL换成ORL,而异或指令则是将ANL换成XRL。即或指令: ORL A,Rn;A和Rn中的值按位'或',结果送入A中 ORL A,direct;A和与间址寻址单元@Ri中的值按位'或',结果送入A中 ORL A,#data;A和立direct中的值按位'或',结果送入A中 ORL A,@Ri;A和即数data按位'或',结果送入A中 ORL direct,A;direct中值和A中的值按位'或',结果送入direct中 ORL direct,#data;direct中的值和立即数data按位'或',结果送入direct中。 异或指令: XRL A,Rn;A和Rn中的值按位'异或',结果送入A中 XRL A,direct;A和direct中的值按位'异或',结果送入A中 XRL A,@Ri;A和间址寻址单元@Ri中的值按位'异或',结果送入A中 XRL A,#data;A和立即数data按位'异或',结果送入A中 XRL direct,A;direct中值和A中的值按位'异或',结果送入direct中 XRL direct,#data;direct中的值和立即数data按位'异或',结果送入direct中。 练习: MOV A,#24H MOV R0,#37H ORL A,R0 XRL A,#29H MOV35H,#10H ORL35H,#29H MOV R0,#35H ANL A,@R0 四、控制转移类指令 无条件转移类指令 短转移类指令 AJMP addr11 长转移类指令

相关文档
相关文档 最新文档