当前位置:文档之家› 单片机常用芯片头文件

单片机常用芯片头文件

单片机常用芯片头文件
单片机常用芯片头文件

//STC 单片机内部ADC转换程序

//可选择查询和中断方式

//H文件

#ifndef __ADC_H__

#define __ADC_H__

#define ADC_POWER 0x80 //ADC 电源控制位

#define ADC_FLAG 0x10 //ADC 完成标志

#define ADC_START 0x08 //ADC 启动控制位

//ADC转换速度选择

#define ADC_SPEEDLL 0x00 //420 clocks

#define ADC_SPEEDL 0x20 //280 clocks

#define ADC_SPEEDH 0x40 //140 clocks

#define ADC_SPEEDHH 0x60 //70 clocks

unsigned int AD_Result_Temp;

unsigned int GetADCResult (unsigned char chan); //ADC 转换处理,查询方式#endif

//C文件

#ifndef __ADC_C__

#define __ADC_C__

#include

//#include

/*----------------------------

初始化ADC 寄存器中断方式

----------------------------

void InitADC()

{

unsigned unsigned char chan=0;

P1ASF = 0xff; //设置P1口全部为ADC通道ADC_RES = 0; //清除高8位缓冲数据

ADC_RESL = 0; //清除低2位缓冲数据

ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | chan;

_nop_();

_nop_(); //打开ADC

}

*/

//----------------------------

//ADC 中断处理

//----------------------------

/*void adc_isr() interrupt 5 using 1

{

unsigned unsigned int AD_Result_Temp

ADC_CONTR &= !ADC_FLAG; //清除ADC 中断标志位return (((AD_Result_Temp|ADC_RES)<<2)+ADC_RESL); //返回10位ADC转换结果if (++ch > 7) ch = 0; //却换到下一个通道

ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | chan;

}

*/

unsigned int GetADCResult(unsigned char chan)

{

AD_Result_Temp=0;

ADC_RES=0;

ADC_RESL=0;

ADC_CONTR = ADC_POWER | ADC_SPEEDHH | chan | ADC_START;

_nop_(); //Must wait before inquiry

_nop_();

_nop_();

_nop_();

while (!(ADC_CONTR & ADC_FLAG));//等待完成

ADC_CONTR &= ~ADC_FLAG; //关闭ADC转换

AD_Result_Temp=(((AD_Result_Temp|ADC_RES)<<2)+ADC_RESL);

return AD_Result_Temp;

}

#endif

//74HC595

//发送完一个8位数据,就锁存一次

// 8个数码管,可以这样做

// for(i=0;i<8;i++)

// {

// Send_HC595(....//要发送的8为数据);

// Show_595();

// }

/********************************************************/

/* */

/*将显示数据送入74HC595内部移位寄存器*/

/* */

/********************************************************/

void Send_HC595(INT16U LED_DATA)

{

INT8U i;

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

{

HC595_DS=LED_DATA&0x80;

HC595_SHCP=1; //上升沿发生移位

_nop_();

_nop_();

HC595_SHCP=0;

LED_DATA=LED_DATA<<1;

}

}

/********************************************************/

/* */

/*将移位寄存器内的数据锁存到输出寄存器并显示*/

/* */

/********************************************************/

void Show_595(void)

{

HC595_STCP=0;

_nop_();

_nop_();

HC595_STCP=1; //上升沿将数据送到输出锁存器

_nop_();

_nop_();

HC595_STCP=0;

}

//74HC164

#ifndef __74LS164_H__

#define __74LS164_H__

extern void Write_Bit8(unsigned char bit_8)

{

unsigned char i;

for(i=8;i>0;i--) //数码管段8位数据

{

Data=bit_8&0x80; //传送一位数据

CLK=0;

CLK=1;

bit_8=bit_8<<1;

}

}

#endif

20位串口A/D转换器CS5513 20位串口A/D转换器CS5513 接口程序2010-03-22 14:56//cs5513接口的C51官方程序

//cs5513返回长整型数据

//CS=0时表示片选有效,当然可以直接接地,这样可以节省一个I/O口

sbit ADCS=P2^0;

sbit ADCLK=P2^1;

sbit ADDO=P2^2;

unsigned long int ADConv(void)

{

uchar i;

unsigned long int Result=0;

ADCLK=0;

ADCS=0;

_nop_();

_nop_();

_nop_();

ADCLK=0;

while(ADDO);

ADCLK=1;

_nop_();

for(i=0;i<3;i++){

ADCLK=0;

_nop_();

ADCLK=1;

}

for (i=0;i<20;i++){

ADCLK=0;

Result=Result<<1;

if (ADDO)

Result=Result+1;

ADCLK=1;

}

ADCS=1;

return Result;

}

//LCD SMC12864-05

#ifndef _CRYFUCNS_H_

#define _CRYFUCNS_H_

void Send(unsigned char type,unsigned char transdata);

void Init_LCD(void);

void Clear_GDRAM(void);

void Disp_HZ(unsigned char addr,const unsigned char * pt,unsigned char num); void Draw_PM(const unsigned char *ptr);

void Draw_TX(unsigned char Yaddr,unsigned char Xaddr,const unsigned char * dp) ; void Disp_SZ(unsigned char addr,unsigned char shuzi);

#endif

#include

#include

#include

#include

extern const INT8U shuzi_table[];

void Send(INT8U type,INT8U transdata);

/**********液晶控制IO的宏定义*************/

sbit RS_CS = P0^0;

sbit RW_SDI = P0^1;

sbit E_CLK = P0^2;

/*******************************************

函数名称:delay_Nus

功能:延时N个us的时间

参数:n--延时长度

返回值:无

********************************************/

void delay_Nus(INT16U n)

{

INT8U i;

for(i = n;i > 0;i--)

_nop_();

}

/*******************************************

函数名称:delay_1ms

功能:延时约1ms的时间

参数:无

返回值:无

********************************************/

void delay_1ms(void)

{

INT8U i;

for(i = 150;i > 0;i--) _nop_();

}

/*******************************************

函数名称:delay_Nms

功能:延时N个ms的时间

参数:无

返回值:无

********************************************/

void delay_Nms(INT16U n)

{

INT16U i = 0;

for(i = n;i > 0;i--)

delay_1ms();

}

/*******************************************

函数名称:Ini_Lcd

功能:初始化液晶模块

参数:无

返回值:无

********************************************/

void Init_LCD(void)

{

delay_Nms(100); //延时等待液晶完成复位

Send(0,0x30); /*功能设置:一次送8位数据,基本指令集*/

delay_Nus(72);

Send(0,0x02); /*DDRAM地址归位*/

delay_Nus(72);

Send(0,0x0c); /*显示设定:开显示,不显示光标,不做当前显示位反白闪动*/

delay_Nus(72);

Send(0,0x01); /*清屏,将DDRAM的位址计数器调整为“00H”*/

delay_Nus(72);

Send(0,0x06); /*功能设置,点设定:显示字符/光标从左到右移位,DDRAM地址加1*/ delay_Nus(72);

}

