导航:首页 > 操作系统 > at89s52单片机原理

at89s52单片机原理

发布时间:2022-09-12 20:43:14

㈠ 求AT89S52单片机原理图,谢谢。

XTAL2:

系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTA L2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。

RESET:

AT89S52的重置引脚,高电平动作,当要对品片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

VCC:

AT89S52电源正端输入,接+SVo

EA/Vpp:

"EA",为英文"External Access。的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码〔存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,ICI为其内部无程序存储器空间。如果是使川8751内部程1-挤空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp).

VSS:

电源地端。

XTALI:

单芯片系统时钟的反相放大器输入端。

ALE/PROG:

ALE是英文Address Latch Enable”的缩写,表示地址锁存器启用信号。AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端u0的地址总线(A0-A7)锁进锁存器中,因为AT89S52是以多T的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。

PSEN:

PSEN是“Program Store Enable”的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信一号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的寻址范围。

PORTO(P0.0~P0.7 ):

端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0, P0.1表示位I,依此类推。其他三个v0端Li (P1、P2, P3)则不共有此电路组态,而是内部有一提升电路,PO在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),PO就以多工方式提供地址总线(A0--A7)及数据总线(DO-D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为AO-A7,再配合端口2所送出的A8-A15合成一充整的16位地址总线,而寻址到64K的外部存储器空间。

PORT2(P2.0~ P2.7):

端口2是具有内部提升电路的双向1/O端口,娜一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端日便能当成输入端日来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8-A15,这个时候P2便不能当做I/O来使用了。PORT2(P2.0-P2.7): 端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端日使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8/ A15,这个时候P2便不能当做1/O来使用了。

PORTI (PI.0--PI.7):

端口1也是具有内部提升电路的双向1/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是山此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。

PORT3(P3.0--P3.7):

端口 3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能

㈡ AT89S51和AT89S52有何不同

at89s51单片机是美国ATMEL公司生产的低功耗,高性能CMOS
8位单片机,片内含4K
bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价at89s51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
at89s52单片机是一种低功耗、高性能CMOS
8位微控制器,具有8K
在系统可编程Flash
存储器。使用Atmel
公司高密度非易失性存储器技术制造,与工业80C51
产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8
位CPU
和在系统可编程Flash,使得at89s52单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
at89s52具有以下标准功能:
8k字节Flash,256字节RAM,32
位I/O
口线,看门狗定时器,2
个数据指针,三个16
位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52
可降至0Hz
静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

㈢ at89s52单片机的机器周期是怎样组成的

51系列单片机一个机器周期等于12个时钟周期,即所接晶振频率为12MHz时,机器周期为1us.
顺便说下指令周期,指令周期就是一条指令运行所需时间,一般是以机器周期为单位的,例如nop指令周期为1个机器周期,而DJNZ指令周期为3个机器周期。

㈣ 分析at89s52单片机的存储器结构

1.程序存储器

设计人员编写的程序存放在微处理器的程序存储器中。

at89s52具有64kb程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息,程序存储器的结构如图1所示。

图1 at89s52程序存储器的结构

at89s52片内片外的程序存储器在统一逻辑空间中,地址从0000h~ffffh,共有64k字节范围。引脚接高电平时,程序从片内程序存储器0000h开始执行,即访问片内存储器。当pc值超出片内rom容量时,会自动转向片外程序存储器空间执行。引脚接低电平时,迫使系统全部执行片外程序存储器0000h开始存放的程序。

2.数据存储器

at89s52 有256 字节片内数据存储器。地址为00h~ffh。这256个单元共分为两部分。其一是地址从00h~7fh单元(共128个字节)为用户数据ram。从80h~ffh地址单元(也是128个字节)为特殊寄存器(sfr)单元。高128 字节与特殊功能寄存器重叠,也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

在00h~1fh共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以r0~r7来命名,称这些寄存器为通用寄存器。这四块中的寄存器都称为r0~r7,利用psw的第3和第4位(rs0和rs1),即可选中这四组通用寄存器。

内部数据存储器的20h—2fh单元为位寻址区,可作为一般单元用字节寻址,也可对它们的位进行寻址,位寻址区地址如表1所示

表1 ram位寻址区地址表

3. 中断服务程序的入口地址

在程序存储区中,为中断服务程序保存了一段中断服务程序的入口地址:其中一组特殊单元是0003h—0032h,各个单元各有用途,它们被分为六段,每个段8个字节,专门留给中断服务程序使用,被称为中断矢量区。at89s52共有8个中断源,6个中断矢量,它们的定义如下表2所,

表2 中断服务程序的入口地址

4.特殊功能寄存器sfr(special? function register)

特殊功能寄存器是指有特殊用途的寄存器集合,也称为专用寄存器,本质上是一些具有特殊功能的片内ram单元,反映单片机的运行状态,很多功能也通过特殊功能寄存器来定义和控制程序的执行。

at89s52单片机内部高128(80~ffh)地址分配给特殊功能寄存器。这个地址空间和芯片内数据存储器的高128字节地址完全重叠,但两者在物理硬件上是完全独立的,用寻址方式来区分这个完全重叠的地址空间。使用直接寻址方式访问这个地址空间时,访问的是特殊功能寄存器;使用间接寻址方式访问这个地址空间时,访问的是数据存储器。

at89s52有32个特殊功能寄存器,它们被离散地分布在内部ram的80h~ffh地址中,这些寄存的功能已作了专门的规定,用户不能修改其结构。

5.几个注意问题

(1)地址的重叠性

单片机中的所有存储器都必须分配地址,可以寻址的地址范围为64kb,数据存储器与程序存储器都占用相同的地址。

程序存储器中片内片外0000h~0ffffh低4kb地址完全重叠,但是我们使用引脚进行区分:=0时,选择片外,=1时,选择片内,这样就完全区分开来了。

数据存储器中片内外0000h~00ffh的256个单元地址完全重叠,片内外数据的访问采用不同指令来区分:mov指令访问片内数据存储器,movx指令访问片外数据存储器。

(2)程序存储器(rom)与数据存储器(ram)的区分

程序存储器(rom)与数据存储器(ram)的区分在使用上是严格区分的,程序存储器只能放置程序指令及常数表格,对程序存储器中数据的访问只可以使用movc指令。而数据存储器则存放数据,片内外的操作指令分别用mov,movx进行操作。

(3)位地址空间的区域划分

片内ram中的20h~2fh的128位,以及sfr中的位地址,这些位寻址单元与位指令集构成了位处理器系统

㈤ 简述at89s52单片机的数据总线地址总线如何构成

P0 口: P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻
辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用

P1 口: P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个
TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个
TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 MOVX @DPTR)时,P2 口送出高八位地址

