89s52上机指导书

合集下载

89s52上机指导书

89s52上机指导书

一、单片机的历史1.1 单片机的由来:从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向两个不同的方向发展:一个是向高速度、大容量、高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉的单片机方向发展。

但两者在原理和技术上是紧密联系的。

1.2单片机的名称:单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器CPU,随机存储器RAM,只读存储器ROM、中断系统、定时器/计数器以及I/O接口电路等主要微型机部件,集成在一块芯片上。

虽然单片机只是一个芯片,但从组成和功能上看,它已具备有了计算机系统的属性,为此称它为单片微型计算机SCMC,简称单片机。

1.3 单片机的发展1971年微处理器的研制成功,不久后就出现了单片的微型计算机即单片机,最早的单片机是一位的。

现在已经发展到32位。

1976年INTEL公司推出了8位的MCS—48系列单片机,它以体积小、控制功能全、价格低廉等特点受到广泛的应用和好评。

其后,在MCS—48成功的刺激下,许多半导体芯片商研制自己的产品。

到80年代末,世界各地已经相继研制大约50多个系列300多个品种的单片机产品。

其中Motorola公司的6801、6802,Zilog 公司的Z-8系列,Rockwell公司的6501、6502等。

从开始的一位机到现在的32位,单片机以惊人的速度向前发展。

1.4单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用。

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

2.在工业控制中的应用。

单片机可以构成形式多样的控制系统、数据采集系统。

3.在家用电器中的应用。

89S52+TEA5767+数码管的FM收音机(程序部分)

89S52+TEA5767+数码管的FM收音机(程序部分)