/*******************************************

函数名称:Send

功能:MCU向液晶模块发送1一个字节的数据

参数:type--数据类型,0--控制命令,1--显示数据

transdata--发送的数据

返回值:无

********************************************/

void Send(INT8U type,INT8U transdata)

{

INT8U firstbyte = 0xf8;

INT8U temp;

INT8U i,j = 3;

if(type) firstbyte |= 0x02;

RS_CS=1;

E_CLK=0;

while(j > 0)

{

if(j == 3) temp = firstbyte;

else if(j == 2) temp = transdata&0xf0;

else temp = (transdata << 4) & 0xf0;

for(i = 8;i > 0;i--)

{

if(temp & 0x80) RW_SDI=1;

else RW_SDI=0;

E_CLK=1;

temp <<= 1;

E_CLK=0;

}

//三个字节之间一定要有足够的延时,否则易出现时序问题

if(j == 3) delay_Nus(600);

else delay_Nus(200);

j--;

}

RW_SDI=0;

RS_CS=0;

}

/*******************************************

函数名称:Clear_GDRAM

功能:清除液晶GDRAM内部的随机数据

参数:无

返回值:无

********************************************/

void Clear_GDRAM(void)

{

INT8U i,j,k;

Send(0,0x34); //打开扩展指令集

i = 0x80;

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

{

Send(0,i++);

Send(0,0x80);

for(k = 0;k < 16;k++)

{

Send(1,0x00);

}

}

i = 0x80;

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

{

Send(0,i++);

Send(0,0x88);

for(k = 0;k < 16;k++)

{

Send(1,0x00);

}

}

Send(0,0x30); //回到基本指令集

}

/*******************************************

函数名称:Disp_HZ

功能:显示汉字程序

参数:addr--显示位置的首地址

pt--指向显示数据的指针

num--显示数据的个数

返回值:无

********************************************/ void Disp_HZ(INT8U addr,const INT8U * pt,INT8U num) {

INT8U i;

Send(0,addr);

for(i = 0;i < (num*2);i++)

Send(1,*(pt++));

}

/*******************************************

函数名称:Draw_PM

功能:在整个屏幕上画一个图片

参数:ptr--指向保存图片位置的指针

返回值:无

********************************************/ void Draw_PM(const INT8U *ptr)

{

INT8U i,j,k;

Send(0,0x34); //打开扩展指令集

i = 0x80;

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

{

Send(0,i++);

Send(0,0x80);

for(k = 0;k < 16;k++)

{

Send(1,*ptr++);

}

}

i = 0x80;

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

{

Send(0,i++);

Send(0,0x88);

for(k = 0;k < 16;k++)

{

Send(1,*ptr++);

}

}

Send(0,0x36); //打开绘图显示

Send(0,0x30); //回到基本指令集

}

/*******************************************

函数名称:Draw_TX

功能:在液晶上描绘一个16*16的图形

参数:Yaddr--Y地址,

Xaddr--X地址

dp--指向保存图形数据的指针

返回值:无

********************************************/

void Draw_TX(INT8U Yaddr,INT8U Xaddr,const INT8U * dp)

{

INT8U j;

INT8U k = 0;

Send(0,0x34); //使用扩展指令集,关闭绘图显示

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

{

Send(0,Yaddr++); //Y地址

Send(0,Xaddr); //X地址

Send(1,dp[k++]); //送两个字节的显示数据

Send(1,dp[k++]);

}

Send(0,0x36); //打开绘图显示

Send(0,0x30); //回到基本指令集模式

}

/*******************************************

函数名称:Disp_SZ

功能:显示一个两位数字

参数:addr--显示地址

数字--显示的数字

返回值:无

********************************************/

void Disp_SZ(INT8U addr,INT8U shuzi)

{

INT8U tmp0,tmp1;

tmp0 = shuzi / 10;

tmp1 = shuzi % 10;

Send(0,addr);

Send(1,shuzi_table[tmp0]);

Send(1,shuzi_table[tmp1]);

}

//STC 内部EEPROM 操作程序

#ifndef _EEPROM_H_

#define _EEPROM_H_

//定义Flash 操作等待时间及允许IAP/ISP/EEPROM 操作的常数

//#define ENABLE_ISP 0x80 //系统工作时钟<30MHz 时,对IAP_CONTR 寄存器设置此值

//#define ENABLE_ISP 0x81 //系统工作时钟<24MHz 时,对IAP_CONTR 寄存器设置此值

//#define ENABLE_ISP 0x82 //系统工作时钟<20MHz 时,对IAP_CONTR 寄存器设置此值

#define ENABLE_ISP 0x83 //系统工作时钟<12MHz 时,对IAP_CONTR 寄存器设置此值

//#define ENABLE_ISP 0x84 //系统工作时钟<6MHz 时,对IAP_CONTR 寄存器设置此值

//#define ENABLE_ISP 0x85 //系统工作时钟<3MHz 时,对IAP_CONTR 寄存器设置此值

//#define ENABLE_ISP 0x86 //系统工作时钟<2MHz 时,对IAP_CONTR 寄存器设置此值

//#define ENABLE_ISP 0x87 //系统工作时钟<1MHz 时,对IAP_CONTR 寄存器设置此值

#define FIRST 0x0000

#define SECOND 0x200

#define THIRD 0x400

#define START_FLAG 0xE1

union eeprom_addr

{

unsigned int temp16;

unsigned char temp8[2];

}addr16;

void IAP_Disable (void); //关闭IAP 功能

void Sector_Erase (unsigned int add); //擦除扇区

void Byte_Program (unsigned int add, unsigned char ch); //字节编程,调用前需打开IAP 功能

extern unsigned char Byte_Read (unsigned int add); //读一字节,调用前需打开IAP 功能

#endif

#include

/*********************************************************************************************** 读一字节,调用前需打开IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节

************************************************************************************************ /

unsigned char Byte_Read(unsigned int add)

{

EA = 0;

IAP_DATA = 0x00;

IAP_CONTR = ENABLE_ISP; //打开IAP 功能, 设置Flash 操作等待时间

IAP_CMD = 0x01; //IAP/ISP/EEPROM 字节读命令addr16.temp16 = add;

IAP_ADDRH = addr16.temp8[0]; //设置目标单元地址的高8 位地址

IAP_ADDRL = addr16.temp8[1]; //设置目标单元地址的低8 位地址

IAP_TRIG = 0x5A; //先送5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此

IAP_TRIG = 0xA5; //送完A5h 后,ISP/IAP 命令立即被触发起动

_nop_();

IAP_Disable(); //关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态,

//一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关

EA = 1;

return (IAP_DATA);

}

/*********************************************************************************************** *****

字节编程,调用前需打开IAP 功能,入口:DPTR = 字节地址, A= 须编程字节的数据

************************************************************************************************ *****/

void Byte_Program(unsigned int add, unsigned char ch)

