KeilC51单片机教程.ppt

上传人:wuy****n92 文档编号:80463822 上传时间:2023-03-23 格式:PPT 页数:21 大小:232.49KB
返回 下载 相关 举报
KeilC51单片机教程.ppt_第1页
第1页 / 共21页
KeilC51单片机教程.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《KeilC51单片机教程.ppt》由会员分享,可在线阅读,更多相关《KeilC51单片机教程.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、KEIL C51的应用的应用n nC语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。C C语言作为一种非常方便的语言而得到广泛的支持,语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是国内最通用的是KeilKeil C51.C51.C C语言程序本身不依赖于机器硬件系统,基本上不语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。作修

2、改就可将程序从不同的单片机中移植过来。C C提供了很多数学函数并支持浮点运算,开发效率提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护高,故可缩短开发时间,增加程序可读性和可维护性。性。C-51 C-51的特点的特点C-51C-51与与ASM-51ASM-51相比,有如下优点:相比,有如下优点:1.1.对单片机的指令系统不要求了解,仅要求对单片机的指令系统不要求了解,仅要求对对8051 8051 的存贮器结构有初步了解;的存贮器结构有初步了解;2.2.寄存器分配、不同存贮器的寻址及数据类寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;型等细节可

3、由编译器管理;3.3.程序有规范的结构,可分成不同的函数,程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;这种方式可使程序结构化;4.4.具有将可变的选择与特殊操作组合在一起具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;的能力,改善了程序的可读性;5.5.提供的库包含许多标准子程序,具有较强提供的库包含许多标准子程序,具有较强的数据处理能力;的数据处理能力;6.6.由于具有方便的模块化编程技术,使已编由于具有方便的模块化编程技术,使已编好程序可容易地移植;好程序可容易地移植;C51存储类型存储类型存储类型存储类型寻址空间寻址空间数据长度数据长度 值域范围值域范围d

4、atadata片内直接寻址片内直接寻址 RAMRAM8 801270127idataidata片内间接寻址片内间接寻址 RAMRAM8 802550255pdatapdata分页寻址分页寻址片外片外 RAMRAM8 802550255存储类型存储类型寻址空间寻址空间数据长度数据长度值域范围值域范围xdataxdata片外数据存片外数据存储储 (64K64K)1616065535065535codecode片内统一编片内统一编址址ROMROM(64K64K)1616065535065535bdatabdata片内可位寻片内可位寻址的址的RAMRAM(16bye16byet t)1 1012701

5、27n nC51的数据声明的一般格式如下n n类型说明符修饰符 标识符=初值n n例如:unsigned char code Flag=0 x0f;就是声明一个无符号的char型变量Flag,并给他赋初值为0 x0f;并且声明他所在的存储空间在片内统一编址的ROM中。n n声明中,如果没有修饰符,则数据默认的存储空间为data型,也就是在片内RAM中。C C5151的程序结构的程序结构 与一般与一般C C语言的结构相同,以语言的结构相同,以main()main()函数为程序人函数为程序人口,程序体中包含若干语句还可以包含若干函数。口,程序体中包含若干语句还可以包含若干函数。C C5151函数的

6、一般格式函数的一般格式 类型类型 函数名(参数表)函数名(参数表)数据说明部分数据说明部分 语句执行部分语句执行部分 C C5151的数据类型的数据类型基本数据类型基本数据类型类型类型符号符号关键字关键字数的表示范围数的表示范围所占位数所占位数整整型型字字符符型型实实型型有有无无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned long intunsigned short int1606553

7、5有有float323.4e-383.4e38有有double641.7e-3081.7e308有有char8-128127无无unsigned char80255C语言中的基本数据类型类型类型符号符号关键字关键字数的表示范围数的表示范围所占位数所占位数整整型型字字符符型型实实型型有有无无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned long intunsigned short int16

8、065535有有float323.4e-383.4e38有有double641.7e-3081.7e308有有char8-128127无无unsigned char80255(续续)C C5151的数据类型的数据类型扩充定义扩充定义sfr:sfr:特殊功能寄存器特殊功能寄存器声明声明sfr16:sfr16:sfrsfr的的1616位数据声明位数据声明sbit:sbit:特殊功能位声明特殊功能位声明bitbit:位变量声明位变量声明例:例:sfr SCON=0X98;sfr SCON=0X98;sfr16 T2=0 xCC;sfr16 T2=0 xCC;sbit OV=PSW2;sbit OV=

9、PSW2;C-51 C-51数据的存储类型数据的存储类型名名 存储空间位置存储空间位置 长度长度 数据范围数据范围 data data 直接寻址片内直接寻址片内RAM 8RAM 8位位 0 0255 255 bdata bdata 可位寻址片内可位寻址片内RAM 1RAM 1位位 0/10/1idata idata 间接寻址片内间接寻址片内RAM 8RAM 8位位 0 0255255pdata pdata 片外页片外页RAM 8RAM 8位位 0 0255255xdata xdata 片外片外RAM 16RAM 16位位 0 06553565535code code 程序程序ROM 16ROM

