单片机STC12C5A60S2知识讲解
- 格式:doc
- 大小:63.50 KB
- 文档页数:5
1.PCA工作模式寄存器CMODPCA工作模式寄存器的格式如下:CMOD:PCA工作模式寄存器CIDL:空闲模式下是否停止PCA计数的控制位当CIDL=0时,空闲模式下PCA计数器继续工作;当CIDL=1时,空闲模式下PCA计数器停止工作;CPS2、CPS1、CPS0:PCA计数脉冲源选择控制位。
PCA计数脉冲选择如下表所示:例如,CPS2/CPS1/CPS0=1/0/0时,PCA/PWM的时钟源是SYSclk,不是定时器0,PWM 的频率为SYSclk/265如果要用系统时钟/3来作为PCA的时钟源,应让T0工作在1T模式,计数3个脉冲即产生溢出。
如果此时使用内部RC作为系统时钟(室温情况下,5V单片机为11MHZ~15.5MHZ),可以输出14K~19K频率的PWM。
用T0的溢出可对系统时钟进行1~256级分频。
ECF:PCA计数溢出中断使能位。
当ECF=0时,禁止寄存器CCON中CF位的中断;当ECF=1时,允许寄存器CCON中CF位的中断。
2. 2. PCA控制寄存器CCONPCA控制寄存器的格式如下:CCON:PAC控制寄存器CF:PCA计数阵列溢出标志位。
当PCA计数器溢出时,CF由硬件位置。
如果CMOD 寄存器的ECF位置位,则CF标志可用来产生中断。
CF位可通过硬件或软件置位,但通过软件清零。
CR:PCA计数阵列运行控制位。
该位通过软件置位,用来起动PCA计数器阵列计数。
该位通过软件清零,用来关闭PCA计数器。
CCF1:PCA模块1中断标志。
当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。
CCF0:PCA模块0中断标志。
当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。
3. 3.PCA比较/捕获寄存器CCAPM0和CCAPM1PCA模块0的比较/捕获寄存器的格式如下:CCAPM0:PCA模块0的比较/捕获寄存器B7:保留位将来之用。
ECOM0:允许比较器功能控制位。
单片机STC12C5A60S2在众多的51系列单片机中,要算国内STC 公司的1T增强系列更具有竞争力,因他不但和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASH ROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。
而且STC系列单片机支持串口程序烧写。
显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。
写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果.重要的一点STC12C5A60S2目前的售价与传统51差不多,市场供应也很充足。
是一款高性价比的单片机STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。
1。
增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;2.工作电压:STC12C5A60S2系列工作电压:5。
5V—3。
3V(5V单片机)STC12LE5A60S2系列工作电压:3。
6V-2.2V(3V单片机);3。
工作频率范围:0 — 35MHz,相当于普通8051的 0~420MHz;4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节;5。
片上集成1280字节RAM;6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;7。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3。
利用STC12C5A60S2单片机实现音频信号的频谱显示(在LCD上显示)思路:外来音频信号经过51单片机,在单片机中进行频谱分析,并将结果显示在LCD(12864或1602)上要求:频谱显示如同千千静听播放音乐时的频谱显示希望各位高手能给出详细的解决方案,感激。
51做FFT有些困难,可以使用增强型(RAM)的51机子进行参考程序:#include<STC12C5A.H>#define uchar unsigned char#define uint unsigned int#define channel 0x01 //设置AD通道为 P1.1//---------------------------------------------------------------------sbit SDA_R=P1^2;sbit SDA_R_TOP=P1^3;sbit SDA_G=P1^4;sbit SDA_G_TOP=P1^5;sbit STCP=P1^6;sbit SHCP=P1^7;//---------------------------------------------------------------------//----------------------------------------------------------------------------------------------------------------------//放大128倍后的sin整数表(128)code char SIN_TAB[128] = { 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 59, 65, 70, 75, 80, 85, 89, 94, 98, 102,105, 108, 112, 114, 117, 119, 121, 123, 124, 125, 126, 126, 126, 126, 126, 125, 124, 123, 121, 119, 117, 114, 112,108, 105, 102, 98, 94, 89, 85, 80, 75, 70, 65, 59, 54, 48, 42, 36, 30, 24, 18, 12, 6, 0, -6, -12, -18, -24, -30,-36, -42, -48, -54, -59, -65, -70, -75, -80, -85, -89, -94, -98, -102, -105, -108, -112, -114, -117, -119, -121,-123, -124, -125, -126, -126, -126, -126, -126, -125, -124, -123, -121, -119, -117, -114, -112, -108, -105, -102,-98, -94, -89, -85, -80, -75, -70, -65, -59, -54, -48, -42, -36, -30, -24, -18, -12, -6 };//放大128倍后的cos整数表(128)code char COS_TAB[128] = { 127, 126, 126, 125, 124, 123, 121, 119, 117, 114, 112, 108, 105, 102, 98, 94,89, 85, 80, 75, 70, 65, 59, 54, 48, 42, 36, 30, 24, 18, 12, 6, 0, -6, -12, -18, -24, -30, -36, -42, -48, -54, -59,-65, -70, -75, -80, -85, -89, -94, -98, -102, -105, -108, -112, -114, -117, -119, -121, -123, -124, -125, -126, -126, -126, -126, -126, -125, -124, -123, -121, -119, -117, -114, -112, -108, -105, -102, -98, -94, -89, -85, -80,-75, -70, -65, -59, -54, -48, -42, -36, -30, -24, -18, -12, -6, 0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 59, 65, 70,75, 80, 85, 89, 94, 98, 102, 105, 108, 112, 114, 117, 119, 121, 123, 124, 125, 126, 126 };//采样存储序列表code char LIST_TAB[128] = { 0, 64, 32, 96, 16, 80, 48, 112,8, 72, 40, 104, 24, 88, 56, 120,4, 68, 36, 100, 20, 84, 52, 116,12, 76, 44, 108, 28, 92, 60, 124,2, 66, 34, 98, 18, 82, 50, 114,10, 74, 42, 106, 26, 90, 58, 122,6, 70, 38, 102, 22, 86, 54, 118,14, 78, 46, 110, 30, 94, 62, 126,1, 65, 33, 97, 17, 81, 49, 113,9, 73, 41, 105, 25, 89, 57, 121,5, 69, 37, 101, 21, 85, 53, 117,13, 77, 45, 109, 29, 93, 61, 125,3, 67, 35, 99, 19, 83, 51, 115,11, 75, 43, 107, 27, 91, 59, 123,7, 71, 39, 103, 23, 87, 55, 119,15, 79, 47, 111, 31, 95, 63, 127};uchar COUNT=0,COUNT1=0,ADC_Count=0,LINE=15,G,T;uchar i,j,k,b,p;int Temp_Real,Temp_Imag,temp; // 中间临时变量uint TEMP1;int xdata Fft_Real[128];int xdata Fft_Image[128]; // fft的虚部uchar xdata LED_TAB2[64]; //记录漂浮物是否需要停顿一下uchar xdata LED_TAB[64]; //记录红色柱状uchar xdata LED_TAB1[64]; //记录漂浮点void Delay(uint a){while(a--);}void FFT(){ //uchar X;for( i=1; i<=7; i++) /* for(1) */{b=1;b <<=(i-1); //碟式运算,用于计算隔多少行计算例如第一极 1和2行计算,,第二级for( j=0; j<=b-1; j++) /* for (2) */{p=1;p <<= (7-i);p = p*j;for( k=j; k<128; k=k+2*b) /* for (3) 基二fft */{Temp_Real = Fft_Real[k]; Temp_Imag = Fft_Image[k]; temp = Fft_Real[k+b];Fft_Real[k] = Fft_Real[k] +((Fft_Real[k+b]*COS_TAB[p])>>7) + ((Fft_Image[k+b]*SIN_TAB[p])>>7); Fft_Image[k] = Fft_Image[k] -((Fft_Real[k+b]*SIN_TAB[p])>>7) + ((Fft_Image[k+b]*COS_TAB[p])>>7); Fft_Real[k+b] = Temp_Real -((Fft_Real[k+b]*COS_TAB[p])>>7) - ((Fft_Image[k+b]*SIN_TAB[p])>>7); Fft_Image[k+b] = Temp_Imag + ((temp*SIN_TAB[p])>>7) -((Fft_Image[k+b]*COS_TAB[p])>>7);// 移位.防止溢出. 结果已经是本值的 1/64 Fft_Real[k] >>= 1;Fft_Image[k] >>= 1;Fft_Real[k+b] >>= 1;Fft_Image[k+b] >>= 1;}}}// X=((((Fft_Real[1]*Fft_Real[1]))+((Fft_Image[1]*Fft_Image[1])))>>7);Fft_Real[0]=Fft_Image[0]=0; //去掉直流分量// Fft_Real[63]=Fft_Image[63]=0;for(j=0;j<64;j++){TEMP1=((((Fft_Real[j]*Fft_Real[j]))+((Fft_Image[j]*Fft_Image[j])))>>1);//求功率if(TEMP1>1)TEMP1--;else TEMP1=0;if(TEMP1>31)TEMP1=31;if(TEMP1>(LED_TAB[j]))LED_TAB[j]=TEMP1;if(TEMP1>(LED_TAB1[j])){ LED_TAB1[j]=TEMP1;LED_TAB2[j]=18; //提顿速度=12}}}void Init(){//-----------------------------------------------------------------------------------P1ASF = 0x02; //0000,0010, 将 P1.1 置成模拟口AUXR1 &=0xFB; //1111,1011, 令 ADRJ=0EADC=1; //AD中断打开ADC_CONTR = ADC_POWER | ADC_SPEEDHH | ADC_START | channel;//1110 1001 1打开 A/D (ADC_POWER)转换电源;11速度为70周期一次;//0中断标志清零;1启动adc(ADC_START);001AD通道打开(这里为P1.1);//-----------------------------------------------------------------------------------P2M0=1;P0M0=1;TMOD=0X12;TH0=0x30; //大约20K的采样率(要完整频段需40K以上。
基于STC12C5A60S2单片机的水弹感应靶随着科技的不断进步,电子技术在各个领域都有着广泛的应用。
在娱乐设施方面,电子技术也逐渐融入例如娱乐射击游戏中的靶机。
而本文将介绍一种基于STC12C5A60S2单片机的水弹感应靶,该靶机采用水弹作为击打目标,搭配单片机和传感器技术,实现了自动计分和反馈功能。
下面将从硬件设计、软件设计和系统功能等方面对该水弹感应靶进行详细介绍。
一、硬件设计1. 水弹感应靶的结构设计水弹感应靶由外壳、内部结构、单片机及传感器组成。
外壳采用塑料材质制成,具有一定的弹性和防水性,能够有效保护内部电子元件。
内部结构采用分层设计,可以容纳水弹并分散其冲击力。
单片机和传感器部分则安装在内部结构的底部,以保护其不受水弹击打而受损。
2. 传感器选择及布置采用光电传感器作为感应靶的触发装置。
光电传感器能够在检测到有水弹击打时及时作出反应,实现自动触发。
在水弹感应靶的设计中,需要布置多个传感器以覆盖整个目标区域,从而能够准确捕捉水弹的击打位置。
3. 单片机及外围电路设计本设计选用STC12C5A60S2单片机作为控制核心,搭配外围电路包括驱动电路、显示电路等。
单片机通过光电传感器检测到水弹的击打位置后,能够实现计分并显示在LED屏上,同时还可以采集并上传相关数据至上位机,以实现远程监控和数据分析。
二、软件设计1. 单片机程序设计单片机程序设计是整个水弹感应靶中的核心部分。
程序设计的主要功能包括水弹击打检测、计分、数据上传等。
程序能够实现对水弹击打位置的识别和评分,还能够对多个靶机进行联网管理和数据同步,实现比赛的实时监控和分析。
2. 上位机监控软件设计除了单片机程序设计外,上位机监控软件也是该水弹感应靶的重要组成部分。
上位机监控软件能够实现对多个靶机的远程监控和数据分析,通过图表、曲线等形式直观展示不同场地和时间段的比赛情况,为比赛的组织者和参与者提供更加丰富的信息。
三、系统功能1. 自动计分功能水弹感应靶能够实现对水弹的击打位置的识别和计分功能。
基于STC12C5A60S2单片机的水弹感应靶水弹感应靶是一种利用单片机技术和传感器技术制作的训练设备,可以用于射击练习、比赛娱乐等活动。
本文将介绍基于STC12C5A60S2单片机的水弹感应靶的制作过程和原理。
一、项目背景随着科技的发展,人们对射击训练和娱乐活动的需求日益增加。
传统的纸靶或者电子靶存在一些缺点,如易损坏、维护成本高等。
设计一种新型的水弹感应靶成为了一种有意义的尝试。
二、项目介绍1.设备原理水弹感应靶主要由单片机、传感器、水弹和显示屏组成。
当水弹击中感应靶时,传感器会检测到撞击位置并发送信号给单片机,单片机根据信号控制显示屏显示出相应的击中位置和评分。
2.设计步骤(1)传感器选择为了检测水弹的撞击位置,需要选用高灵敏度的传感器。
一般来说,压力传感器和振动传感器是较为合适的选择。
在本项目中,我们选择了振动传感器作为撞击信号的检测器。
(2)单片机选择STC12C5A60S2是一款常用的单片机,具有较高的性能和稳定性。
其I/O口和内置模拟数字转换功能,非常适合用来控制水弹感应靶的制作。
(3)显示屏选择为了实时显示撞击位置和评分结果,需要选择一款高清、高亮度的显示屏。
一般采用LED显示屏或者液晶显示屏。
(4)程序设计利用C语言或者汇编语言编写程序,实现单片机对传感器信号的检测和处理,控制显示屏显示。
(5)验收测试制作完成后需要对水弹感应靶进行验收测试,检验其性能是否满足设计要求。
三、项目实施1.传感器连接将振动传感器连接到STC12C5A60S2单片机的相应端口,保证传感器可以成功检测到水弹的撞击信号并发送给单片机。
2.程序设计编写程序控制单片机对传感器信号的检测和处理,并将结果显示在显示屏上。
程序设计需要考虑到各种撞击位置的情况,确保实现准确的评分。
3.显示屏连接将选择的显示屏连接到单片机,保证可以正常显示撞击位置和评分结果。
4.调试测试完成上述连接后,对整个系统进行调试测试,确保各个部件可以正常工作。
增强型51单片机STC12C5A60S2的内部AD和PWM波以及时钟输出程序#ifndef __ad_h__#define __ad_h__uint adzhi[8]; //AD值存放数组void AD_Init(){AUXR1|=0X04; //设置AD的ADRJ位为1,使AD取十位结果RES寄存器存高两位,RESL存低七位ADC_CONTR=0X80; //开AD转换电源,第一次使用时要打开内部模拟电源delayms(1);P1ASF=0xff; //P1口7路ADC}void Get_AD(){uchar i;uint res,resl; //AD结果暂存变量uchar status=0; //AD转换状态ADC_CONTR=0X80; //再次打开电源delayms(1);for(i=0;i<8;i++){ADC_CONTR=(0X80|i); //设定转换的通道ADC_CONTR|=0x08; //开始AD转换status=0;while(!(ADC_CONTR&0x10));//等待转换完成ADC_CONTR&=0xE7; //清零即D3位start清零,D4位转换结束标志位ADC——flag清零res=ADC_RES; //存储高两位resl=ADC_RESL; //存储低八位adzhi[i]=res*256+resl;}}void PWM_Init(){CMOD=0X84; //初始化工作模式寄存器CCON=0X00; //所有标志位清零CL=0;CH=0; //给PCA的16位计数器赋初值CCAP0H=CCAP0L=0x80; //给占空比100%CCAPM0=0X42; //工作在PWM波模式,且无PCA中断PCA_PWM0=0X00; //最高位给00CCAP1H=CCAP1L=0x80; //给PWM1占空比50%CCAPM1=0X42; //工作模式设定PCA_PWM1=0x00;CR=1; //启动}void CLK(){TMOD=0X22; //T0、T1工作在方式2,8位自动重装AUXR|=0X80; //T0工作在1T模式AUXR|=0X40; //T1工作在1TAUXR|=0X04; //独立波特率发生器工作在1TBRT=106;TH0=106;TH1=106;WAKE_CLKO|=0X07; //允许T0、T1,独立波特率发生器输出时钟TR0=1; //启动计数TR1=1;AUXR|=0X10; //启动BRT工作,对系统时钟进行分频输出while(1);}#endif。
STC12C5A60S2单片机实现AD采样并液晶显示STC12C5A60S2是一款高性能、低功耗的8051内核单片机。
以下是一种基于该单片机进行AD采样并液晶显示的实现方案。
请注意,由于字数限制,以下内容是基本的框架和步骤,具体细节还需要根据具体需求进行调整。
1.准备材料和设备:-STC12C5A60S2单片机主控板-16x2液晶显示屏-AD转换器(例如MCP3008)-电压传感器模块-连接线、电阻、电容等2.连接硬件:-将液晶显示屏的VCC、GND和信号线(如RS、R/W、EN、D0-D7等)连接到STC12C5A60S2单片机对应的引脚。
-将AD转换器的VCC、GND和信号线(如CLK、DOUT、DIN、CS等)连接到STC12C5A60S2单片机对应的引脚。
-将电压传感器模块的输出引脚连接到AD转换器的输入引脚。
3.编写代码:-使用C语言编写STC12C5A60S2单片机的代码,包括初始化设置、AD 采样、数据处理和液晶显示等部分。
-在初始化设置中,设置AD转换器的引脚和时钟,配置液晶显示屏的引脚和参数。
-在AD采样部分,通过SPI通信协议与AD转换器进行通信,获取电压传感器模块的输出电压值。
-在数据处理部分,将采样到的原始数据经过相应的处理,如校正、换算等。
-在液晶显示部分,将处理后的数据显示到液晶屏上,并通过适当的界面设计和显示格式展示结果。
4.烧录程序:-使用相应的编程工具将编写好的代码烧录到STC12C5A60S2单片机。
-确保烧录成功,并断开编程工具的连接。
5.调试测试:-连接好硬件后,给电压传感器模块供电,确保电压输入正常。
-上电运行STC12C5A60S2单片机,液晶显示屏应显示出AD采样后的结果。
-对不同的输入电压进行测试,观察液晶屏上的显示结果是否与实际输入电压相符。
请注意,以上仅是基本的框架和步骤,实际应用中还需要根据具体需求和应用场景进行相应的优化和调整。
单片机STC12C5A60S2
在众多的51系列单片机中,要算国内STC 公司的1T增强系列更具有竞争力,因他不但和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASH ROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。
而且STC系列单片机支持串口程序烧写。
显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。
写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。
重要的一点STC12C5A60S2目前的售价与传统51差不多,市场供应也很充足。
是一款高性价比的单片机
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。
1.增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;
2.工作电压:STC12C5A60S2系列工作电压:5.5V-
3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机);
3.工作频率范围:0 - 35MHz,相当于普通8051的 0~420MHz;
4.用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节;
5.片上集成1280字节RAM;
6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma;
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;
8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM);
9. 看门狗;
10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接
1K电阻到地);
11.外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%;
12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz,3.3V 单片机为:8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准;
13.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器;
14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟;
15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3);
16. PWM(2路)/PCA(可编程计数器阵列,2路):
——也可用来当2路D/A使用
——也可用来再实现2个定时器
——也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持);
17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口;
19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);
20.工作温度范围:-40 - +85℃(工业级) / 0 - 75℃(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。
图3-1 STC12C5A60S2管脚图
各引脚功能简单介绍如下:
VCC:供电电压;
GND:接地;
P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高;
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收;
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号;
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:
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 (外部数据存储器读选通)
同时P3口同时为闪烁编程和编程校验接收一些控制信号;
RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高平时间;
ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端
以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效;
PSEN:外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN两次有效。
但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;
EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入;
XTAL2:来自反向振荡器的输出;。