{

EA = 0;

IAP_CONTR = ENABLE_ISP; //打开IAP 功能, 设置Flash

操作等待时间

IAP_CMD = 0x02; //IAP/ISP/EEPROM 字节编程命令addr16.temp16 = add;

IAP_ADDRH = addr16.temp8[0]; //设置目标单元地址的高8 位地址

IAP_ADDRL = addr16.temp8[1]; //设置目标单元地址的低8 位地址

IAP_DATA = ch; //要编程的数据先送进IAP_DATA 寄存器

IAP_TRIG = 0x5A; //先送5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此

IAP_TRIG = 0xA5; //送完A5h 后,ISP/IAP 命令立即被触发起动

_nop_();

IAP_Disable(); //关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态,

EA = 1; //一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关

}

/*********************************************************************************************** *******

擦除扇区, 入口:DPTR = 扇区地址

************************************************************************************************ *******/

void Sector_Erase(unsigned int add)

{

EA = 0;

IAP_CONTR = ENABLE_ISP; //打开IAP 功能, 设置Flash 操作等待时间

IAP_CMD = 0x03; //IAP/ISP/EEPROM 扇区擦除命令addr16.temp16 = add;

IAP_ADDRH = addr16.temp8[0]; //设置目标单元地址的高8 位地址

IAP_ADDRL = addr16.temp8[1]; //设置目标单元地址的低8 位地址

IAP_TRIG = 0x5A; //先送5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此

IAP_TRIG = 0xA5; //送完A5h 后,ISP/IAP 命令立即被触发起动

_nop_();

IAP_Disable(); //关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态,

EA = 1; //一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关

}

/*********************************************************************************************** *****

关闭IAP 功能

************************************************************************************************ *****/

void IAP_Disable()

{

//关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态,

//一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关

IAP_CONTR = 0; //关闭IAP 功能

IAP_CMD = 0; //清命令寄存器,使命令寄存器无命令,此句可不用

IAP_TRIG = 0; //清命令触发寄存器,使命令触发寄存器无触发,此句可不用

IAP_ADDRH = 0;

IAP_ADDRL = 0;

}

//MAX186 程序

#ifndef _MAX186_H_

#define _MAX186_H_

#include

sbit MAX186_SCLK_1 = P1^0;

sbit MAX186_CS_1 = P1^1;

sbit MAX186_DIN_1 = P1^2;

sbit MAX186_DOUT_1 = P1^3;

sbit MAX186_SCLK_2 = P1^4;

sbit MAX186_CS_2 = P1^5;

sbit MAX186_DIN_2 = P1^6;

sbit MAX186_DOUT_2 = P1^7;

unsigned int Max186_AD(unsigned char chan);

#endif

#include

unsigned int Max186_AD(unsigned char chan)

{

unsigned char i,kki,ch;

unsigned int i_data,i_datatransfer,addata;

switch(chan)

{

case 0: ch=0x8E;break;

case 1: ch=0xCE;break;

case 2: ch=0x9E;break;

case 3: ch=0xDE;break;

case 4: ch=0xAE;break;

case 5: ch=0xEE;break;

case 6: ch=0xBE;break;

case 7: ch=0xFE;break;

default: ch=0xAE;break;

}

MAX186_CS_2=1;

MAX186_SCLK_2=0;

MAX186_CS_2=0;

MAX186_SCLK_2=0;

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

{

unsigned char adaddresstransfer;

adaddresstransfer=ch;

adaddresstransfer=(adaddresstransfer>>(7-i))&0x01;

MAX186_DIN_2=adaddresstransfer;

MAX186_SCLK_2=1;

for(kki=0;kki<2;kki++);

MAX186_SCLK_2=0;

}

MAX186_CS_2=1;

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

MAX186_CS_2=0;

MAX186_SCLK_2=1;

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

{

MAX186_SCLK_2=1;

MAX186_SCLK_2=0;

i_datatransfer=MAX186_DOUT_2;

i_datatransfer=i_datatransfer<<(11-i);

i_data=i_data|i_datatransfer;

}

addata=i_data;

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

{

MAX186_SCLK_2=1;

MAX186_SCLK_2=0;

}

MAX186_CS_2=1;

i_data=i_datatransfer=0;

delay(5);

return(addata);

}

//SMC12864-05.H #ifndef _SMC12864_05_H_

#define _SMC12864_05_H_

#include

void Init_LCD();

void SetOnOFF(bit Switch);

void Clean_LCD();

void Check_LCD_Status();

void Write_Cmd(INT8U Cmd);

void Set_Adrr(INT8U x,INT8U y);

void Write_Data(INT8U Data);

void Disp_HZ(INT8U addr,const INT8U * pt,INT8U num); #endif

#include

#include

#include

#include

sbit RS_CS = P2^7;

sbit RW_SDI = P2^6;

sbit E_CLK = P2^5;

sbit Busy_Bit = P0^7;

void Init_LCD()

{

Write_Cmd(0x30); //基本指令集

delay(1);

Write_Cmd(0x02); // 地址归位

delay(1);

Write_Cmd(0x0c); //整体显示打开,游标关闭

delay(1);

Write_Cmd(0x01); //清除显示

delay(1);

Write_Cmd(0x06); //游标右移

delay(1);

Write_Cmd(0x80); //设定显示的起始地址

Clean_LCD();

SetOnOFF(1);

}

void Clean_LCD()

{

RS_CS=0;

RW_SDI=0;

P0=0x01;

E_CLK=1;

delay(1);

E_CLK=0;

}

void SetOnOFF(bit Switch)

{

RS_CS=0;

RW_SDI=0;

if(Switch==1)P0=0x0F;

else P0=0x08;

E_CLK=1;

delay(1);

E_CLK=0;

}

void Write_Cmd(INT8U Cmd)

{

Check_LCD_Status();

RS_CS=0;

RW_SDI=0;

P0=Cmd;

E_CLK=1;

delay(1);

E_CLK=0;

}

void Write_Data(INT8U Data)

{

Check_LCD_Status();

RS_CS=1;

RW_SDI=0;

P0=Data;

E_CLK=1;

delay(1);

E_CLK=0;

}

void Check_LCD_Status()

{

RS_CS=0;

RW_SDI=1;

P0=0xFF;

E_CLK=1;

delay(1);

E_CLK=0;

while(!Busy_Bit);

}

/*******************************************

函数名称:Disp_HZ

功能:控制液晶显示汉字

参数:addr--显示位置的首地址

pt--指向显示数据的指针

num--显示字符个数

返回值:无

********************************************/ void Disp_HZ(INT8U addr,const INT8U * pt,INT8U num) {

INT8U i;

Write_Cmd(addr);

for(i = 0;i < (num*2);i++)

Write_Data(*(pt++));

}

单片机常用模块电路大全

单片机常用模块电路大全 1. 双路232通信电路:3线连接方式,对应的是母头,工作电压5V,可以使用MAX202或MAX232。 2. 三极管串口通信:本电路是用三极管搭的,电路简单,成本低,但是问题,一般在低波特率下是非常好的。 3. 单路232通信电路:三线方式,与上面的三级管搭的完全等效。 4. USB转232电路:采用的是PL2303HX,价格便宜,稳定性还不错。 5. SP706S复位电路:带看门狗和手动复位,价格便宜(美信的贵很多),R4为调试用,调试完后焊接好R4。 卡模块电路(带锁):本电路与SD卡的封装有关,注意与封装对应。此电路可以通过端口控制SD卡的电源,比较完善,可以用于5V和。但是要注意,有些器件的使用,5V和是不一样的。 液晶模块(ST7920):本电路是常见的12864电路,价格便宜,带中文字库。可以通过PSB端口的电平来设置其工作在串口模式还是并行模式,带背光控制功能。