89S52+TEA5767+数码管的FM收音机(程序部分)下面的程序可以直接运行了,绝对没问题的,这个也是参考了几个网站的程序,做了些修改,可以手动自动调台了,手动调台有问题,算法好像不对,但是出来的频率问题不大,自动搜索的结果是正确的,我要提醒大家一点,自动搜台的效果和接受强度,也就是天线,有很大的关系,我的天线是一截不到15mm的软导线,good luck!/****************************************************************************** *********************TEA5767采用I2C接口控制,单片机用AT89S52.晶振11.0592Mhz。

采用四位LED显示。

TEA5767采用I2C接口控制.TEA5767读写数据都是5个字节,其中PLL参数14位. Fosc=11.0592Mhz.******************************************************************************* *********************/#include "regx52.h"#include "intrins.h"/****************************************************************************** *****/#define max_freq 108000 //108Mhz#define min_freq 87500 //87.5Mhz#define max_pll 0x339b //108MHz时的pll.#define min_pll 0x299d //87.5MHz时的pll.#define Add_Freq 1#define Dec_Freq 0#define REFERENCE_FREQ 32.768#define ATIIcxxDriverAddressW 0xC0#define ATIIcxxDriverAddressR 0xC1#define _Nop() _nop_(),_nop_(),_nop_(),_nop_(),_nop_() /*定义空指令*/#define LED P0void Initialization(void);void Get_Pll(void);void Get_Frequency(void);void Search(unsigned char mode);void Auto_Search(unsigned char mode);unsigned char GetKey();void Delay(unsigned char Time);void Led_Display(unsigned long i);void DelayD(unsigned char Time);unsigned char GetKey();void Delay(unsigned char Time);void ATIICxx_PWrite(unsigned char *McuAddress,unsigned char count);void ATIICxx_PRead(unsigned char *McuAddress,unsigned char count);void I2C_Send_Byte(unsigned char sendbyte);unsigned char I2C_Receive_Byte(void);void I2C_Start(void);void I2C_Stop(void);void I2C_Ack(void);void I2C_Noack(void);/*********************************************************************//* IIC读写程序芯片型号*/sbit I2C_SCK=P3^0; /*实时时钟时钟线引脚 */sbit I2C_SDA=P3^1; /*实时时钟数据线引脚 */sbit k1=P1^7;sbit k2=P1^6;sbit k3=P1^5;sbit k4=P1^4;/*********************************************************************//************************************************************************/sbit ge=P2^3;sbit shi=P2^2;sbit bai=P2^1;sbit qan=P2^0;unsigned char tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳//0, 1, 2 3 4 5 6 7 8 9/************************************************************************/ unsigned char radio_write_data[5]={0x2d,0x56,0x20,0x11,0x00}; //初始化写入TEA5767的数据(FM89.8Mhz)unsigned char radio_read_data[5];unsigned int Pll_Data;unsigned long Frequency_Data;/****************************************************************************** *****/void Initialization(void){TMOD = 0x11;TH0 = 0x5d;TL0 = 0x3d;TR0 = 0; //25msTH1 = 0x5d;TL1 = 0x3d;TR1 = 0; //25msT2CON = 0x30;T2MOD = 0x00;RCAP2H = 0xFE;TH2 = RCAP2H;RCAP2L = 0xFB;TL2 = RCAP2L;TR2 = 0; //2400bpsPCON = 0x00;SCON = 0xD0;IP = 0x14;EX0 = 1;IT0 = 1;ET0 = 1;EX1 = 1;IT1 = 1;ES = 0;EA = 0;}/****************************************************************************** *****///读TEA5767状态,并转换成频率void Radio_Read(void){unsigned char temp_l,temp_h;Pll_Data = 0;ATIICxx_PRead(&radio_read_data[0],5);temp_l = radio_read_data[1];temp_h = radio_read_data[0];temp_h &= 0x3f;Pll_Data = temp_h*256+temp_l;Get_Frequency();}/****************************************************************************** *****///由PLL计算频率void Get_Frequency(void){unsigned char hlsi;unsigned int npll = 0;npll = Pll_Data;hlsi = radio_read_data[2]&0x10;if (hlsi)Frequency_Data = (unsignedlong)((float)(npll)*(float)REFERENCE_FREQ*(float)0.25-225); //频率单位:KHz elseFrequency_Data = (unsignedlong)((float)(npll)*(float)REFERENCE_FREQ*(float)0.25+225); //频率单位:KHz}/****************************************************************************** *****///由频率计算PLLvoid Get_Pll(void){unsigned char hlsi;hlsi = radio_read_data[2]&0x10;if (hlsi)Pll_Data = (unsigned int)((float)((Frequency_Data+225)*4)/(float)REFERENCE_FREQ); //频率单位:kelsePll_Data = (unsigned int)((float)((Frequency_Data-225)*4)/(float)REFERENCE_FREQ); //频率单位:k}/****************************************************************************** *****///手动设置频率,mode=1,+0.1MHz; mode="0:-0".1MHz ,不用考虑TEA5767用于搜台的相关位:SM,SUDvoid Search(unsigned char mode){Radio_Read();if(mode){Frequency_Data += 100;if(Frequency_Data > max_freq)Frequency_Data = min_freq;}else{Frequency_Data -= 100;if(Frequency_Data < min_freq)Frequency_Data = max_freq;}Get_Pll();radio_write_data[0] = Pll_Data/256;radio_write_data[1] = Pll_Data%256;radio_write_data[2] = 0x41;radio_write_data[3] = 0x11;radio_write_data[4] = 0x40;ATIICxx_PWrite(&radio_write_data[0],5);}/****************************************************************************** *****///自动搜台,mode=1,频率增加搜台; mode="0:频率减小搜台".void Auto_Search(unsigned char mode){Radio_Read();Get_Pll();if(mode){radio_write_data[2] = 0xb1;if(Pll_Data > max_pll){Pll_Data = min_pll;}}else{radio_write_data[2] = 0x41;if(Pll_Data < min_pll){Pll_Data = max_pll;}}radio_write_data[0] = Pll_Data/256+0x40;radio_write_data[1] = Pll_Data%256;radio_write_data[3] = 0x11;radio_write_data[4] = 0x40;ATIICxx_PWrite(&radio_write_data[0],5);Radio_Read();while(!(radio_read_data[0]&0x80)) //RF电台就绪标志{Radio_Read();}}/****************************************************************************** *****/void main(void){//0x2d,0x56,0x20,0x11,0x00unsigned long temp;Initialization();radio_write_data[0] =0x2A;radio_write_data[1] =0xB6;radio_write_data[2] =0x41;radio_write_data[3] =0x11;radio_write_data[4] =0x40;ATIICxx_PWrite(&radio_write_data[0],5);//初始化TEA5767(89.8Mhz) Frequency_Data = 89800;while(1){ temp= Frequency_Data;Led_Display(Frequency_Data);if( k1 == 0){ DelayD(2);while(k1 == 0);//等待键松开Search(Add_Freq);}if( k2 == 0){ DelayD(2);while(k2 == 0);//等待键松开Search(Dec_Freq);}if( k3 == 0){ DelayD(2);while(k3 == 0);//等待键松开Auto_Search(Add_Freq);}if( k4 == 0){ DelayD(2);while(k4 == 0);//等待键松开Auto_Search(Dec_Freq);}}}/*********************************************************************/ struct bytedata_2{unsigned char ByteH;unsigned char ByteL;};union int2byte{unsigned int IntData;struct bytedata_2 ByteData;};/*********************************************************************/ //启动I2C总线,退出时SCL为低void I2C_Start(void){I2C_SDA=1; /*发送起始条件的数据信号*/_Nop();I2C_SCK=1;_Nop();_Nop();_Nop();_Nop();_Nop();/*起始条件建立时间大于4.7us,延时*/ I2C_SDA=0; /*发送起始信号*/_Nop();_Nop();_Nop();_Nop();_Nop(); /* 起始条件锁定时间大于4μs*/I2C_SCK=0; /*钳住I2C总线,准备发送或接收数据 */_Nop();_Nop();_Nop();_Nop();_Nop();/*起始条件建立时间大于4.7us,延时*/ }//*停止I2C总线void I2C_Stop(void){I2C_SCK=0;I2C_SDA=0; /*发送结束条件的数据信号*/_Nop(); /*发送结束条件的时钟信号*/I2C_SCK=1; /*结束条件建立时间大于4μs*/_Nop();_Nop();_Nop();_Nop();_Nop();I2C_SDA=1; /*发送I2C总线结束信号*/}//MCU等待应答位(返回0表示应答)bit I2C_WaitAck(void){unsigned char ucErrTime = 200; //因故障接收方无ACK,超时值。

