您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 62C51精简版教程
第一课AT89S52的引脚功能介绍一、PDIP封装引脚图:二、引脚功能介绍P0:漏极开路的双向IO口,使用时,当电流流出需外加上拉电阻(I流入大、流出小)外部地址数据总线,可带八个TTL负载P1:准双向口(当作输入口用时,须将IO口置1(P1=0XFF;i=P1;)),可带四个TTL负载P1.0:T2定时计数器2的外部脉冲输入及时钟输出P1.1:T2EX定时计数器2的捕捉、自动重装的触发输入及减法计数控制P1.5:MOSI,主动输出从动输入引脚,用于flash(闪存)编程P1.6:MISO,主动输入从动输出引脚,用于flash编程P1.7:SCK,同步时钟,用于flash编程ISP编程时用P2:准双向口,可带四个TTL负载外部地址总线高八位P3:准双向口,可带四个TTL负载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,外部数据存储器的读选能信号VCC:电源正极,工作电压范围:4.0v-5.5v。GND:地RST:复位端,高电平有效XTAL1(clockin)、XTAL2(clockout):时钟引脚,外接晶振和谐振电容(5-47PF),晶振的谐振频率范围:0hz--33Mhz,用作工控产品时不超过6MHZ。常用晶振型号:4MHZ,6MHZ,8MHZ,16MHZ,12MHZ,24MHZ,5.5296MHZ,11.0592MHZ,22.1184MHZ,33.1776MHZEA/Vpp:外部程序存储器的选通信号/编程电压输入EA=0:使用外部程序存储器EA=1:先使用内部程序存储器,后使用外部程序存储器ALE/PROG:外部低八位地址总线锁存信号/编程脉冲输入,Fosc/6PSEN:外部程序存储器的读选通信号三、最小系统工作电路四、ISP下载线相关针脚:67894020MOSIMISOSCKRSTVCCGND第二课51的存储器结构(89s52为例)一、程序存储器(ROM)code(0x0000-0xffff)1、类型:FLASH(闪存)ISPcode区2、作用:存放程序代码3、容量:8KB=8*1024字节=8192=2^138wei4、地址编码:16位二进制编码00000000000000000000H00x000000000000000000010001H0x00010000000000000x000200001111111111110FFFH409589s5100011111111111111FFFH819189s520x1fff11111111111111110FFFFH64K89E5160xffff2^16=2^6*2^10=2^6K=64K5、功能分区:0000H-0002H,启动单元,复位中断入口(中断矢量)0003H外部中断0入口0000BH定时中断0入口10013H外部中断1入口2001BH定时中断1入口30023H串行中断入口4002bh定时中断2入口50100H主程序区(预留32个中断入口)ORG0000HLJMPMAIN;转向主程序ORG0003HLJMPZD0;转向中断0程序ORG0023HLJMPCS;转向串行中断程序ORG0033H;ORG定义程序存放的首地址MAIN:;主程序zd0:cs:二、数据存储器(RAM)(文件寄存器)1、类型:静态数据存储器2、作用:存放临时数据idata3、容量:256字节=2^80X00-0Xff4、地址编码:八位二制表示00000000000hMOVR0,#0ffh127011111117fhS51MOVA,@R0MOVA,0FFH255111111110ffhS52mov30H,#05Hmov7fh,#01h5、功能分区:1)00h-1fh,工作寄存器区(32)00HR008HR010HR018HR001HR109HR111HR107HR70FHR717HR71FHR7RS1=0RS1=0RS1=1RS1=1RS0=0RS0=1RS0=0RS0=1CLRRS1CLRRS1CLRRS0SETBRS0选择当前寄存器组using0选择当前寄存器组02)20H-2FH,位寻址区bdataMOV00H,#91HCLR00H.016*8位=128(位地址:00H-7FH)MOV20H,#91HCLR20H.020H.720H.620H.520H.420H.320H.220H.120H.0=1001000107h00h21H.721H.621H.521H.421H.321H.221H.121H.00fh08h22H.722H.622H.010H2FH.77FH3)30H-7FH,用户RAM区,缓冲区或是堆栈区(RAM07h)4)80-ffh,高128单元,只能间接寻址6、51变量的存贮类型与其数据存储器的关系内部RAM00h-7fhdata(直接寻址)unsignedchardatai=3;内部RAM20h-2fhbdata(位寻址)内部RAM00h-ffhidata(间接寻址)外部RAM00H-ffhpdataMOVXA,@R0MOV@R0,A外部RAM0000H-ffffhxdataMOVXA,@DPTR三、51特殊功能寄存器(SFR)P0(80H)P1(90H)P2(A0H)P3(B0H)10000000P0=0X55ACC(E0H)B(F0H)PSW(D0H)SP(81H)DPL(82H)DPH(83H)IE(A8H)IP(B8H)TCON(88H)TMOD(89H)TL0(8AH)TL1(8BH)TH0(8CH)TH1(8DH)SCON(98H)SBUF(99H)PCON(87H)在SFR中,地址以0或是8结尾的,可以位寻址,其位地址从字节地址开始P0P0.7P0.6P0.5P0.4P0.4P0.2P0.1P0.087H81H80HACC:累加器作用:运算数据传送数据转换ADDACC,#10ACC=246+1011110110MOVP1,A1000100001111110MOVCA,@A+DPTRB:B寄存器作用:乘除法运算a=i*j;MULABDIVABa=i/10sp:堆栈指针作用:存放栈顶,保护临时数据,dptr:(dph+dpl)数据指针作用:数据传送数据转换PSW:程序状态字7011110100CYACF0RS1RS0OV-P00001010CY:进位标志位00000000AC:辅助进位标志位,加法运算时,低四位向高四位有进位为1F0:用户标志位RS1RS0:当前寄存器组选择位OV:溢出标志位OV=CY^C67=1^0=1P:寄偶校验位(偶校验,由ACC中1的个数决定的,若为寄数个1,则P=1,反之为0)PC:程序指针(0000H)作用:存放即将执行指令的首地址(ROM)四、51的时序振荡频率:Fosc振荡(时钟)周期:T=1S/Fosc机器周期:Tfr(Tcyc)=12*1s/Fosc(Fosc晶振的频率)Tfr=12*1s/(12*1000000)=1s/1000000=1usFosc=4mTfr=Tcyc指令周期:LJMPMAIN2Tfrnop1TfrMULAB4Tfr3us五、51的工作方式连续运行单步运行空闲方式:CPU停止工作,睡眠方式掉电保护方式:RAM工作编程方式:校验方式:复位方式:P0P1P2P3全为高电平SP=07H其余大都00Hpc=0000h第三课C51的语法基础1、数据类型(1)基本类型00000001+1字符型(8位)-1100000011111111011111111-1有符号字符型(char)-128~+1271000000001111111*无符号字符型(unsignedchar)0-2550000000011111111整型(16位)有符号整型(int)-32768~+32767*无符号整型(unsignedint)0~65535*位类型(1位)(bit)长整型(32位)有符号长整型(long(int))无符号长整型(unsignedlong(int))单精度实型(float)(32)双精度实型(double)(64)(2)构造类型数组类型(array)结构体(struct)共用体(union)枚举类型(enum)(3)指针类型(*、&)24位(4)空类型(void)2、常量固定不变的量,称为常量,通常用大写字符串表示常量的定义:#define常量名常数表达数#defineSHANGXIAN242#defineucunsignedchar#defineuiunsignedint3、变量变量的定义:数据类型存贮类型变量名;unsignedintdatai;unsignedcharxdataj;变量的存贮类型有时可以省略,即为系统默认类型全局变量、局部变量4、C51的存贮类型*data:内部RAM区0x00~0x7f单元,128字节;ramxdata:外部RAM区0x0000~0xffff单元,64K*code:ROM区0x0000~0xffff单元,64K0x0000-0x1fff,flashidata:内部RAM区0x00~0xff单元,256字节*bdata:内部RAM区0x20~0x2f单元,16字节允许位寻址pdata:外部RAM区当P2口固定0x00~0xff单元,分页256字节5、C51中特殊功能寄存器(SFR)的定义IE:0XA8IP:0XB8TCON:0X88TMOD:0X89TH0:0X8CTL0:0X8ATH1:0X8DTL1:0X8BSCON:0X98SBUF:0X99PCON:0X87TL2:0XCCTH2:0XCDsfr特殊功能寄存器名称=特殊功能寄存器地址;sfrIE=0XA8;sfr16特殊功能寄存器名=低八位特殊功能寄存器地址;sfr16TMR2=0XCC;T2则为16位,包括TH2及TL2注:必须是高八位与低八位寄存器地址连续才能用sfr16定义注:#includereg52.h,则已定义6、C51中并行I0口的定义(1)CPU自带并口P0、P1、P2、P3,用sfr定义P0:0x80P1:0x90P2:0xA0P3:0xB0sfrP0=0x80;注:reg52.h中已定义(2)外扩并口#includeabsacc.h#defineIO口名称XBYTE[IO口地址]#includeabsacc.h#definePA8255XBYTE[0X7C00]#definePB8255XBYTE[0X7D00]7、C51中特殊功能位及位变量的定义(1)特殊功能位的定义sbit位名称=位地址;在特殊功能寄存器中,地址以“0”或是“8”结尾的SFR才能定义特殊功能位IEEAXET2ESET1EX1ET0EX0(0XA8)sbitEA=IE^7;sbitEX0=IE^0;sbitEX0=0XA8^0;sbitEX0=0XA8;sbitEA=0XAF;sbitEX1=0xAA;sbitEX1=IE^2;sbitEX1=0XA8^2;sbitled=P1^0;sbitbee=P1^7;(2)位变量的定义bit变量名;bitbaojing;baojing=0;(3)在字节变量中定义位变量#defineucharunsignedcharucharbdatakk;kk=0x33;kk=00110011baojing=1;sbitbaojing=kk^6;第四课C51的语法基础之C51运算符1、算术运算符:+-*/%(求余运算)a=13b=4c=a/b=3d=a%b=1a=13b=a/10c=a%10x=245a=x/100b=x%100/10c=x%10a=3b=4x=a*10+ba=3b=4c=5x=a*100;x=x+b*10;x=x+c;ih=12il=11i=ih*100+ili=0x12j=0x34a=i*256+j(a=i*0x100+j)a=0x1234
本文标题:62C51精简版教程
链接地址:https://www.777doc.com/doc-3075239 .html