10、 16位位 0 06553565535 C-51 C-51数据的存储类型数据的存储类型(续续)例:例:数据类型数据类型 存储类型存储类型 变量变量charchar datadata var1;var1;bitbit datadata flags;flags;unsigned charunsigned char xdataxdata vextor10;vextor10;C-51 C-51数据的存储类型数据的存储类型 C-51 C-51的包含的头文件的包含的头文件通常有通常有:reg51.h math.h ctype.h reg51.h math.h ctype.h stdio.h stdlib.

11、h absacc.hstdio.h stdlib.h absacc.h常用有常用有:reg51.h reg51.h (定义特殊功能寄存器和(定义特殊功能寄存器和位寄存器);位寄存器);math.h math.h (定义常用数学运算);(定义常用数学运算);C-51 C-51的运算符的运算符与与C C语言基本相同:语言基本相同:+-*/+-*/(加(加 减减 乘乘 除)除)=(位右移(位右移 位左移)位左移)&|&|(按位与按位与 按位或按位或)(按位异或按位异或 按位取反按位取反)C-51 C-51的基本语句的基本语句与标准与标准C C语言基本相同:语言基本相同:if if 选择语言选择语言

12、switch/caseswitch/case 多分支选择语言多分支选择语言 whilewhile 循环语言循环语言 do-while do-while 循环语言循环语言 for for 循环语言循环语言 中断服务程序中断服务程序函数名()函数名()interrupt ninterrupt n I/O I/O口定义口定义#include#include#define prot xbyte0 x1000#define prot xbyte0 x1000或或用指针定义用指针定义例:例:清零程序清零程序 (将将2000H20FFH2000H20FFH的内容清零的内容清零)汇编语言程序汇编语言程序 OR

13、G 0000HORG 0000HSE01:MOV R0,#00H SE01:MOV R0,#00H MOV DPTR,#2000H MOV DPTR,#2000H ;(0000H);(0000H)送送DPTRDPTRLOO1:CLR ALOO1:CLR A MOVX MOVX DPTR,A DPTR,A ;0;0送送(DPTR)(DPTR)INC DPTR INC DPTR ;DPTR+1;DPTR+1 INC R0 INC R0 ;字节数加字节数加1 1 CJNE R0,#00H,LOO1 CJNE R0,#00H,LOO1;不到不到FFFF个字节再清个字节再清LOOP:SJMP LOOPL

14、OOP:SJMP LOOP清零程序清零程序 (将将2000H20FFH2000H20FFH的内容清零的内容清零)C C5151程序程序#include#include main()main()int i;int i;unsigned char xdata*p=0 x2000;unsigned char xdata*p=0 x2000;/*/*指针指向指针指向2000H2000H单元单元*/for(i=0;i256;i+)for(i=0;i256;i+)*p=0;p+;*p=0;p+;/*/*清零清零2000H-20FFH2000H-20FFH单元单元*/汇编语言程序汇编语言程序 ORG 000

15、0HORG 0000HL00:MOV R0,#10H L00:MOV R0,#10H ;查找查找1616个字节个字节 MOV R1,#00HMOV R1,#00H MOV DPTR,#2000H MOV DPTR,#2000HL11:MOVX A,DPTRL11:MOVX A,DPTR CJNE A,#00H,L16 CJNE A,#00H,L16;取出内容与取出内容与00H00H相等吗相等吗?INC R1 INC R1 ;取出个数加取出个数加1 1L16:INC DPTRL16:INC DPTR DJNZ R0,L11 DJNZ R0,L11 ;未完继续未完继续 MOV DPTR,#2100

16、HMOV DPTR,#2100H MOV A,R1 MOV A,R1 MOVX DPTR,A MOVX DPTR,A ;相同数个数送相同数个数送2100H2100HL1E:SJMP L1EL1E:SJMP L1E例:查找零的个数例:查找零的个数(在(在2000H-200FH2000H-200FH中查出有几个中查出有几个字字 节是零,把个数放在节是零,把个数放在2100H2100H单元中)单元中)查找零的个数查找零的个数C C5151程序程序#include#include main()main()unsigned char xdata*p=0 x2000 unsigned char xdata

17、*p=0 x2000;/*;/*指针指针p p指向指向2000H2000H单元单元*/int n=0,i;int n=0,i;for(i=0;i16;i+)for(i=0;i16;i+)if(*p=0)n+;if(*p=0)n+;/*/*若该单元内容为零,则若该单元内容为零,则n+1*/n+1*/p+;p+;/*/*指针指向下一单元指针指向下一单元 */p=0 x2100;p=0 x2100;/*/*指针指针p p指向指向2100H2100H单元单元*/*p=n;*p=n;/*/*把个数放在把个数放在2100H2100H单元中单元中*/KEIL的使用的使用n n掌握KEIL工程的建立和软件的开发;n n掌握KEIL中软件仿真的基本应用;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