KeilC51单片机教程.ppt

上传人:xin****828 文档编号:15470370 上传时间:2020-08-11 格式:PPT 页数:21 大小:123.50KB
返回 下载 相关 举报
KeilC51单片机教程.ppt_第1页
第1页 / 共21页
KeilC51单片机教程.ppt_第2页
第2页 / 共21页
KeilC51单片机教程.ppt_第3页
第3页 / 共21页
点击查看更多>>
资源描述
KEIL C51的应用,C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。,C语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是Keil C51. C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。 C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。, C-51的特点,C-51与ASM-51相比,有如下优点: 1.对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解; 2.寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理; 3.程序有规范的结构,可分成不同的函数,这种方式可使程序结构化; 4.具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性; 5.提供的库包含许多标准子程序,具有较强的数据处理能力; 6.由于具有方便的模块化编程技术,使已编好程序可容易地移植;,C51存储类型,C51的数据声明的一般格式如下 类型说明符修饰符 标识符=初值 例如:unsigned char code Flag = 0 x0f; 就是声明一个无符号的char型变量Flag,并给他赋初值为0 x0f;并且声明他所在的存储空间在片内统一编址的ROM中。 声明中,如果没有修饰符,则数据默认的存储空间为data型,也就是在片内RAM中。, C51的程序结构 与一般C语言的结构相同,以main()函数为程序人口,程序体中包含若干语句还可以包含若干函数。,C51函数的一般格式 类型 函数名(参数表) 数据说明部分 语句执行部分 , C51的数据类型,基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed) int,16,-3276832767,(signed) short,16,-3276832767,(signed) long,32,-21474836482147483647,16,unsigned int,065535,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,C语言中的基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed) int,16,-3276832767,(signed) short,16,-3276832767,(signed) long,32,-21474836482147483647,16,unsigned int,065535,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,(续) C51的数据类型扩充定义,sfr:特殊功能寄存器声明 sfr16:sfr的16位数据声明 sbit:特殊功能位声明 bit:位变量声明 例:sfr SCON = 0X98; sfr16 T2 = 0 xCC; sbit OV = PSW2;, C-51数据的存储类型,名 存储空间位置 长度 数据范围 data 直接寻址片内RAM 8位 0255 bdata 可位寻址片内RAM 1位 0/1 idata 间接寻址片内RAM 8位 0255 pdata 片外页RAM 8位 0255 xdata 片外RAM 16位 065535 code 程序ROM 16位 065535, C-51数据的存储类型(续) 例: 数据类型 存储类型 变量 char data var1; bit data flags; unsigned char xdata vextor10;, C-51数据的存储类型, C-51的包含的头文件,通常有:reg51.h math.h ctype.h stdio.h stdlib.h absacc.h 常用有:reg51.h (定义特殊功能寄存器和位寄存器); math.h (定义常用数学运算);, C-51的运算符 与C语言基本相同: + - * / (加 减 乘 除) = (位右移 位左移) (0000H)送DPTR LOO1: CLR A MOVX DPTR,A ;0送(DPTR) INC DPTR ;DPTR+1 INC R0 ;字节数加1 CJNE R0,#00H,LOO1 ;不到FF个字节再清 LOOP: SJMP LOOP,清零程序 (将2000H20FFH的内容清零) C51程序 #include main( ) int i; unsigned char xdata *p=0 x2000; /* 指针指向2000H单元 */ for(i=0;i256;i+) *p=0; p+; /*清零2000H-20FFH单元*/ , 汇编语言程序 ORG 0000H L00: MOV R0,#10H ;查找16个字节 MOV R1,#00H MOV DPTR,#2000H L11: MOVX A,DPTR CJNE A,#00H,L16 ;取出内容与00H相等吗? INC R1 ;取出个数加1 L16: INC DPTR DJNZ R0,L11 ;未完继续 MOV DPTR,#2100H MOV A,R1 MOVX DPTR,A ;相同数个数送2100H L1E: SJMP L1E,例:查找零的个数(在2000H-200FH中查出有几个字 节是零,把个数放在2100H单元中),查找零的个数C51程序 #include main ( ) unsigned char xdata *p=0 x2000;/*指针p指向2000H单元*/ int n=0,i; for(i=0;i16;i+) if(*p=0) n+; /* 若该单元内容为零,则n+1 */ p+; /* 指针指向下一单元 */ p=0 x2100; /* 指针p指向2100H单元 */ *p=n; /* 把个数放在2100H单元中 */ ,KEIL的使用,掌握KEIL工程的建立和软件的开发; 掌握KEIL中软件仿真的基本应用;,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!