字符液晶模块(KS0066):最常用的字符液晶模块,只能显示数字和字符,可4位或8位控制,带背光功能。 9.全双工RS485电路(带保护功能):带有保护功能,全双工4线通信模式,适合远距离通信用。 半双工通信模块:可以通过选择端口选择数据的传输方向,带保护功率。此模块只能工作在5V. 11. ARM JTAG仿真接口电路:比较完善,可以应用在常规的ARM芯片下,具有有自动下载功能,可以用JLINK或ULINK. 电源模块:这个电路比较简单,如果用直插可以达到,如果用贴片的可以到达1A。 电源模块:可以到达800mA,价格非常便宜,也有相应的的芯片,可以直接替换。 常用开关电源电路 buck电源电路。 14.最常用的开关电源:

单片机常用芯片头文件

//STC 单片机内部ADC转换程序 //可选择查询和中断方式 //H文件 #ifndef __ADC_H__ #define __ADC_H__ #define ADC_POWER 0x80 //ADC 电源控制位 #define ADC_FLAG 0x10 //ADC 完成标志 #define ADC_START 0x08 //ADC 启动控制位 //ADC转换速度选择 #define ADC_SPEEDLL 0x00 //420 clocks #define ADC_SPEEDL 0x20 //280 clocks #define ADC_SPEEDH 0x40 //140 clocks #define ADC_SPEEDHH 0x60 //70 clocks unsigned int AD_Result_Temp; unsigned int GetADCResult (unsigned char chan); //ADC 转换处理,查询方式#endif //C文件 #ifndef __ADC_C__ #define __ADC_C__ #include //#include /*---------------------------- 初始化ADC 寄存器中断方式 ---------------------------- void InitADC() { unsigned unsigned char chan=0; P1ASF = 0xff; //设置P1口全部为ADC通道ADC_RES = 0; //清除高8位缓冲数据 ADC_RESL = 0; //清除低2位缓冲数据 ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | chan; _nop_(); _nop_(); //打开ADC } */ //---------------------------- //ADC 中断处理 //---------------------------- /*void adc_isr() interrupt 5 using 1

单片机常用芯片引脚图

单片机常用芯片引脚图 一、单片机类 1、MCS-51 芯片介绍:MCS-51系列单片机是美国Intel公司开发的8位单片机,又可以分为多个子系列。 MCS-51系列单片机共有40条引脚,包括32 条I/O接口引脚、4条控制引脚、2条电源引 脚、2条时钟引脚。 引脚说明: P0.0~P0.7:P0口8位口线,第一功能作为 通用I/O接口,第二功能作为存储器扩展时 的地址/数据复用口。 P1.0~P1.7:P1口8位口线,通用I/O接口 无第二功能。 P2.0~P2.7:P2口8位口线,第一功能作为 通用I/O接口,第二功能作为存储器扩展时 传送高8位地址。 P3.0~P3.7:P3口8位口线,第一功能作为 通用I/O接口,第二功能作为为单片机的控 制信号。 ALE/ PROG:地址锁存允许/编程脉冲输入信号线(输出信号) PSEN:片外程序存储器开发信号引脚(输出信号) EA/Vpp:片外程序存储器使用信号引脚/编程电源输入引脚 RST/VPD:复位/备用电源引脚 2、MCS-96 芯片介绍:MCS-96系列单片机是美国Intel公司继MCS-51系列单片机之后推出的16位单 片机系列。它含有比较丰富的软、硬件资源,适 用于要求较高的实时控制场合。它分为48引脚和 68引脚两种,以48引脚居多。 引脚说明: RXD/P2.1 TXD/P2.0:串行数据传出分发送和接受 引脚,同时也作为P2口的两条口线 HS1.0~HS1.3:高速输入器的输入端 HS0.0~HS0.5:高速输出器的输出端(有两个和 HS1共用) Vcc:主电源引脚(+5V) Vss:数字电路地引脚(0V) Vpd:内部RAM备用电源引脚(+5V)RST INT0/P3.2 INT1/P3.3 WR/P3.6 RD/P3.7 V SS

几种常用的单片机型号

当今单片机厂商琳琅满目,产品性能各异。针对具体情况,我们应选何种型号呢?首先,我们来弄清两个概念:集中指令集(CISC)和精简指令集(RISC)。采用CISC结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构。它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高。采用RISC结构的单片机数据线和指令线分离,即所谓哈佛结构。这使得取指令和取数据可同时进行,且由于一般指令线宽于数据线,使其指令较同类CISC单片机指令包含更多的处理信息,执行效率更高,速度亦更快。同时,这种单片机指令多为单字节,程序存储器的空间利用率大大提高,有利于实现超小型化。属于CISC结构的单片机有Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、台湾Win bond(华邦)W78系列、荷兰Philips的PCF80C51系列等;属于RISC结构的有Microchip公司的PIC系列、Silo 的Z86系列、Atmel的AT90S系列、韩国三星公司的KS57C系列4位单片机、台湾义隆的EM-78系列等。一般来说,控制关系较简单的小家电,可以采用RISC型单片机;控制关系较复杂的场合,如通讯产品、工业控制系统应采用CISC单片机。不过,RISC单片机的迅速完善,使其佼佼者在控制关系复杂的场合也毫不逊色。根据程序存储方式的不同,单片机可分为EPROM、OTP(一次可编程)、QTP(掩膜)三种。我国一开始都采用Rimless型单片机(片内无ROM,需片外配EPROM),对单片机的普及起了很大作用,但这种强调接口的单片机无法广泛应用,甚至走入了误区。如单片机的应用一味强调接口,外接I/O及存储

第1章 单片机各种封装介绍

单片机各种封装介绍 单片机实质上是一个芯片,封装形式有很多种,例如DIP(Dual In-line Package双列直插式封装)、SOP(Small Out-Line Package小外形封装)、PLCC(Plastic Leaded Chip Carrier带引线的塑料芯片封装)、QFP(Quad Flat Package塑料方型扁平式封装)、PGA(Pin Grid Array package插针网格阵列封装)、BGA(Ball Grid Array Package球栅阵列封装)等。其中,DIP 封装的单片机可以在万能板上焊接,其它封装形式的单片机须制作印制电路板(Printed Circuit Board,PCB),PGA和BGA一般用于超大规模芯片封装,单片机用得较少。 下面简单介绍一下常见的芯片封装形式。 1. DIP封装 DIP(Dual In-line Package)是指采用双列直插形式封装的集成电路芯片,绝大多数中小规模集成电路(IC)均采用这种封装形式,其引脚数一般不超过100个。DIP封装的芯片在从芯片插座上插拔时应特别小心,以免损坏引脚。DIP封装芯片如图1所示。 图1 DIP封装芯片 DIP封装具有以下特点: 》 (1)适合在PCB (印刷电路板)上穿孔焊接,操作方便。 (2)芯片面积与封装面积之间的比值较大,故体积也较大。 2. SOP封装 SOP(Small Out-Line Package小外形封装)是一种很常见的元器件形式。表面贴装型封装之一,引脚从封装两侧引出呈海鸥翼状(L 字形)。材料有塑料和陶瓷两种。SOP封装芯片如图2所示。 图2 SOP封装芯片 3. PLCC封装 PLCC(Plastic Leaded Chip Carrier带引线的塑料芯片封装)是表面贴装型封装之一,外形呈正方形,32脚封装,引脚从封装的四个侧面引出,呈丁字形,是塑料制品,外形尺寸比