89S52单片机c语言入门

89S52单片机c语言入门

51单片机C语言入门教程51单片机C语言学习杂记学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头痛的事。

在众多单片机中51架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。

51的编程语言常用的有二种,一种是汇编语言,一种是C语言。

汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。

对于开发周期来说,中大型的软件编写用C语言的开发周期通常要小于汇编语言很多。

综合以上C语言的优点,我在学习时选择了C语言。

以后的教程也只是我在学习过程中的一些学习笔记和随笔,在这里加以整理和修改,希望和大家一起分享,一起交流,一起学习,一起进步。

*注:可以肯定的说这个教程只是为初学或入门者准备的,笔者本人也只是菜鸟一只,有望各位大侠高手指点错误提出建议。

明浩2003-3-30 pnzwzw@第一课建立您的第一个C项目使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。

KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。

以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。

KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。

单片机实验指导书

单片机实验指导书

单片机原理与应用实验指导书九江学院电子工程学院2007年9月第一章单片机实验的基本要求与方法一、实验目的学习并掌握单片机的基本结构及接口设计方法,学习汇编语言程序设计的基本方法和技能。

二、实验要求1、上机前要做好充分准备,明确实验目的、熟悉实验内容、掌握实验步骤、了解所用单片机实验开发系统及仪器设备的性能。

做好实验前预习和必要的准备,如画好程序流程图,编好程序,做到准备充分。