.

.

.

具体内容参考AT89S52的手册,一般查找手册直接搜索AT89S52 datasheet就有了,而且网上也有很多人翻译了中文手册。

㈥ 单片机数字时钟原理

给你个程序看看,主要是看时分显示哪里!这个程序已经调试通过了,在走时的同时流水灯进行流动,时分之间有一个小数点作为分隔。还有整点报时功能,在早上八点到中午十二点以及下午三点到晚上八点两个时间段内逢整点报时,其他时间不报时(是因为考虑到人们要午休及晚间休息),除此之外还有调时、调分功能。整个程序基于单片机AT89S52(可用C51、C52、S51等代替)。

#include <reg52.h>
#define uint unsigned int
sbit P3_0=P3^0;
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P3^4;
sbit K4=P3^5;
uint count,min,hour,i,j=0;
uint code tab1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint code tab2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
uint code tab3[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0x00,0xff,0x00,0xff,
0xfe,0xfb,0xef,0xbf,0xfd,0xf7,0xdf,0x7f,0x7e,0x3c,0x18,0x00,0x81,
0xc3,0xe7,0xff,0xe7,0xdb,0xbd,0x7e,0xff,0x7e,0xbd,0xdb,0xe7,0xff,
0x00,0xff,0x00,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,
0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0x00,0xff,0x00,0xff,0xfe,0xfc,
0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,
0xff,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,0x00,0xff,0x00,0xff};//流水灯

void adjust(void)
{
if(!K3) //分调整
{
for(i=0;i<20000;i++);min++;
if(min==60)min=0;
}
if(!K4) //时调整
{
for(i=0;i<20000;i++);hour++;
if(hour==24)hour=0;
}
}

void display(void)
{
P0=tab1[min%10];P2=0xf7;for(i=0;i<5;i++);P2=0xff;//分个位显示
P0=tab1[min/10];P2=0xfb;for(i=0;i<5;i++);P2=0xff;//分十位显示
P0=tab2[hour%10];P2=0xfd;for(i=0;i<5;i++);P2=0xff;//时个位显示
P0=tab1[hour/10];P2=0xfe;for(i=0;i<5;i++);P2=0xff;//时十位显示
}

void ring(void)
{
if(hour/10==0&&(hour%10>=8&&hour%10<=9))P3_0=0;//早上7:00到晚上7:00自动整点报时,其中13、14点不报时
if(hour/10==1&&(hour%10>=0&&hour%10<=2))P3_0=0;
if(hour/10==1&&(hour%10>=5&&hour%10<=9))P3_0=0;
}

