




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一课 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(clock in)、XTAL2(clock out):时钟引脚,外接晶振和谐振电容(5-47PF),晶振的谐振频率范围:0hz-33Mhz,用作工控产品时不超过6MHZ。常用晶振型号: 4MHZ,6MHZ,8MHZ,16MHZ,12MHZ,24MHZ,5.5296MHZ,11.0592MHZ,22.1184MHZ,33.1776 MHZEA/Vpp:外部程序存储器的选通信号/编程电压输入EA=0:使用外部程序存储器EA=1:先使用内部程序存储器,后使用外部程序存储器ALE/PROG:外部低八位地址总线锁存信号/编程脉冲输入,Fosc/6PSEN:外部程序存储器的读选通信号 三、最小系统工作电路 四、ISP下载线相关针脚: 6 7 8 9 40 20 MOSI MISO SCK RST VCC GND第二课 51的存储器结构(89s52为例)一、程序存储器(ROM) code (0x0000-0xffff) 1、类型:FLASH(闪存) ISP code 区 2、作用:存放程序代码3、容量:8KB=8*1024字节=8192=213 8 wei 4、地址编码:16位二进制编码 0000 0000 0000 0000 0000H 0 0x0000 0000 0000 0000 0001 0001H 0x0001 0000 0000 0000 0x0002 0000 1111 1111 1111 0FFFH 4095 89s51 0001 1111 1111 1111 1FFFH 8191 89s52 0x1fff1111 1111 1111 1111 0FFFFH 64K 89E516 0xffff 216=26*210=26K=64K 5、功能分区:0000H-0002H,启动单元,复位中断入口 (中断矢量) 0003H 外部中断0入口 0 000BH 定时中断0入口 1 0013H 外部中断1入口 2 001BH 定时中断1入口 3 0023H 串行中断入口 4 002bh 定时中断2入口 5 0100H 主程序区(预留32个中断入口) ORG 0000H LJMP MAIN ;转向主程序 ORG 0003H LJMP ZD0 ;转向中断0程序 ORG 0023H LJMP CS ;转向串行中断程序 ORG 0033H ;ORG 定义程序存放的首地址 MAIN: ;主程序 zd0: cs: 二、数据存储器(RAM) (文件寄存器) 1、类型:静态数据存储器 2、作用:存放临时数据 idata 3、容量:256字节=28 0X00-0Xff 4、地址编码:八位二制表示 0 0000 0000 00h MOV R0,#0ffh 127 0111 1111 7fh S51 MOV A,R0 MOV A,0FFH 255 1111 1111 0ffh S52 mov 30H,#05H mov 7fh,#01h5、功能分区:1)00h-1fh,工作寄存器区(32) 00H R0 08H R0 10H R0 18H R0 01H R1 09H R1 11H R1 07H R7 0FH R7 17H R7 1FH R7 RS1=0 RS1=0 RS1=1 RS1=1 RS0=0 RS0=1 RS0=0 RS0=1 CLR RS1 CLR RS1 CLR RS0 SETB RS0 选择当前寄存器组 using 0 选择当前寄存器组0 2)20H-2FH,位寻址区 bdata MOV 00H,#91H CLR 00H.016*8位=128(位地址:00H-7FH) MOV 20H,#91H CLR 20H.020H.7 20H.6 20H.5 20H.4 20H.3 20H.2 20H.1 20H.0=1001 0001 07h 00h 21H.7 21H.6 21H.5 21H.4 21H.3 21H.2 21H.1 21H.0 0fh 08h 22H.7 22H.6 22H.0 10H 2FH.7 7FH 3)30H-7FH,用户RAM区,缓冲区或是堆栈区(RAM 07h) 4)80-ffh,高128单元,只能间接寻址6、51变量的存贮类型与其数据存储器的关系 内部RAM 00h-7fh data (直接寻址) unsigned char data i=3;内部RAM 20h-2fh bdata(位寻址)内部RAM 00h-ffh idata(间接寻址)外部RAM 00H-ffh pdata MOVX A,R0 MOV R0,A外部RAM 0000H-ffffh xdata MOVX A,DPTR三、51特殊功能寄存器(SFR)P0(80H) P1(90H) P2(A0H) P3(B0H) 1000 0000 P0=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结尾的,可以位寻址,其位地址从字节地址开始P0 P0.7 P0.6 P0.5 P0.4 P0.4 P0.2 P0.1 P0.0 87H 81H 80HACC:累加器作用:运算 数据传送 数据转换ADD ACC,#10 ACC=246+10 11110110 MOV P1,A 10001000 01111110MOVC A,A+DPTRB: B寄存器作用:乘除法运算 a=i*j;MUL AB DIV AB a=i/10sp: 堆栈指针作用:存放栈顶,保护临时数据,dptr:(dph+dpl)数据指针作用:数据传送 数据转换PSW:程序状态字 7 0 11110100CY AC F0 RS1 RS0 OV - P 00001010CY:进位标志位 00000000AC:辅助进位标志位,加法运算时,低四位向高四位有进位为1F0:用户标志位RS1 RS0 :当前寄存器组选择位OV:溢出标志位 OV=CYC67=10=1 P:寄偶校验位 (偶校验,由ACC中1的个数决定的,若为寄数个1,则P1,反之为0) PC:程序指针(0000H)作用:存放即将执行指令的首地址(ROM)四、51的时序 振荡频率:Fosc振荡(时钟)周期:T=1S/Fosc 机器周期:Tfr(Tcyc)=12*1s/Fosc (Fosc晶振的频率) Tfr=12*1s/(12*1000000)=1s/1000000=1us Fosc=4m Tfr=Tcyc 指令周期:LJMP MAIN 2Tfr nop 1Tfr MUL AB 4Tfr 3us 五、51的工作方式 连续运行 单步运行 空闲方式:CPU停止工作,睡眠方式掉电保护方式:RAM工作编程方式:校验方式:复位方式:P0 P1 P2 P3 全为高电平 SP=07H 其余大都00H pc=0000h第三课 C51的语法基础1、数据类型 (1)基本类型 0000 0001 +1 字符型(8位) -1 1000 0001 1111 1110 1111 1111 -1 有符号字符型(char) 128127 1000 0000 0111 1111 *无符号字符型(unsigned char ) 0255 0000 0000 1111 1111 整型(16位) 有符号整型(int) -3276832767 *无符号整型(unsigned int) 065535 *位类型(1位)(bit) 长整型(32位) 有符号长整型(long (int)) 无符号长整型(unsigned long (int)) 单精度实型(float)(32) 双精度实型(double)(64) (2)构造类型 数组类型(array) 结构体(struct) 共用体(union) 枚举类型(enum) (3)指针类型 (*、&) 24位 (4)空类型(void)2、常量 固定不变的量,称为常量,通常用大写字符串表示 常量的定义:define 常量名 常数表达数 define SHANGXIAN 242 #define uc unsigned char #define ui unsigned int3、变量 变量的定义:数据类型 变量名; unsigned int data i; unsigned char xdata j; 变量的存贮类型有时可以省略,即为系统默认类型 全局变量、局部变量4、C51的存贮类型 * data :内部RAM区0x000x7f单元,128字节;ram xdata:外部RAM区0x00000xffff单元,64K * code :ROM区0x00000xffff单元,64K 0x0000-0x1fff,flash idata:内部RAM区0x000xff单元,256字节 * bdata:内部RAM区0x200x2f单元,16字节允许位寻址 pdata:外部RAM区当P2口固定0x000xff单元,分页256字节 5、C51中特殊功能寄存器(SFR)的定义 IE:0XA8 IP:0XB8 TCON:0X88 TMOD:0X89 TH0:0X8C TL0:0X8A TH1:0X8D TL1:0X8B SCON:0X98 SBUF:0X99 PCON:0X87 TL2:0XCC TH2:0XCD sfr 特殊功能寄存器名称特殊功能寄存器地址; sfr IE=0XA8; sfr16 特殊功能寄存器名低八位特殊功能寄存器地址; sfr16 TMR2=0XCC; T2则为16位,包括TH2及TL2 注:必须是高八位与低八位寄存器地址连续才能用sfr16定义 注:include ,则已定义6、C51中并行I0口的定义 (1)CPU自带并口P0、P1、P2、P3,用sfr定义 P0:0x80 P1:0x90 P2:0xA0 P3:0xB0 sfr P0=0x80; 注:中已定义 (2)外扩并口 #include define IO口名称 XBYTE IO口地址 #include define PA8255 XBYTE 0X7C00 define PB8255 XBYTE 0X7D007、C51中特殊功能位及位变量的定义 (1)特殊功能位的定义 sbit 位名称位地址; 在特殊功能寄存器中,地址以“0”或是“8”结尾的SFR才能定义特殊功能位 IE EA X ET2 ES ET1 EX1 ET0 EX0 (0XA8) sbit EA=IE7; sbit EX0=IE0; sbit EX0=0XA80;sbit EX0=0XA8; sbit EA=0XAF; sbit EX1=0xAA; sbit EX1=IE2; sbit EX1=0XA82; sbit led=P10; sbit bee=P17; (2)位变量的定义 bit 变量名; bit baojing; baojing=0; (3)在字节变量中定义位变量 #define uchar unsigned char uchar bdata kk; kk=0x33; kk=00110011 baojing=1; sbit baojing=kk6; 第四课 C51的语法基础之C51运算符 1、算术运算符: - * / %(求余运算) a=13 b=4 c=a/b=3 d=a%b=1 a=13 b=a/10 c=a%10 x=245 a=x/100 b =x%100/10 c=x%10 a=3 b=4 x=a*10+b a=3 b=4 c=5 x=a*100; x=x+b*10; x=x+c; ih=12 il=11 i=ih*100+il i=0x12 j=0x34 a=i*256+j (a=i*0x100+j) a=0x1234 a=0x03 b=0x04 x=a*16+b (x=a*0x10+b) x=16 二进制格式: x=00010000b=0x10 83 1010011 0x53 BCD码十进制格式:x=00010110b=0x16 10000011 0x83 a=x/0x10=1取高四位 b=x0x10=6 取低四位 数据 ASCII BCD码 二进制 0 00110000=0x30 0000 0000 1 00110001=0x31 0001 0001 2 00110010 0010 0010 9 00111001=0x39 1001 1001 10 00110001 00110000 00010000 1010 15 00010101 1111 16 00110001 00110110 00010110 00010000 10011001 01100011 10010110 01100000 96 0x96 0x60 a为BCD码转ASCII码 a=a+0x30 a=a+0 2、逻辑运算符:&(与) |(或) !(非) 非“0”即为“1” a=3 b=4 c=a&b ?c=1; c=a|b ?c=1; 0000 0001 c=!a ?c=0; 3、关系运算: = =(测试等于) !=(测试不等于) a=3 b=4 c=ab; c=0 c=(b=a); c=0 c=b!=a; c=1 c=b=!a;c=0 4、位运算:&(按位与) |(按位或) (按位取反) (异或) (右移)(舍弃低位,高位补零) a=3 b=4 c=a&b; c=0x00; 00000011 c=a|b; c=0x07; 00000100 c=a; c=11111100 00000111 c=ab; c=00000111 1111 1110 xxxx xxxx xxxx xxx /x P1=0x01; 0000 0001 (与0相异或保持不变,与1相异或取反) P1&=0xfe; P1.0清零,其它位保持不变 P1|=0x01; P1.0置1,其它位保持不变 a=0x83 c=a1 c=0x06 10000011 00000110 c=a2; c=0x20 00100000 #inclue a=0x83 c=_crol_(a,1) ;将c=字符型a的值循环左移一位 ?c=0x07 irol ;将i整型a的值循环左移一位 lrol ;将前面的l长整型a的值循环左移一位 ;后面的l表示左移,r表示右移 c=_cror_(a,1) ;将a的值循环右移一位 ?c=0xc1 5、自增与自减运算 i+ i- +i -i a=3 b=a+; b=+a; b=3 b=4 a=4 a=4 a=3 b=a-; b=-a; b=3 b=2 a=2 a=2 6、复合运算 += -= *= /= %=&= |= = = A=0x33; a=a+0x30; a+=0x30; 00110011 a=a&0x01; a&=0x01; 00000001 取a的最低位 xxxx xxxx a&=0x80 10000000 取a的最高位 0000 0001 a=a|0x80; a|=0x80; 10110011 最高位置1 a=a1; a=1; 01100110 xxxx xxxxP1&=0xfc;/1111 1100P1|=0x80 ;/1000 0000第五课 C51的语法基础之C51语句条件语句:(1)if语句 if(条件表达式)语句; 表达式为真执行语句,为假不执行(2)if(条件表达式)语句1;else 语句2; 表达式为真执行语句1,为假执行语句2(3)if(条件表达式1)语句1; else if(条件表达式2)语句2; else if(条件表达式3)语句3;(4)if(条件表达式1) if(条件表达式2)语句1;else 语句2 else if(条件表达式3)语句3;else 语句4 (5)switch case 语句 switch (表达式) case 常数表达式1:语句1;break; case 常数表达式2:语句2;break; case 常数表达式3:语句3;break; case 常数表达式n:语句n;break; default:语句n+1; (6)while语句 while(表达式)语句; 当表达式为真时循环执行语句,为假退出(7)do-while语句 do 语句;while(表达式); 先执行语句,再判断条件是否成立,若成立则继续 循环执行,若不成立则退出循环。(8)for语句 for(表达式1;表达式2;表达式3)语句; 先执行表达式1; 再判断表达式2, 若表达式2成立:则执行语句,再执行表达式3,再循环第二步; 若表达式2不成立则退出循环; 表达式1通常控制变量初始化, 表达式3通常是对控制变量的改变; for( ;表达式2;表达式3)语句; for( ;表达式2; )语句; for( ; ; )语句; for(表达式1; ;表达式3)语句;(9)break语句 break; 退出循环层(10)continue; 退出本次循环(11)goto语句 跳转指令 注:不能跨函数转移(12)return语句 用于函数调用是返回参数 return(表达式); 第六课 keil的使用1、 keil软件的使用(1) 新建项目(2) 新建文件并保存 (3) 将C源程序文件添加到项目文件中(4) 编辑并编译程序 (5) 生成.hex(十六格式文件),第七课 C51的语法基础之C51语句的构造数据类型1、数组类型 (1)一维数组的定义 数据类型 存贮类型 数组名整型表达式; uchar code duanma3=0xfe,0x0c,0x77 ; uchar xianfan6; (2)引用 数组名下标; P1duanma2; (3)二维数组的定义 数据类型 存贮类型 数组名整型表达式1整型表达式2 uchar cc23=2,3,6,8,7,5 ; uchar cc23=2,3,6,8,7,5; 2 3 6 8 7 5 i=cc12; i=52、结构体 (1)结构类型的定义 struct 结构类型名 成员列表; ; (2)结构变量的定义 struct 结构类型名 结构变量名; struct 结构类型名 成员列表; 结构变量名; struct 成员列表; 结构变量名; (3)结构变量的初始化 结构变量名.成员=xx; (4)结构变量的引用 i=结构变量名.成员;3、共用体 (1)共用类型的定义 union 共用体类型名 成员列表; ; (2)共用变量的定义 union 共用体类型名 变量名; (3)共用体变量的初始化 共用体变量名.成员=xx; (4)结构变量的引用 i=结构变量名.成员;4、枚举类型 (1)枚举类型的定义 enum 枚举类型名 成员列表, ; (2)枚举变量的定义 enum 枚举类型名 枚举变量名;二、指针类型 (1)定义 数据类型 *指针变量名; uchar *p; (2)初始化uchar i3; p=&i; &表示取地址 (3)引用 j=p; m=*p; (4)指针变量指向数组 uchar *p; uchar led=0xfe,0xfd,0xfb,0xf7; 方法1: p=led; 方法2: p=&led0; i=*p+; j=*(+p); m=+(*p) k=*p; i=0xfe j=0xfd m=0xff k=0xfd 第八课 硬件的检测与仿真及写片一、 硬件检测1、 查电源:芯片的电源联接是否正确,是否有短路现象2、 查引脚:io口与电源正负极间是否存在短路现象3、 仿真器与ISP使用 第九课 编程实例(一)独立式键盘及其应用 第十课 编程实例(二)行列式键盘及其应用第十一课 编程实例(三)数码管的动态显示 第十二课 编程实例(四)数码管的静态显示 DS18B20的控制1、 电源电路、64BIT ROM、暂存器RAM2、 暂存器:9个字节 ,包含温度传感器2个字节,若为正数,除以16就是温度; 若为负数,按位取反,加1,去除符号,再除以16; 包含TL、TH温度下限、上限报警DHT11第十三课 内部资源之外部中断中断类型 中断入口地址 中断序号 外部中断0(INT0) 0003H 0 外部中断1(INT1) 0013H 2 定时计数器0(T0) 16bit 000BH 1 定时计数器1(T1) 001BH 3 定时计数器2(T2) 002BH 5 异步串行通信口(UART) 0023H 4CPU外围模块的掌握方法:(1)相关口线(2)相关控制字(3)模块的工作方式一、外部中断 (1)相关口线 P3.2:int0,外部中断0输入。分为低电平和下降沿两种可选触发 P3.3:int1,外部中断1输入。分为低电平和下降沿两种可选触发 (2)相关控制字 IE :中断允许控制寄存器 EA - ET2 ES ET1 EX1 ET0 EX0 IE=0X85 : EA=1 EX1=1 EX0=1 1 0 0 0 0 1 0 1 EA: 中断总允许控制位 ET2:定时中断2允许控制位 ES: 串行中断控制位 ET1:定时中断1允许控制位 ET0:定时中断0允许控制位 EX0:外部中断0允许控制位 EX1:外部中断1允许控制位 当中断控制位为0时禁止中断,为1是允许中断 IP:中断优先级控制寄存器 - - PT2 PS PT1 PX1 PT0 PX0 PX0=0 PX1=1 IP=0X04; PX0:外部中断0优先级控制位 PX1:外部中断1优先级控制位 PT0:定时中断0优先级控制位 PT1:定时中断1优先级控制位 PT2:定时中断2优先级控制位 PS: 串行中断优先级控制位 优先级控制位为0时表示中断优先级为低, 为1时表示中断优先级为高, 中断优先级高的中断源可再次中断中断优先级低的中断源 同级间不能发生再次中断 TCON:定时计数器控制寄存器 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IT0=1 : TCON=0X01 IT0:外部中断0触发方式选择位 当IT00时,外部中断0为低电平触发中断 当IT01时,外部中断0为下降沿触发中断,.优先选择 IE0:外部中断0中断请求标志位(可不设置此位)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中信息技术粤教版选修2教学设计-8.1 虚拟现实及其制作初步
- 河南省鹤壁市2025年-2026年小学六年级数学阶段练习(下学期)试卷及答案
- 2025年全面解析中国古琴演奏师认证考试模拟题及答案收录
- 甘肃省金昌市2025年-2026年小学六年级数学阶段练习(上学期)试卷及答案
- Unit 2 A child sleeps for eight hours a night.说课稿-2023-2024学年小学英语六年级上册外研版(一起)
- 新疆克拉玛依市2025年-2026年小学六年级数学综合练习(下学期)试卷及答案
- 水利安全员c证考试题库大全及答案解析
- 中小电机笼型绕组制造工特殊工艺考核试卷及答案
- 机绣工职业考核试卷及答案
- 银行从业资格考试综合题及答案解析
- GB/T 28118-2011食品包装用塑料与铝箔复合膜、袋
- GB/T 10125-2021人造气氛腐蚀试验盐雾试验
- T-JSYLA 00007-2022 江苏省智慧公园建设指南
- 热控安装工程施工方案
- 医院水、电、气故障报修、排查、处理流程1
- 八年级上册物理 第一章 第一节长度和时间的测量课件
- 数控加工中心培训课件
- 《思想政治教育专业导论》课程教学大纲
- 产品可追溯性模拟演练(成品-原料)记录
- 中国—东盟自贸区
- 安全帽试验作业指导书实施细则
评论
0/150
提交评论