2. 进入实验室后,熟悉所用的单片机实验开发系统及仪器设备,了解其外观、性能。

接线要正确、简单明了,接线完成后检查一遍,经老师复查允许后才可通电。

通电瞬间,应注意仪器和实验装置是否正常工作,如有不正常现象,应立即断电查找原因,直至故障排除后,实验方可继续进行。

3. 实验进行时,按规定步骤进行,经过反复修改调试,达到设计功能后,读取数据,并及时纪录。

4. 实验完成后,经老师验收合格,并把仪器、导线、工具整理完毕后,学生方可离开实验室。

三、实验方法本课程所用的实验板采用在系统可编程方式下载程序,具体操作过程参考第三章。

四、实验报告内容和要求1. 实验报告要用学校统一印发的实验报告纸。

2. 实验报告内容应包括:实验名称、器材、目的、原理、步骤、结果及分析、流程图、程序清单。

3. 实验报告中实验原理图(含电路图和时序图)要准确无误。

4. 实验报告中程序清单要求调试并运行正确无误,要有中文注释。

5.每个实验后的实验结果分析和心得体会必须独立完成,对实验中发现的问题应加以讨论,并提出自己的改进意见和要求。

6.实验报告写完后统一交到学习委员处,按学号排列装订成册,然后交到老师处。

第二章 V6实验板简介本课程所用单片机实验板,可用于MCS-51系列单片机的仿真开发和《单片机原理与应用》课程的教学实验,具有电路简单,小巧便携,支持在系统可编程技术,简便易用等特点。

适合单片机初学者使用。

图2-1一、可开设实验1、wave仿真软件的应用2、用isplay实现在系统可编程3、流水灯4、动态显示程序5、中断响应程序设计6、定时/计数器的应用:测量脉冲宽度、倒计时器、带闪动的动态显示7、键盘接口程序设计:计时系统、抢答器设计、模拟汽车转向灯设计*8、红外按键识别程序设计*9、基于红外按键输入的四则混合运算计算器设计10、电子音乐盒设计*11、基于红外按键输入的电子琴设计12、基于DS1302的精密时钟设计13、基于DS18B20的数字温度计设计14、串行程序存储器扩展*15、数据采集电路设计:单片机与A/D 转换器接口 *16、信号发生器设计:单片机与D/A 转换器接口 *17、直流电机调速 *18、步进电机控制*19、基于MAX7219的数码管静态显示程序设计 *20、字符型液晶显示程序设计 *21、点阵型液晶显示程序设计注:带“*”实验项目需外接扩展电路二、V6实验板的原理和组成1、总体电路图上电复位....图2-22、微处理器V6实验板采用DIP 封装的AT89s52单片机作为微处理器,引脚配置如图2-3所示,为实现在系统可编程功能,选用11.0592MHz的晶振。

AT89S系列单片机调试板说明书.

AT89S系列单片机调试板说明书.

AT89S系列单片机调试板说明书ATMEL公司的AT89S系列51单片机支持ISP功能,给单片机应用开发带来了极大方便。

现介绍一款简易型开发板的使用方法。

将该板插入DIP40封装的8051单片机插座处,通过廉价的ISP即可编程AT89S51、AT89S52、A T89S53单片机。

编程板照片见图一。

图一编程板照片各部分功能分布情况参加下图二描述。

图二功能描述图按下“编程按键”,PC机即可通过ISP电缆编程AT89S单片机。

“晶体选择”现位置选择编程板上的晶体工作,如果要用目标板上的晶体,应短接靠单片机侧的跳线。

“串行选择”现位置是目标板可用串行。

下面的图是其它方位的照片。

焊接面的排针可插入DIP40的IC座,通过该IC座,然后再插入目标板的IC座,不要将排针直接目标板的IC座,以免造成目标板以后与单片机接触不良。

AT89S单片机仿真板使用方法成都信息工程学院郑郁正@中国,zyz@一、A T89S仿真板如图1。

使用时,必须插入A TMEL的A T89S系列单片机。