AT89S51单片机中文资料

1 AT89S51是美国ATMEL 公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes 的可系统编程的Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash 程序存储器既可在线编程(ISP )也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL 公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 主要性能参数: ·与MCS-51产品指令系统完全兼容 ·4k 字节在系统编程(ISP )Flash 闪速存储器 ·1000次擦写周期 ·4.0-5.5V 的工作电压范围 ·全静态工作模式:0Hz -33MHz ·三级程序加密锁 ·128×8字节内部RAM ·32个可编程I /O 口线 ·2个16位定时/计数器 ·6个中断源 ·全双工串行UART 通道 ·低功耗空闲和掉电模式 ·中断可从空闲模唤醒系统 ·看门狗(WDT )及双数据指针 ·掉电标识和快速编程特性 ·灵活的在系统编程(ISP 字节或页写模式)

2 功能特性概述: A T89S51提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM ,32个I /O 口线,看门狗(WDT ),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,A T89S51可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM ,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 AT89S51方框图

常用芯片型号大全

常用芯片型号大全 4N35/4N36/4N37 "光电耦合器" AD7520/AD7521/AD7530/AD7521 "D/A转换器" AD7541 12位D/A转换器 ADC0802/ADC0803/ADC0804 "8位A/D转换器" ADC0808/ADC0809 "8位A/D转换器" ADC0831/ADC0832/ADC0834/ADC0838 "8位A/D转换器" CA3080/CA3080A OTA跨导运算放大器 CA3140/CA3140A "BiMOS运算放大器" DAC0830/DAC0832 "8位D/A转换器" ICL7106,ICL7107 "3位半A/D转换器" ICL7116,ICL7117 "3位半A/D转换器" ICL7650 "载波稳零运算放大器" ICL7660/MAX1044 "CMOS电源电压变换器" ICL8038 "单片函数发生器" ICM7216 "10MHz通用计数器" ICM7226 "带BCD输出10MHz通用计数器" ICM7555/7555 CMOS单/双通用定时器 ISO2-CMOS MT8880C DTMF收发器 LF351 "JFET输入运算放大器" LF353 "JFET输入宽带高速双运算放大器" LM117/LM317A/LM317 "三端可调电源" LM124/LM124/LM324 "低功耗四运算放大器" LM137/LM337 "三端可调负电压调整器" LM139/LM239/LM339 "低功耗四电压比较器"

LM158/LM258/LM358 "低功耗双运算放大器" LM193/LM293/LM393 "低功耗双电压比较器" LM201/LM301 通用运算放大器 LM231/LM331 "精密电压—频率转换器" LM285/LM385 微功耗基准电压二极管 LM308A "精密运算放大器" LM386 "低压音频小功率放大器" LM399 "带温度稳定器精密电压基准电路" LM431 "可调电压基准电路" LM567/LM567C "锁相环音频译码器" LM741 "运算放大器" LM831 "双低噪声音频功率放大器" LM833 "双低噪声音频放大器" LM8365 "双定时LED电子钟电路" MAX038 0.1Hz-20MHz单片函数发生器 MAX232 "5V电源多通道RS232驱动器/接收器" MC1403 "2.5V精密电压基准电路" MC1404 5.0v/6.25v/10v基准电压 MC1413/MC1416 "七路达林顿驱动器" MC145026/MC145027/MC145028 "编码器/译码器" MC145403-5/8 "RS232驱动器/接收器" MC145406 "RS232驱动器/接收器"

常见单片机芯片简介

3 常见单片机芯片简介 1) STC单片机技术。STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强; 2)PIC单片机。它是MICROCHIP公司的产品,其突出的特点是体积小、功耗低、精简指令集、抗干扰性好、可靠性高、有较强的模拟接口、代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片[2]。 3)EMC单片机。是台湾义隆公司的产品,有很大一部分与PIC 8位单片机兼容,且相兼容产品的资源相对比PIC的多,价格便宜,有很多系列可选,但抗干扰较差。 4)51单片机 (1)ATMEL单片机。ATMEl公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC结构、全静态工作方式、内载在线可编程Flash的单片机,也叫A VR单片机;(2)PHLIPIS 51PLC系列单片机。PHILIPS公司的单片机是基于80C51内核的单片机,嵌入了掉电检测、模拟以及片内RC振荡器等功能,这使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求;(3)TI公司单片机。德州仪器提供了TMS370和MSP430两大系列通用单片机.TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合;MSP430系列单片机是一种超低功耗、功能集成度较高的16位低功耗单片机,特别适用于要求功耗低的场合 5)HOLTEK单片机。台湾盛扬半导体的单片机,价格便宜,种类较多,但抗干扰较差,适用于消费类产品; 6)松翰单片机(SONIX)。SONIX是台湾松翰公司的单片机,大多为8位机,有一部分与PIC 8位单片机兼容,价格便宜,系统时钟分频可选项较多,有PMW ADC 内振内部杂讯滤波。缺点RAM空间过小,抗干扰较好; 4 八位单片机学习感想 通过对MCS-51、EMC系列、HT系列、PIC系列等八位单片机的学习与应用,对8位微处理器的特点有了较深的认识。

单片机及常用器件

【转】单片机常用典型外围器件2008-07-28 00:42 74系列常用器件 常用与门及与非门器件 MM54HC08/MM74HC08 MM54HC11/MM74HC11 MM54HC00/MM74HC00 常用或门及或非门器件 MM54HC32/MM74HC32 MM54HC02/MM74HC02 常用与或门及与或非门器件 MM54HC58/MM74HC58 MM54HC51/MM74HC51 常用总线驱动及收发器件 54LS244/DM74LS244 DM54LS245/DM74LS245 常用计数器 DM74LS90/DM74LS93 DM54LS193/DM74LS193 SN54HC590A/SN74HC590A 常用编码译码器件 MM54HC148/MM74HC148 MM54HC138/MM74HC138 MM54HC154/MM74HC154 存储器件 SRAM——IS61C256AH EPRAM——M2764A E2PRAM 24LC256 X2816C Flash存储器AT29C256 双口RAM——IDT70V05S FIFO存储器IDT72V36100 模数转换器件

