文档详情

单片机80c51哈理工.doc

发布:2017-09-20约4.05千字共7页下载文档
文本预览下载声明
1.程序状态字: CY: 进位标志。有进位/借位时置1 AC:半进位标志。D3-D4进位/借位时置1 OV:溢出标志。带符号数超出-128~127置1,乘法结果超过255,除数为0 P: 奇偶标志。A中的1的个数为奇数 F0:用户设置标志 RS1,RS0: 通用寄存器选择位 2.振荡周期:1/fOSC 时钟周期:2/fOSC 机器周期:12/fOSC=T 3. 并行I/O(P0~P3) 准双向:输入时先向口线写“1” 只有P1口没有第二功能, P0口的第二功能:第8位地址和数据总线复用 P2口的第二功能:高8位地址 4. 并行口的负载能力 P0口的每一位口线可以驱动8个LSTTL负载。在作为通用 I/O口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时需外接上拉电阻 P1、P2、P3口的每一位能驱动4个LSTTL负载。它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。 5.单片机控制信号引脚 ALE:地址锁存信号输出端,输出频率为6/fosc的时钟脉冲。 RST:复位引脚,复位脉冲宽度要大于2个机器周期。 EA:外接程序存储器,此引脚接地,否则接高电平。 PSEN:片外程序存储器读选通,低电平有效 6.低功耗操作方式 ①节电方式 将PCON中的IDL(PCON.0)置位,就进入节电方式。 此时,提供给CPU的时钟信号被切断,但时钟信号仍提供给RAM、定时器、中断系统合串行口,同时CPU的状态被保留起来。 功耗为:5V*3.7mA=18.5mW。 退出节电方式的方法:①任何一种中断被激活;②硬件复位。 ②掉电方式 将PCON中的PD(PCON.1),就进入掉电方式。 此时,片内振荡器停止工作,时钟冻结,一切工作都停止只有片内RAM的内容被保持,SFR内容也被破坏。 功耗为2V*0.05mA=0.1mW。 退出掉电方式的方法:硬件复位。 7.数据类型及存储类型 只有bit和unsigned char两种数据类型可以直接支持机器指令,必须慎重变量和数据类型的选择。? 对bit类型定义的限制:不能定义该类型的指针和数组。 为了简化程序书写时的麻烦,可以程序的开始,书写下列语句: #define uchar unsigned char #define uint unsigned int 存储类型: code--程序,MOVC @A+DPTR访问 xdata--外部数据,由MOVX @DPTR访问 pdata--分页外部数据,由MOVX @Ri访问 data--直接寻址内部数据存储区 bdata--可位寻址内部数据存储区 idata--间接寻址内部数据存储区 例:说明下列语句的含义 Bit b1; code char tb [10]; idata int a; data char v; 8.sbit, sfr简化对8051的SFR的访问 sfr SCON=0x98; sfr TMOD=0x89; sfr P0=0x80; sbit P0_1=P0^1; sbit P0_7=P0^7; 另外,头文件reg51.h中有所有8051的SFR及可位寻址的位的定义,但没有定义P0~P3口的各位,且所定义的所有符号都是大写的。 例如: #include reg51.h sbit P1_0=P1^0; main() { P1=0x10;TMOD=0x01;TR0=1; EA=1; ……… } 9.将PORTA定义为外部I/O口,地址为0xff0,长度为8位。方法如下: #include absacc.h#define PORTA XBYTE[0xff0] 例如: #include absacc.h #define PORTA XBYTE[0xff0] #define PORTB XBYTE[0xff1] main() { uint i; i=PORTA; /*将外设PORTA的数据读入*/ PORTB=i; /*将数据输出给外设PORTB */ } 为了简化程序的书写,一般在c51程序的开始常写出下面3调预处理命令: #include reg51.h #define uchar unsigned char #define uint unsigned int 10.运算符:算数、关系、逻辑、位的运算符 例1:假设x=0x03,x=0x05为整数,请问下列表达式的结果? x/y, x%y, Xy, xy, x=y2 例2:执行下列程序后,a,b,c的值格式多少? main() { unsigned char a=0xc3,b
显示全部
相似文档