第5章80C51单片机的中断与定时讲解.ppt
文本预览下载声明
5.1 中断概述 5.2 80C51单片机的中断系统 80C51单片机中断系统内部结构图 单片机C语言程序设计 一:C51对标准C的扩展 1、 C51数据类型 在编程时,为了书写方便,经常用简化的缩写形式来定义数据类型。其方法是在源程序开头使用#define语句自定义简化的类型标识符。 例如: #define uchar unsigned char #define uint unsigned int 这样,在编程中,就可以用uchar代替unsigned char,用uint代替unsigned int来定义变量。 sfr用于声明字节型(8位)的SFR; sfr16用于声明字型(16位)的SFR。 如: sfr P0 = 0x80; sfr16 DPTR = 0x82; 如果定义时略去存储类型标志符,编译器会自动选择默认的类型,由SMALL,COMPACT和LARGE存储模式指令限制。 6、C51常用头文件 #include reg51.h #include intrins.h 本征函数,如 _crol_ 、_cror_; #include stdio.h 输入输出函数,如 scanf 、printf; #include math.h 数学计算函数,如 abs 、sin; #include string.h 字符串处理函数,如 strcpy; #include stdlib.h 类型转换及内存分配函数,如 atoi; #include absacc.h绝对地址访问函数,如XBYTE 二 中断应用的C语言编程 ORG 0000H LJMP MAIN ORG 0003H LJMP INTT0 ORG 0100H MAIN: MOV IE, #81H SETB IT0 MOV SP, #3FH MOV A, #0FEH CLR 00H LOOP: MOV P2, A LCALL DELAY JB 00H, LOOP1 RL A LJMP LOOP LOOP1: RR A LJMP LOOP INTT0: CPL 00H RETI DELAY: …… END 5.3 80C51单片机的定时器/计数器 5.3.1 定时器/计数器的计数和定时功能 5.3.3 定时工作方式0 #include reg51.h sbit P1_0=P1^0; void main(void) { TMOD=0x00; TH1= 0xfc; TL1=0x03; IE=0x00; TR1=1; for( ; ; ) { do { } while (!TF1); TH1= 0xfc; TL1=0x03; TF1=0; P1_0=!P1_0; } } 5.3.4 定时工作方式1 #include reg51.h sbit P1_0=P1^0 ; void main( void ) { TMOD=0x10 ; /* T/C0工作在定时器非门控制方式1 */ P1_0=0; TH1= 0xff; /* 预置计数初值 */ TL1= 0x83; EA=1 ; /* CPU中断开放 */ ET1= 1 ; /* T/C0中断开放 */ TR1=1;
显示全部