逐次比较型A/D转换器 ADC0809 ADC0804 AD7810 并行比较型A/D转换器AD9048 半闪烁型高速A/D转换器 TLC5510 MAX113 型高精度A/D转换器 AD7710 ADS1100 输出及显示器件 LED驱动芯片 LED驱动芯片ICM7218 LED驱动芯片MAX7219 LED驱动芯片MC14489 LED驱动芯片MC14499 LCD器件 HS12232-9 LSD12864CT 传感器 温度传感器 LM35 DS18B20 语音芯片ISD2500 时钟芯片 DS1302 DS1616 其他传感器 MR513热线型半导体气敏元件MQ-303A酒精传感器 M007可燃性气体传感器264 常用可编程器件 可编程并行接口芯片8255A 可编程中断控制器82C59A 可编程计数器

51单片机常用芯片引脚图

常用芯片引脚图 一、 单片机类 1、MCS-51 芯片介绍:MCS-51系列单片机是美国Intel 公司开发的8位单片机,又可以分为多个子系列。 MCS-51系列单片机共有40条引脚,包括32 条I/O 接口引脚、4条控制引脚、2条电源引 脚、2条时钟引脚。 引脚说明: P0.0~P0.7:P0口8位口线,第一功能作为通用I/O 接口,第二功能作为存储器扩展时 的地址/数据复用口。 P1.0~P1.7:P1口8位口线,通用I/O 接口无第二功能。 P2.0~P2.7:P2口8位口线,第一功能作为通用I/O 接口,第二功能作为存储器扩展时传送高8位地址。 P3.0~P3.7:P3口8位口线,第一功能作为 通用I/O 接口,第二功能作为为单片机的控 制信号。 ALE/ PROG :地址锁存允许/编程脉冲输入信号线(输出信号) PSEN :片外程序存储器开发信号引脚(输出信号) EA/Vpp :片外程序存储器使用信号引脚/编程电源输入引脚 RST/VPD :复位/备用电源引脚 2、MCS-96 芯片介绍:MCS-96系列单片机是美国Intel 公司继MCS-51系列单片机之后推出的16位单 片机系列。它含有比较丰富的软、硬件 资源,适用于要求较高的实时控制场合。 它分为48引脚和68引脚两种,以48引 脚居多。 引脚说明: RXD/P2.1 TXD/P2.0:串行数据传出分发 送和接受引脚,同时也作为P2口的两条 口线 HS1.0~HS1.3:高速输入器的输入端 HS0.0~HS0.5:高速输出器的输出端(有 两个和HS1共用) Vcc :主电源引脚(+5V ) Vss :数字电路地引脚(0V ) Vpd :部RAM 备用电源引脚(+5V ) V REF :A/D 转换器基准电源引脚(+5V ) AGND :A/D 转换器参考地引脚 12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST RXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1V SS V CC P0.0/AD 0P0.1/AD 1 P0.2/AD 2P0.3/AD 3P0.4/AD 4P0.5/AD 5P0.6/AD 6P0.7/AD 7 EA/V PP ALE/PROG PSEN P2.7/A 15P2.6/A 14P2.5/A 13 P2.4/A 12P2.3/A 11P2.2/A 10P2.1/A 9P2.0/A 8803180518751

学习单片机常用的电子元件

学习单片机常用的电子元件 现在学习单片机,入门套件中主要用到2个型号:STC12C5A32S2和 STC12C4052AD,这两款芯片在我选择的时候是考虑了很多问题的综合选择。 所以用这款芯片就可以完成大部分的8位单片机的开发。如果你觉得接口不够 多,还可以选择贴片48脚的5A60S2,是目前STC单片机中的旗舰芯片了。 STC12C4052ADDatasheet:21icsearch/datasheet/STC12C4052AD/Z2Vpa3GTZg= =.html【点阵屏】点阵屏是很好的字母和汉字的显示屏。一般都是8*8的。组 成16*16时才可以显示汉字。其中15088和07088是常用的,红色几乎是最常 见的颜色,因为成本低。有条件的朋友可以买蓝色的,显示效果更酷。 15088Datasheet:21icsearch/datasheet/15088/Y2llZmmYaA==.html【时钟芯片】DS1302时钟芯片是电子爱好者最常用的时钟芯片,因为它的资料多,价格便 宜。使用1302时还需要加一个备用电池和32.768kHz的晶振。如果你想制作一 些时钟,用1302是好的选择。 DS1302Datasheet:21icsearch/datasheet/DS1302/ZGVmZm6X.html【温度传感器】DS18B20是一款单总线温度传感器,爱好者最常用的温度传感器。 Datasheet:21icsearch/datasheet/DS18B20/ZWVtb2mWYQ==.html【稳压芯片】 M7805是一款稳压芯片,可以把6~12V的电源变成5V电源供给单片机。如果 我们用的是5V的电源或是3节5号电池盒的话,就不需要这个稳压芯片了。 但是保险起见,备上2个也没有坏处。另外,LM1117-3.3V是稳定输出3.3V 的电压的,一般用于3V单片机使用的。 M7805Datasheet:21icsearch/datasheet/LM7805/ZmZubW2TYQ==.htmlLM1117D atasheet:21icsearch/datasheet/LM1117/ZmZsb2qWZA==.htmltips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

51单片机常用芯片引脚图

常用芯片引脚图 一、单片机类 1、MCS-51 芯片介绍:MCS-51系列单片机是美国Intel公司开发的8位单片机,又可以分为多个子系列。 MCS-51系列单片机共有40条引脚,包括32 条I/O接口引脚、4条控制引脚、2条电源引 脚、2条时钟引脚。 引脚说明: P0.0~P0.7:P0口8位口线,第一功能作为 通用I/O接口,第二功能作为存储器扩展时 的地址/数据复用口。 P1.0~P1.7:P1口8位口线,通用I/O接口 无第二功能。 P2.0~P2.7:P2口8位口线,第一功能作为 通用I/O接口,第二功能作为存储器扩展时 传送高8位地址。 P3.0~P3.7:P3口8位口线,第一功能作为 通用I/O接口,第二功能作为为单片机的控 制信号。 ALE/ PROG:地址锁存允许/编程脉冲输入信号线(输出信号) PSEN:片外程序存储器开发信号引脚(输出信号) EA/Vpp:片外程序存储器使用信号引脚/编程电源输入引脚 RST/VPD:复位/备用电源引脚 2、MCS-96 芯片介绍:MCS-96系列单片机是美国Intel公司继MCS-51系列单片机之后推出的16位单 片机系列。它含有比较丰富的软、硬件 资源,适用于要求较高的实时控制场合。 它分为48引脚和68引脚两种,以48引 脚居多。 引脚说明: RXD/P2.1 TXD/P2.0:串行数据传出分发 送和接受引脚,同时也作为P2口的两条 口线 HS1.0~HS1.3:高速输入器的输入端 HS0.0~HS0.5:高速输出器的输出端(有 两个和HS1共用) Vcc:主电源引脚(+5V) Vss:数字电路地引脚(0V) Vpd:内部RAM备用电源引脚(+5V) V REF:A/D转换器基准电源引脚(+5V) AGND:A/D转换器参考地引脚P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 V SS