void update(void)
{
if(count==1200)
{
count=0;min++;
if(min==60)
{
min=0;hour++;
if(hour==24)hour=0;
ring();
}
}
}

void main(void)
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
ET0=1;
while(1)
{
if(count==120)P3_0=1;//报时六秒后自动关闭蜂鸣器
adjust();
display();
}
}

void timer0_rupt(void) interrupt 1 // 定时器0中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count%10==0)
{
P1=tab3[j];
j++;
if(j>99)j=0;
}
update();
}

㈦ at89s52与STC89C52有什么区别

at89s52与STC89C52区别为:生产公司不同、存储器不同、定时器不同。

一、生产公司不同

1、at89s52:at89s52是ATMEL公司生产的一个低电压,高性能CMOS8位单片机。

2、STC89C52:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器。

二、存储器不同

1、at89s52:at89s52含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM)。

2、STC89C52:STC89C52具有8K字节系统可编程Flash存储器。

三、定时器不同

1、at89s52:at89s52的定时器为T0、T1两个16位定时器。

2、STC89C52:STC89C52的定时器为T0、T1、T2三个16位定时器。

㈧ AT89S52单片机

AT89S52
是一种低功耗、高性能CMOS8位微控制器,具有8K
在系统可编程Flash存储器。使用Atmel
公司高密度非易失性存储器技术制造,与工业80C51
产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8
位CPU
和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,
32
位I/O
口线,看门狗定时器,2
个数据指针,三个16

定时器/计数器,一个6向量2级中断结构,全双工串行口,
片内晶振及时钟电路。另外,AT89S52
可降至0Hz
静态逻
辑操作,支持2种软件可选择节电模式。空闲模式下,CPU
停止工作,允许RAM、定时器/计数器、串口、中断继续工
作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
1、与MCS-51单片机产品兼容;
2、8K字节在系统可编程Flash存储器;
3、1000次擦写周期;
4、全静态操作:0Hz-33MHz;
5、三级加密程序存储器;
6、32个可编程I/O口线;
7、三个16位定时器/计数器;
8、8个中断源;
9、全双工UART串行通道;
10、低功耗空闲和掉电模式;
11、掉电后中断可唤醒;
12、看门狗定时器;
13、双数据指针;
14、掉电标识符。

㈨ 单片机编程at89s52

1.编程原理:利用c语言或者汇编语言,操作单片机的寄存器(实际上为数字电路);
2.这个是SPI总线的协议规定,可能其他总线也有类似的叫法
3.与AVR基本含义是一样的
4.当然不能,每个单片机都有自己的下载系统,AT是通过并口下载

㈩ 51单片机最小系统流水灯的原理图关于AT89S52类型的

图中芯片是AT89C51,最小系统图的话是一样的

程序:

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int


void delays(uint t)

{

uint i,j;

for(i=0;i<t;i++)

{

for(j=0;j<1141;j++);

}

}


void main()

{

//P0M1=0X00; //单片机除了P0口以外,其他I/O在内部都有上拉电阻

//P0M0=0XFF; //AT89C51没有推挽输出这一说,所以P0高电平不亮,要加上拉电阻;

//用其他端口不需要考虑


/**************从左到右流水灯**************/

uchar i;

P0=0Xfe;

delays(100);

while(1)

{

P0=_crol_(P0,1);//向左循环移动一位

delays(50);

}

}


/*****************左右来回点亮************/

void main()

{

uchar i;

P0=0x01;

delays(100);

while(1)

{

for(i=0;i<7;i++)

{

P0=_crol_(P0,1);

delays(50);

}

for(i=0;i<7;i++)

{

P0=_cror_(P0,1);

delays(50);

}

}

}

阅读全文

与at89s52单片机原理相关的资料

热点内容
数据中心pdf 浏览:524
crf源码解析 浏览:853
服务器软件开发是什么意思 浏览:941
删除彩信android 浏览:862
元宵节猜灯谜h5源码 浏览:69
乐培生app怎么绑定 浏览:762
视频压缩不清楚怎么说 浏览:525
加好友服务器繁忙是怎么回事 浏览:381
怎么解绑app的支付宝账号 浏览:911
ip地址服务器不可用怎么解决方法 浏览:183
为什么软件需要服务器 浏览:63
redis操作命令大全 浏览:597
python字符串重复索引 浏览:961
为什么香信新版本连接不上服务器 浏览:50
元旦程序员打羽毛球 浏览:614
otc焊接机器人离线编程教学 浏览:412
51单片机的ea引脚有何用途 浏览:207
centos查看用户命令 浏览:840
程序员脸胖 浏览:744
hdfs在主目录下创建文件夹 浏览:800