文档库 最新最全的文档下载
当前位置:文档库 › 51单片机管脚说明

51单片机管脚说明

51单片机管脚说明
51单片机管脚说明

51单片机管脚说明 (2007-06-26 15:46)

分类:单片机资料几学习心得

51单片机管脚说明

发表日期:2007-06-16 00:12:46 点击数:10

当我们拿到一块单片机芯片时,看到这么多的“大腿”,他们都有干什么用的?了解了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中的信息不会丢失.

(注:这些引脚的功能应用,除9脚的第二功能外,在“新动力2004版”学习套件中都有应用到.)

在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效.

ALE 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离.参见图2(8051扩展2KB EEPROM电路,在图中ALE与4LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出.

由于ALE是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用.

PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作.

1、内部ROM读取时,PSEN不动作;

2、外部ROM读取时,在每个机器周期会动作两次;

3、外部RAM读取时,两个PSEN脉冲被跳过不会输出;

4、外接ROM时,与ROM的OE脚相接.

参见图2—(8051扩展2KB EEPROM电路,在图中PSEN与扩展ROM的OE脚相接)

EA/VPP 访问和序存储器控制信号

1、接高电平时:

CPU读取内部程序存储器(ROM)

扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1FFFH(8052)时自动读取外部ROM.

2、接低电平时:CPU读取外部程序存储器(ROM).

3、8751烧写内部EPROM时,利用此脚输入21V的烧写电压.

RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作.

XTAL1和XTAL2 外接晶振引脚.当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号.

VCC:电源+5V输入

VSS:GND接地.

各端口工作原理讲解

并行端口

P0端口

总线I/O端口,双向,三态,数据地址分时复用,该端口除用于数据的输入/输出外,在8031单片机外接程序存储器时,还分时地输出/输入地址/指令.由Po端口输出的信号无锁存,输入的信息有读端口引脚和读端口锁存器之分.P0端口8位中的一位结构图见下图:

由上图可见,P0端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应管驱动电路构成.

在输出状态下,当切换开关MUX向下时,从内部总线来的数据经锁存器反相和场效应管T2反相,输出到端口引脚线上.此时,场效应管T1关断,因而这种输出方式应为外接上拉电阻的漏极开路式.当切换开关MUX向上时,一位地址/数据信号分时地输出到端口线上.此外,由T1、T2的通断组合,形成高电平、低电平与高阻浮动三态的输出.

在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外.例如,当从内部总线输出低电平后,锁存器Q=0,Q=1,场效应管T2开通,端口线呈低电平状态.此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号.又如,当从内部总线输出高电平后,锁存器Q=1,Q=0,场效应管T2截止.如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同.为此,8031单片机在对端口P0一P3的输入操作上,有如下约定:为此,8031单片机在对端口P0一P3的输入操作上,有如下约定:凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号.

读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上.下面是几条读--修改-写指令的例子.

这样安排的原因在于读-修改-写指令需要得到端口原输出的状态,修改后再输出,读锁存器而不是读引脚,可以避免因外部电路的原因而使原端口的状态被读错. P0端口是8031单片机的总线口,分时出现数据D7一D0、低8位地址A7一AO,以及三态,用来接口存储器、外部电路与外部设备.P0端口是使用最广泛的I/O 端口.

P1端口:

通用I/0端口,准双向静态口.输出的信息有锁存,输入有读引脚和读锁存器之分.P1端口的一位结构见下图. 由图可见,P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,并且输出的信息仅来自内部总线.由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口.

由下图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态.为此,在作引脚读入前,必须先对该端口写入l.

具有这种操作特点的输入/输出端口,称为准双向I/O口.8031单片机的P1、P2、P3都是准双向口.P0端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入l后再作读操作.

单片机复位后,各个端口已自动地被写入了1,此时,可直接作输入操作.如果在

应用端口的过程中,已向P1一P3端口线输出过0,则再要输入时,必须先写1后再读引脚,才能得到正确的信息.此外,随输入指令的不同,H端口也有读锁存器

与读引脚之分.

Pl端口是803l单片机中唯一仅有的单功能I/O端口,并且没有特定的专用功能,输出信号锁存在引脚上,故又称为通用静态口.

P2端口:

P2端口的一位结构见下图:

由图可见,P2端口在片内既有上拉电阻,又有切换开关MUX,所以P2端口在功能上兼有P0端口和P1端口的特点.这主要表现在输出功能上,当切换开关MUX向左时,从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;

当MUX向右时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口

引脚线上.

由于8031单片机必须外接程序存储器才能构成应用电路,而P2端口就是用来周期性地输出从外存中取指令的地址(高8位地址),因此,P2端口的切换开关MUX

总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址.

因此P2端口是动态的I/O端口.输出数据虽被锁存,但不是稳定地出现在端口线上.其实,这里输出的数据往往也是一种地址,只不过是外部RAM的高8位地址. 在输入功能方面,P2端口与P0和H端口相同,有读引脚和读锁存器之分,并且P2端口也是准双向口.

可见,P2端口的主要特点包括:

①不能输出静态的数据;

②自身输出外部程序存储器的高8位地址;

②执行MOVX指令时,还输出外部RAM的高位地址,故称P2端口为动态地址端口.

P3端口:

双功能静态I/O口P3端口的一位结构见下图.

由上图可见,P3端口和Pl端口的结构相似,区别仅在于P3端口的各端口线有两

种功能选择.当处于第一功能时,第二输出功能线为1,此时,内部总线信号经锁

存器和场效应管输入/输出,其作用与P1端口作用相同,也是静态准双向I/O端口.当处于第二功能时,锁存器输出1,通过第二输出功能线输出特定的内含信号,在

输入方面,即可以通过缓冲器读入引脚信号,还可以通过替代输入功能读入片内

的特定第二功能信号.由于输出信号锁存并且有双重功能,故P3端口为静态双功能端口.

P3口的特殊功能(即第二功能):

使P3端品各线处于第二功能的条件是:

1\串行I/O处于运行状态(RXD,TXD);

2\打开了处部中断(INT0,INT1);

3\定时器/计数器处于外部计数状态(T0,T1)

4\执行读写外部RAM的指令(RD,WR)

在应用中,如不设定P3端口各位的第二功能(WR,RD信叼的产生不用设置),则P3端口线自动处于第一功能状态,也就是静态I/O端口的工作状态.在更多的场合

是根据应用的需要,把几条端口线设置为第二功能,而另外几条端口线处于第一

功能运行状态.在这种情况下,不宜对P3端口作字节操作,需采用位操作的形式. 端口的负载能力和输入/输出操作:

P0端口能驱动8个LSTTL负载.如需增加负载能力,可在P0总线上增加总线驱动器.P1,P2,P3端口各能驱动4个LSTTL负载.

前已述及,由于P0-P3端口已映射成特殊功能寄存器中的P0一P3端口寄存器,

所以对这些端口寄存器的读/写就实现了信息从相应端口的输入/输出.例如: MOV A, P1 ;把Pl端口线上的信息输入到A

MoV P1, A ;把A的内容由P1端口输出

MOV P3, #0FFH ;使P3端口线各位置l

串行端口:

MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信.

1.串行端口的基本特点

8031单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任

一方式,以满足不同应用场合的需要.其中,方式0主要用于外接移位寄存器,以

扩展单片机的I/O电路;方式1多用于双机之间或与外设电路的通信;方式2,3

除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统.

串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等.

串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同.发送时,只写不读;接收时,只读不写.在一定条件下,

向阳UF写入数据就启动了发送过程;读SBUf就启动了接收过程.

串行通信的波特率可以程控设定.在不同工作方式中,由时钟振荡频率的分频值

或由定时器Tl的定时溢出时间确定,使用十分方便灵活.

2.串行端口的工作方式

①方式0

8位移位寄存器输入/输出方式.多用于外接移位寄存器以扩展I/O端口.波特率

固定为fosc/12.其中,fosc为时钟频率.

在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输出(从低位到高位);此时,TXD输出频率为fosc/12的同步移位脉冲.数据发送前,仅管不使用中断,中断标志TI还必须清零,8位数据发送完后,TI自动置1.如要再发送,必须用软件将TI清零.

串行端口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc/12的同步移位脉冲,使外部数据逐位移入RxD.当接收到8位数据(一帧)后,中断标志RI自动置.如果再接收,必须用软件先将RI清零.

串行方式0发送和接收的时序过程见下图.

②方式1

10位异步通信方式.其中,1个起始位(0),8个数据位(由低位到高位)和1个停止位(1).波特率由定时器T1的溢出率和SMOD位的状态确定.

一条写SBUF指令就可启动数据发送过程.在发送移位时钟(由波特率确定)的同步下,从TxD先送出起始位,然后是8位数据位,最后是停止位.这样的一帧10位数据发送完后,中断标志TI置位.

在允许接收的条件下(REN=1),当RXD出现由1到O的负跳变时,即被当成是串行发送来的一帧数据的起始位,从而启动一次接收过程.当8位数据接收完,并检测到高电乎停止位后,即把接收到的8位数据装入SBUF,置位RI,一帧数据的接收过程就完成了.

方式1的数据传送波特率可以编程设置,使用范围宽,其计算式为:

波特率=2SMOD/32×(定时器T1的溢出率)

其中,SMOD是控制寄存器PCON中的一位程控位,其取值有0和l两种状态.显然,当SMOD=0时,波特率=1/32(定时器Tl溢出率),而当SMOD=1时,波特率=

1/16(定时器T1溢出率).所谓定时器的溢出率,就是指定时器一秒钟内的溢出次数.波特率的算法,以及要求一定波特率时定时器定时初值的求法,后面将详细讨论. ·

串行方式1的发送和接收过程的时序见下图.

③方式2,3

11位异步通信方式.其中,1个起始位(0),8个数据位(由低位到高位),1个附加的第9位和1个停止住(1).方式2和方式3除波特率不同外,其它性能完全相同.方式2,3的发送、接收时序见下图.

由图可见,方式2和方式3与方式l的操作过程基本相同,主要差别在于方式2,3有第9位数据.

发送时,发送机的这第9位数据来自该机SCON中的TB8,而接收机将接收到的这第9位数据送入本机SCON中的RB8.这个第9位数据通常用作数据的奇偶检验位,或在多机通信中作为地址/数据的特征位.

方式2和方式3的波特率计算式如下:

方式2的波特率=2SMOD/64×fosc

方式3的波特率=2SMOD/32×定时器T1的溢出率

由此可见,在晶振时钟频率一定的条件下,方式2只有两种波特率,而方式3可通过编程设置成多种波特率,这正是这两种方式的差别所在.

3.串行端口的控制寄存器

串行端口共有2个控制寄存器SCON和PCON,用以设置串行端口的工作方式、接收/发送的运行状态、接收/发送数据的特征、波特率的大小,以及作为运行的中断标志等.

在这些引脚中,“新动力2004版”学习套件都有这些实验功能,并有相应的例程,配套的光盘中还有试验板的原理图.我在后面的章节中也会按照“新动力2004版”的实验功能一步一步的深入讲解下去.

基于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单片机数码管时钟程序

本人初学51,编写简单时钟程序。仅供参考学习 #include #define uint unsigned int #define uchar unsigned char Uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1 }; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0xef}; void delay(uint); unsigned long i,num,t=1; void main() { TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; while(1) { num=i/20;//i为秒位 if(i==1728000)//一天大概是这个秒吧,,,应该是,呵呵。就是世间到24时就归零。 i=0; //也可用下面这个部分来代替上面的。 /*if(i==20) { i=0; num++; if(num==5184000) num=0; }*/ //num=9; P2=7;//P2口为数码管控制端,我的是38译码器控制,就直接对其赋值来控制时,分,秒的显示; P0=table[i%100%10]; delay(t); P2=6; P0=table[i%100/10]; delay(t); P0=table_d[(num%60)%10]; P2=5; delay(t); P0=table[(num%60)/10]; P2=4;

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所示

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 脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用。

AT89C51单片机的基本结构和工作原理

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

51单片机-数码管

51单片机-数码管 共阴极是指所有发光二极管阴极连接在一起,这个共阴极可以用来做片选。 如图,这里有8个发光二极管,到底哪个亮需要进行片选。段选:8 段数码管 每一段的控制段叫段选位选:就是进行哪个8 段数码管亮的选择TX-1C 使用两 片锁存器74HC573 实现位选和段选这里的D0”7是连在单片机的I/O 口上,当 为高电平时,Q 与D 中的数据一致,遇到负跳变沿时Q 中的数据保持住,D 中 的数据即使变化也不会影响Q。MCUVersion2 使用的是74HC245 和38 译码器 74HC13874HC245 有一个缓冲和驱动的作用,这样可以使led 显示的更加稳定, 数码管显示分动态显示和静态显示,每个数码管的状态都是被不断更新的,利 用的人的视觉暂留,使看上去数值保持在一个固定的位置上,人的视觉是有延 续性的,当一个东西不断变化时,变化的时间小于人眼的视觉暂留时间的话, 人的眼睛会以为这个东西是连续的。静态显示是一幅画面放在那看上去是不动 的而它确实是不动的。动态扫描显示即轮流向各位数码管送出字型码和相应位 选,利用发光管的余晖和视觉暂留作用,使人的感觉好像各位数码管同时都在 显示。静态显示:数码管从左向右依次点亮: #include <reg52.h>void delay(){ int i,j; for(i = 0; i <0xff; i++) for(j = 0; j <0xff; j++) ;} unsigned int code duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};unsigned int code wei[]={ 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};void main(){ while(1){ int i; P2 = 0x39; for(i = 0; i <8; i++){ P2 = duan[ i]; P1 = wei[ i]; delay(); } } } 想让哪个 数码管亮多少就亮多少:tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

基于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个振荡周

基于51单片机的数码管简易计算器

基于51/52单片机的简易计算器制作 11级自动化2班 王栎斐宋为为闫巨东 一、题目利用单片机芯片STC89C52、四位八段共阳数码管及已制作好的电路板等器件设计制作一个计算器。 二、任务与要求要求计算器能实现加减乘除四种运算 具体如下 1. 加法:四位整数加法计算结果若超过八位则显示计算错误 2. 减法:四位整数减法计算结果若超过八位则显示计算错误 3. 乘法:多位整数乘法计算结果若超过四位则显示计算错误 4. 除法:整数除法 5. 有清除功能 三、课程设计简述 总体设计思路简述 1.按照系统设计的功能的要求 初步确定设计系统由主控模块、显示模块、键扫描接口 电路共三个模块组成。主控芯片使用STC89C52单片机。 2.键盘电路采用4*4矩阵键盘电路。 3.显示模块采用共阳极数码管构成。 四、硬件电路 五、软件编程部份 #include

#define uchar unsigned char #define uint unsigned int //uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; //共阴极 // 0 1 2 3 4 5 6 7 8 9 熄灭- //uchar code loc[]={0xff,0xfe,0xfd,0xfb,0xf7}; //uchar code ero[]={0x79,0x50,0x5c}; uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x40}; //共阳极 uchar code loc[]={0x00,0x80,0x40,0x20,0x10}; uchar code ero[]={~0x79,~0x50,~0x5c}; uint n=0,n1=0,n2=0; //赋初值 uchar flag=0; //计算类型选择关键字 void delay(int t); void display(int n); void error(); main() { while(1) { uchar temp; //第一行检测 P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P3; temp=temp&0xfe; if(temp!=0xfe) { temp=P3; switch(temp) { case 0xee:n1=0;n2=0;n=0;flag=0;break;

单片机说明

第一章 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单片机-八段数码管显示

实验一八段数码管显示 1、实验目的: (1)了解数码管动态显示的原理。 (2)了解74LS164扩展端口的方法。 2、实验要求: 利用实验仪提供的显示电路,动态显示一行数据. 3、实验电路图 LED1LED2LED3LED4LED5LED6 4、实验器材: (1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台 (3)计算机 1 台

5、实验连线 无 6、实验说明: (1)本实验仪提供了8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。 74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。 (2)七段数码管的字型代码表 显示字形 g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 6bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h B 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h D 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F 1 1 1 1 71h a b c d e f g dp

基于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单片机的LED数码管动态显示

基于51单片机的LED数码管动态显示 LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留"效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。当扫描速度达到一定程度时,人眼就分辨不出来了。尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位I/O口。 1 硬件设计 利用51单片机的P0口输出段码,P2口输出位码,其电路原理图如下所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“DT.DSN”。在器件选择按钮中单击

“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。 51单片机AT89C51 一片 晶体CRYSTAL 12MHz 一只 瓷片电容CAP 22pF 二只 电解电容CAP-ELEC 10uF 一只 电阻RES 10K 一只 电阻RES 4.7K 四只 双列电阻网络Rx8 300R(Ω) 一只 四位七段数码管7SEG-MPX4-CA 一只 三极管PNP 四只 若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER 和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 LED数码管动态显示是一位一位地轮流点亮各位数码管的,因此要考虑每一位点亮的保持时间和间隔时间。保持时间太短,则发光太弱而人眼无法看清;时间太长,则间隔时间也将太长(假设N位,则间隔时间=保持时间X(N-1)),使人眼看到的数字闪烁。在程序中要合理的选择合适的保持时间和间隔时间。而循环次数则正比于显示的变化速度。 LED数码管动态显示的流程如下所示。

最新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

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