单片机常用英语词汇资料

单片机常用英语单词 中文名称; 英文名称; ;简记术语 单片机; Single Chip Micocomputer or MicoControler Unit ; SCM or MCU 在线烧录(往芯片写入程序);In System Programming ; ISP 在线仿真;In Circuit Enulator ;ICE 复位;reset ;RST 编程选通使能端;Program Strobe Enable ; PSEN 看门狗;WatchDog 数据指针寄存器;Data Pointer Register; DP 特殊用途寄存器;Special Purpose Register; SPR PSW寄存器; PassWord Register; PSW 奇偶校检位P位; ParityBit 溢出位OV位; Overflow 寄存器组选择位; Register Select; RS(0/1) 进位校检位; 堆栈指针; StackPointer; SP 堆栈;stanck 推入;push 弹出;pop IE中断寄存器;Interrupt Register ; IE 溢出中断;Overflow Interrupt

计(时)数器;Timer 计数器高位;TimerHigh Bit ;TH 计数器低位; TimerLow Bit ;TL 计数器模式控制寄存器; Timer Model Control Register; TMOD 计数器控制寄存器; Timer Model Control Register; TCON 串行端口控制寄存器; Serial Control Regiter ; SCON 串行模式控制寄存器; Serial Model Control Register; SMOD 开始位;Start Bit 结束位;Stop Bit 字节数据高位;MSB 字节数据低位; LSB 传输控制寄存器; Pass Control Register; PCON 停止运行设置位; Power Down Bit; PD位 闲置模式设置位; Idel Model Set Bit; IDL位 辅助寄存器; AUXR 闲置模式下看门狗控制位; Watchdog idle model control bit; WDIDLE 看门狗复位; Watchdog reset 中断服务程序; Interruput Service Routine 宏; macro 寄存器组; Register Bank 中断优先级寄存器; Interrupt Register 波特率; Baud Rate 中断向量; interrupt vector

单片机引脚介绍(优选材料)

单片机引脚介绍 STC89C52 单片机引脚功能介绍 首先我们来认识一下51 单片机芯片的引脚图,具体功能在下面介绍。 单片机的40 个引脚大致可分为4 类:电源、时钟、控制和IO 引脚。 ⒈电源⑴ VCC - 芯片电源,接+5V;当然也有3.3V 供电的芯片。 ⑵ VSS - 接地端; ⒉时钟XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 ⒊控制线控制线共有4 根, ⑴ ALEPROG 地址锁存允许片内EPROM 编程脉冲(旧的AT89C51 用到,最新的51 芯片可以在线编程,一条USB 线搞定单片机,下面的说明不理解的可以不用看,因为最新的51 芯片都没有了VPP 功能了。) ① ALE 功能:用来锁存P0 口送出的低8 位地址 ② PROG 功能:片内有EPROM 的芯片,在EPROM 编程期间,此引脚输入编程脉冲。 ⑵ PSEN 外ROM 读选通信号。 ⑶ RSTVPD 复位备用电源。 ① RST(Reset)功能:复位信号输入端。 ② VPD 功能:在Vcc 掉电情况下,接备用电源。 ⑷ EAVpp 内外ROM 选择片内EPROM 编程电源。 ① EA 功能:内外ROM 选择端。 ② Vpp 功能:片内有EPROM 的芯片,在EPROM 编程期间,施加编程电源Vpp。 ⒋ IO 线 STC89C52 共有4 个8 位并行IO 端口:P0、P1、P2、P3 口,共32 个引脚。P3 口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为STC89C52 的芯片,下面我们就看一下如何给它连线。 1、电源:这当然是必不可少的了。单片机使用的是5V 电源,其中正极接40 管脚,负极(地)接20 管脚。 2、振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已 集成了振荡器,使用晶体振荡器,接18、19 脚。只要买来晶体震荡器,电容,连上就能了,按图1 接上即可。 3、复位管脚:按图1 中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能 中介绍。 4、EA 管脚:EA 管脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工 作了。 我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED 必须要和单 片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了 刚才用掉的5 个管脚,还有35 个, 我们将这个LED 和1 脚相连。(见图1,其中R1 是限流电阻) 〈单片机接线图〉图1 按照这个图的接法,当1 脚是高电平时,LED 不亮,只有1 脚是低电平时,LED 才发亮。 因此要1 脚我们要能够控制,也就是说,我们要能够让1 管脚按要求变为高或低电平。即然 我们要控制1 脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51 芯 片的INTEL 公司已经起好了,就叫它P1.0,这是规定,不能由我们来更改。 名字有了,我们又怎样让它变'高'或变'低'呢?叫人做事,说一声就能,这叫发布命令,要 计算机做事,也得要向计算机发命令,计算机能听得懂的命令称之为计算机的指令。让一个 管脚输出高电平的指令是SETB,让一个管脚输出低电平的指令是CLR。因此,我们要P1.0 输出高电平,只要写SETB P1.0,要P1.0 输出低电平,只要写CLR P1.0 就能了。 现在我们已经有办法让计算机去将P10 输出高或低电平了,但是我们怎样才能计算机执 行这条指令呢?总不能也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。第一,计算机看不懂SETB CLR 之类的指令,我们得把指令翻译成计算机能懂的方式,再让计 算机去读。计算机能懂什么呢?它只懂一样东西——数字0、1。因此我们得把SETB P1.0 变为(D2H,90H ),把CLR P1.0 变为(C2H,90H ),至于为什么是这两个数字,这也是由 51 芯片的设计者--INTEL 规定的,我们暂不去研究。第二步,在得到这两个数字后,怎样让这两个数字进入单片机的内部呢?这要借助于一个硬件工具编程器。如果你还不知道是什么 是编程器,我来介绍一下,就是把你在电脑上写出来来的代码用汇编器等编译器生成的一个 目标烧写到单片机的eprom 里面去的工具,80c51 这种类型的单片机编程是一件很麻烦的事情,必要要先装到编程器上编程后才能在设备上使用,而目前最新的STC89C52 单片机居然 在线编程(isp)功能,不用拔出来利用简单的电路就可以实现把代码写入单片机内部,我 们将编程器与电脑连好(实验板内部已集成编程器),运行编程器的软件,然后在编缉区内写 入(D2H,90H)。 (图2) 写入程序后,我们看什么灯都不亮?这就对了,因为我们写进去的指令就是让P10 输出高电平,灯当然不亮,要是亮就错了。现在我们重新回到编程软件上,将编缉区的内容改为 (C2H,90H),也就是CLR P1.0,写入单片机内,现在好了,灯亮了。因为我们写入的() 就是让P10 输出低电平的指令。这样我们看到,硬件电路的连线没有做任何改变,只要改变 写入单片机中的内容,就能改变电路的输出效果。

常用单片机及其它芯片引脚图