二、晶体的选择。

调试时晶体既可用目标板上晶振,也可以选用仿真板上的晶振,图2接法则用仿真板上的晶体,图3接法则用目标板的晶体。

如果不用目标板时,必须按图2接法。

三、电源的接入。

如果按图4仿真板接收目标板,仿真板可用目标板的电源进行工作;如果不接入目标板,则按图5方式加入5V电源,红色线接正极,黑色线接负极。

四、电缆的接入。

PC机通过A T89S的ISP电缆编程AT89S系列单片机,电缆按图5方式接入仿真板,注意电缆上的三角符号,不要接反啦。

而电缆另一端接到PC机的并行打印口上,如图6所示。

五、编程的方法。

编程按键开关具有锁定功能,共有两个,必须一起使用。

按图7按下编程按键开关,PC机即下编程固化,按图8松开编程按键开关,单片机即可工作。

六、复位的方法。

按图9接法,使用目标板上的复位电路;如果没有插入目标板,则图10接法,使用仿真板上的复位电路,由于不设置复位按键,只能靠上电复位。

第5章_AT89S52程序设计与调试

第5章_AT89S52程序设计与调试
第5章 程序设计与调试

5.1 汇编语言程序设计
5.2 C51程序设计
5.3 程序调试方法
1 <
5.1 汇编语言程序设计
源程序的编辑 源程序的编写要依据8051汇编语言的基本规则,特别要 用好常用的汇编命令(即伪指令),例如下面的程序段: ORG 0040H MOV A,#7FH MOV R1,#44H END 这里的ORG和END是两条伪指令,其作用是告诉汇编程序此 汇编源程序的起止位置。编辑好的源程序应以 .ASM或.A51 扩展名存盘(取决于汇编器要求),以备汇编程序调用。


22 <
3、C51数据的存储类型
由于MCS-51结构的特殊性,C51通过存储类型来声明 将变量定义在哪一个存储空间,存储类型如下表:
23 <
变量的定义方法
对于非指针的普通变量,定义格式为: [存储类型] 数据类型 变量名; 也可写为: 数据类型 [存储类型] 变量名; 例如: data char i, j, k; idata unsigned char display[16]; xdata unsigned int buf[100]; code unsigned char bcd_seg_tab[10]={0x40,0x7c, 0x12,0x18,0x2c,0x41,1,0x5c,0,0x8}; //共阴7段码 char data m,n; unsigned int xdata len; float idata x,y,z;
ORG 1000H INT0_PROC: CLR IE0 … … END
; 所有汇编程序结束
5 <
3、字节数据定义伪指令 DB
[标号:] DB 字节数据表
功能是从标号指定的地址开始,在程序存储器中定义字 节数据。字节数据表可以是一个或多个字节数据、字符串或 表达式。该伪指令将字节数据表中的数据根据从左到右的顺 序依次存放在指定的存储单元中。一个数据占一个存储单元。 例如: ORG 500H DB 8,10,18 DB “ABC”

《单片机原理与应用》AT89s52


片内 8KB Flash ROM EA=1
1FFFH 0000H EA=0
程序存储器 ROM
64KB RAM ( I/O)
0000H
片内
专用 FFH 寄存器 80H
内部 7FH
RAM 00H
数据存储器 RAM
¼Ä÷
❖1、程序存储器
AT89S52单片机片内程序存储器 ROM有8K字节, 其地址为0000H~1FFFH;片外可接扩展程序存储 器ROM,最大达64 k字节,地址为0000H~FFFFH, 片内外统一编址。CPU访问片内、片外程序存储器 ROM时用MOVC指令。
表1-2 程序状态寄存器PSW功能表
地址
D0H
寄存器 名称
程序状态寄存器PSW
位地址
D7
D6
D5
D4
D3
D2
D1
D0
位名称
CY
AC
F0
RS1
RS0
OV
F1
P
位意义
进/借
辅进
用户标志
寄存器组选择
溢出
用户标志
奇/偶
CY(PSW.7):进/借位标志位。在执行加法(或减法)运 算指令时,如果运算结果的最高位(D7位)向前有进位( 或借位),则CY位由硬件自动置为1(CY=1);如果运算 结果的最高位无进位(或借位),则CY位被清0(CY=0) 。
AT89S52
AT89S52单片机的基本组成
AT89S52 单片机内部结构框图如图1-2所示:
AT89S52 单片机内部包括:
❖ 一个8位89S52微处理器(CPU),是单片机的运算和指 挥中心。
❖ 片内8K字节程序存储器 (ROM),用于存放程序、原始 数据及表格。

AT89S52单片机数字万用表附带全部程序

图9
ADC0809芯片简要介绍
ADC0809各脚功能如下:
D7-D0:8位数字量输出引脚。
IN0-IN7:8位模拟量输入引脚。
VCC:+5V工作电压。
GND:地。
REF(+):参考电压正端。
REF(-):参考电压负端。
START:A/D转换启动信号输入端。
ALE:地址锁存允许信号输入端。
(以上两种信号用于启动A/D转换).
图7
1.6.3电阻测量电路
此电路是将电阻转换为电压信号进行测量,采用四个自锁开关,作为选择测量档位。然后根据虚断原理得到下面公式:
然后送到A/D转换进行测量电压值,经过处理后得到电阻值。
图8
1.6.4ADC0809并行转换电路
将测量电路得到的电压总到ADC0809进行A/D转换,然后送到单片机进行处理。
{
float Vol;
tem;
Vol=Dat*0.019608; //0.019608=5.0/255.0
Vol=Vol*10000.0;
Vol=Vol/1.156;
OE=0;
tem=(int)(Vol);
v0=tem/1000; //千位数
v0=v0+(7<<4);//片选第一位
v1=(tem/100)%10; v1=v1+176;
图5
1.6单元电路设计
下面根据系统框图对各部分电路进行分析。以及对主要芯片进行说明。
1.5
1.6
1.6.1电压测量电路
将被测电压进行分压后得到1/10原电压并输入ADC0809进行模数转换。
图6
1.6.2电流测量电路
电路将模拟被测电流转化为电压,通过改变滑动变阻器大小,经过负反馈放大电路将被测量转化为电压进行测量。

AT89S52单片机结构+C语言注意事项+键盘消抖

AT89S52单片机结构
AT89S52单片机基本特性
8 位的 CPU, 片内有振荡器和时钟电路,工作频率为



0~24MHz 片内有 256字节 数据存储器 RAM 片内有 8K字节 程序存储器 ROM 4个8位 的并行I/O口(P0、P1、P2、P3) 1个 全双工串行通讯口 3个16位 定时器/计数器(T0、T1、T2) 可处理 6个中断源,两级中断优先级
在C51中,为了用户处理方便,C51编译器把51单 片机的常用的特殊功能寄存器和特殊位进行了定义, 放在一个“reg51.h”或“reg52.h”的头文件中,当用 户要使用时,只须要在使用之前用一条预处理命令 #include <reg52.h>把这个头文件包含到程序中,然 后就可使用殊功能寄存器名和特殊位名称。
CPU都是按照一定的时钟节拍与时序进行工作: 时钟周期: Tc=晶振频率fosc的倒数 机器周期:Tm==12个时钟周期(Tc) 指令周期: Ti:执行一条指令所需的机器周期(Tm)数
例: 晶振频率是12M 时 一个机器周期需要多 长时间? Tc= 1/fosc=1/12Mhz Tm=12XTc =12X1/12Mhz = 1us
读锁存器 2 地址高8位 控制 =0 Vcc 内部上拉电阻 0
Q
内部 总线 写锁 存器
=0 引脚P2.X
0
D
0
0
CK
/Q
3
1
导 通
1 读引脚 =0 控制=0时,此脚作通用输出口: 输出=0时
AT89S52单片机的引脚(P3口)

P3.0—P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功 能时它就是普通的通用准双向I/O口。

AT89S52使用说明书

AT89S52最小系统使用说明书注意:本说明书中添加超链接的按CTRL并点击连接,即可看到内容。

一、AT89S52单片机主要性能● 与MCS-51单片机产品兼容● 8K字节在线系统可编程Flash存储器● 1000次擦写周期● 4.0V-5.5V工作电压● 全静态操作:0Hz~33Hz● 三级加密程序存储器● 256*8字节的内部数据存储器● 32个可编程I/O口线● 三个16位定时器/计数器● 八个中断源● 全双工UART串行通道● 低功耗空闲和掉电模式● 掉电后中断可唤醒● 看门狗定时器● 双数据指针● 掉电标识符● 快速编程周期● 灵活ISP编程(字节和模式)● 绿色工作包操作二、功能特性描述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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

三、板子的功能特点简要说明:一、尺寸:85mmX55mm二、主要芯片:AT89S52单片机、MAX232三、工作电压:直流4~6伏四、单片机标准十针下载接口。

(可使用并口下载线和USB下载线下载)另外支持:双龙下载软件以及Easy 51Pro.exe五、特点:1、具有电源指示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单片机的历史
1.1 单片机的由来:
从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向两个不同的方向发展:一个是向高速度、大容量、高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉的单片机方向发展。

但两者在原理和技术上是紧密联系的。

1.2单片机的名称:
单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器CPU,随机存储器RAM,只读存储器ROM、中断系统、定时器/计数器以及I/O接口电路等主要微型机部件,集成在一块芯片上。

虽然单片机只是一个芯片,但从组成和功能上看,它已具备有了计算机系统的属性,为此称它为单片微型计算机SCMC,简称单片机。

1.3 单片机的发展
1971年微处理器的研制成功,不久后就出现了单片的微型计算机即单片机,最早的单片机是一位的。

现在已经发展到32位。

1976年INTEL公司推出了8位的MCS—48系列单片机,它以体积小、控制功能全、价格低廉等特点受到广泛的应用和好评。

其后,在MCS—48成功的刺激下,许多半导体芯片商研制自己的产品。

到80年代末,世界各地已经相继研制大约50多个系列300多个品种的单片机产品。

其中Motorola公司的6801、6802,Zilog 公司的Z-8系列,Rockwell公司的6501、6502等。

从开始的一位机到现在的32位,单片机以惊人的速度向前发展。

1.4单片机的应用领域
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1.在智能仪器仪表上的应用。

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

2.在工业控制中的应用。

单片机可以构成形式多样的控制系统、数据采集系统。

3.在家用电器中的应用。

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

4.在计算机网络和通信领域中的应用。

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

5.单片机在医用设备领域中的应用。

单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。

此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。

二、软件的应用
1.开发软件的使用说明
单片机开发板使用的编程软件可以用S52编程软件WAVE6000
进行编写AT89S52单片机的源程序(汇编语言和C语言),并产
生.hex程序代码,利用S52下载软件Easy pro51将程序代码应
用S52下载线下载到目标单片机AT89S52的Flash中,相应的配
套软件在光盘中可找到。

当开发板的单片机使用的AVR系列Mega8515时,可用AVR的C语言编程软件ICCAVR进行C语言程
序编写,用AVR汇编语言编程软件进行汇编程序编写,产生.hex
程序代码,利用AVR下载软件PonyProg将程序代码应用AVR下载
线下载到目标单片机Mega8515的Flash中,相应的配套软件也在
光盘中可找到。

在光盘中还附有软件应用的安装教程,可使单片
机学习者方便快捷地掌握单片机开发软件。

2.编程软件——WAVE 6000的使用
○1新建文件
文件——新建文件——保存文件——保存文件名Array
为xxx.c
○2软件设置
选择CPU为8752,其功能
引脚与S52完全相同
编译器路径为,
WA VE安装目录下的
C51文件夹
晶振。

相关文档
最新文档