一、 单片机类 1、MCS‐51 芯片介绍:MCS‐51系列单片机是美国Intel公司开发的8位单片机,又可以分为多个子系列。 MCS‐51系列单片机共有40条引脚,包括32 条I/O接口引脚、4条控制引脚、2条电源引脚、2条时钟引脚。 引脚说明: P0.0~P0.7:P0口8位口线,第一功能作为 通用I/O接口,第二功能作为存储器扩展时的地址/数据复用口。 P1.0~P1.7:P1口8位口线,通用I/O接口无第二功能。 P2.0~P2.7:P2口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时传送高8位地址。 P3.0~P3.7:P3口8位口线,第一功能作为通用I/O接口,第二功能作为为单片机的控制信号。 ALE/ PROG:地址锁存允许/编程脉冲输入信号线(输出信号) PSEN:片外程序存储器开发信号引脚(输出信号) EA/Vpp:片外程序存储器使用信号引脚/编程电源输入引脚 RST/VPD:复位/备用电源引脚 2、MCS‐96 芯片介绍:MCS‐96系列单片机是美国Intel公司继MCS‐51系列单片机之后推出的16位单 片机系列。它含有比较丰富的软、硬件资源,适用于要求较高的实时控制场合。它分为48引脚和68引脚两种,以48引脚居多。 引脚说明: RXD/P2.1 TXD/P2.0:串行数据传出分发 送和接受引脚,同时也作为P2口的两条口线 HS1.0~HS1.3:高速输入器的输入端 HS0.0~HS0.5:高速输出器的输出端(有 两个和HS1共用) Vcc:主电源引脚(+5V) Vss:数字电路地引脚(0V) Vpd:内部RAM备用电源引脚(+5V) VREF:A/D转换器基准电源引脚(+5V) AGND:A/D转换器参考地引脚

单片机资料百度盘

一、51单片机 1、祥云51单片机学习光盘(视频教程、例程、操作系统)适合初学者 资料下载链接:https://https://www.doczj.com/doc/2d10672549.html,/cJzLQdrBfp2KD 访问密码8f77 2、普中51单片机学习光盘 https://www.doczj.com/doc/2d10672549.html,/s/1pK0c4BL 3、郭天祥----十天征服单片机 https://www.doczj.com/doc/2d10672549.html,/s/1i4N2Hrn 4、新概念51单片机C语言教程.入门、提高、开发(500页,郭天祥著) https://https://www.doczj.com/doc/2d10672549.html,/cYAYJtgFJNUup 访问密码9eb1 5、力天电子51单片机视频教程 https://www.doczj.com/doc/2d10672549.html,/s/1hrulifU 6、天狼星51单片机视频教程 链接:https://www.doczj.com/doc/2d10672549.html,/s/1pKsD3b9 密码:scy4 8、STC12C5A60S2例程 https://https://www.doczj.com/doc/2d10672549.html,/cjPpH7uBBbIr8 访问密码a471 二、AVR单片机 1、郭天祥--十天学会AVR单片机视频教程 https://https://www.doczj.com/doc/2d10672549.html,/cwVbV5mWw9pxk 访问密码34ba 1、锐志电子AVR单片机视频教程

https://https://www.doczj.com/doc/2d10672549.html,/cweRHU4JUSypY 访问密码64b2 2、手把手AVR单片机视频教程 https://https://www.doczj.com/doc/2d10672549.html,/cm926G3YrWKhG 访问密码dccb 3、DY_miniAVR单片机光盘资料 https://https://www.doczj.com/doc/2d10672549.html,/c3fIFUrWu4LEG 访问密码0036 4、AVR代码生成器 https://https://www.doczj.com/doc/2d10672549.html,/c3fILqj5h3aT9 访问密码2061 5、AVR开发工具 https://https://www.doczj.com/doc/2d10672549.html,/c3fI3satMGmSh 访问密码d356 6、AVR例程 https://https://www.doczj.com/doc/2d10672549.html,/c3fIFfSgCzhWE 访问密码48c1 三、msp430单片机 1、郭天祥---十天学会msp430单片机 https://https://www.doczj.com/doc/2d10672549.html,/cYAYvyxDBaHgr 访问密码4dca 2、力天msp430单片机视频教程 https://https://www.doczj.com/doc/2d10672549.html,/cYAY83HwRumTn 访问密码d66c 3、msp430 c语言.pdf https://https://www.doczj.com/doc/2d10672549.html,/cYAY577Ucc7b2 访问密码86b3 4、msp430教程.pdf https://https://www.doczj.com/doc/2d10672549.html,/cYAYtXwXYesgC 访问密码ccbf 5、IAR C 430标准库函数.pdf https://https://www.doczj.com/doc/2d10672549.html,/cYAYnInwURHZx 访问密码52ef

常用芯片引脚图

您的数字ID 是:463099 您的密码是:1.8667 附录三 常用芯片引脚图 一、 单片机类 1、MCS-51 芯片介绍:MCS-51系列单片机是美国Intel 公司开发的8位单片机,又可以分为多个子系列。 MCS-51系列单片机共有40条引脚,包括32 条I/O 接口引脚、4条控制引脚、2条电源引 脚、2条时钟引脚。 引脚说明: P0.0~P0.7:P0口8位口线,第一功能作为通用I/O 接口,第二功能作为存储器扩展时 的地址/数据复用口。 P1.0~P1.7:P1口8位口线,通用I/O 接口无第二功能。 P2.0~P2.7:P2口8位口线,第一功能作为通用I/O 接口,第二功能作为存储器扩展时传送高8位地址。 P3.0~P3.7:P3口8位口线,第一功能作为 通用I/O 接口,第二功能作为为单片机的控 制信号。 ALE/ PROG :地址锁存允许/编程脉冲输入信号线(输出信号) PSEN :片外程序存储器开发信号引脚(输出信号) EA/Vpp :片外程序存储器使用信号引脚/编程电源输入引脚 RST/VPD :复位/备用电源引脚 2、MCS-96 芯片介绍:MCS-96系列单片机是美国Intel 公司继MCS-51系列单片机之后推出的16位单 片机系列。它含有比较丰富的软、硬件 资源,适用于要求较高的实时控制场合。 它分为48引脚和68引脚两种,以48引 脚居多。 引脚说明: RXD/P2.1 TXD/P2.0:串行数据传出分发 送和接受引脚,同时也作为P2口的两条 口线 HS1.0~HS1.3:高速输入器的输入端 HS0.0~HS0.5:高速输出器的输出端(有 两个和HS1共用) Vcc :主电源引脚(+5V ) 12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST RXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1V SS V CC P0.0/AD 0P0.1/AD 1 P0.2/AD 2P0.3/AD 3P0.4/AD 4P0.5/AD 5P0.6/AD 6P0.7/AD 7 EA/V PP ALE/PROG PSEN P2.7/A 15P2.6/A 14P2.5/A 13 P2.4/A 12P2.3/A 11P2.2/A 10P2.1/A 9P2.0/A 8803180518751

89C51单片机中文资料

89C51单片机中文资料 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.主要特性: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器·5个中断源 ·可编程串行通道

·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 2.管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,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

单片机简介 AT89C51中文资料

4.1 单片机介绍: 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。 单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积

相关主题
文本预览
相关文档 最新文档