51单片机及其应用:第二课 KEIL C51的应用

上传人:努力****83 文档编号:187586113 上传时间:2023-02-15 格式:PPT 页数:21 大小:125.50KB
收藏 版权申诉 举报 下载
51单片机及其应用:第二课 KEIL C51的应用_第1页
第1页 / 共21页
51单片机及其应用:第二课 KEIL C51的应用_第2页
第2页 / 共21页
51单片机及其应用:第二课 KEIL C51的应用_第3页
第3页 / 共21页
资源描述:

《51单片机及其应用:第二课 KEIL C51的应用》由会员分享,可在线阅读,更多相关《51单片机及其应用:第二课 KEIL C51的应用(21页珍藏版)》请在装配图网上搜索。

1、C C语言作为一种非常方便的语言而得到广泛的支持,语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是国内最通用的是KeilKeil C51.C51.C C语言程序本身不依赖于机器硬件系统,基本上不语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。作修改就可将程序从不同的单片机中移植过来。C C提供了很多数学函数并支持浮点运算,开发效率提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护高,故可缩短开发时间,增加程序可读性和可维护性。性。C-51 C-51的特点的特点C-51C-51与与ASM-51ASM-51相比,有如

2、下优点:相比,有如下优点:1.1.对单片机的指令系统不要求了解,仅要求对对单片机的指令系统不要求了解,仅要求对8051 8051 的存贮器结构有初步了解;的存贮器结构有初步了解;2.2.寄存器分配、不同存贮器的寻址及数据类型寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;等细节可由编译器管理;3.3.程序有规范的结构,可分成不同的函数,这程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;种方式可使程序结构化;4.4.具有将可变的选择与特殊操作组合在一起的具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;能力,改善了程序的可读性;5.5.提供的库包含许多标准子

3、程序,具有较强的提供的库包含许多标准子程序,具有较强的数据处理能力;数据处理能力;6.6.由于具有方便的模块化编程技术,使已编好由于具有方便的模块化编程技术,使已编好程序可容易地移植;程序可容易地移植;C C5151的程序结构的程序结构 与一般与一般C C语言的结构相同,以语言的结构相同,以main()main()函数为程序人函数为程序人口,程序体中包含若干语句还可以包含若干函数。口,程序体中包含若干语句还可以包含若干函数。C C5151函数的一般格式函数的一般格式 类型类型 函数名(参数表)函数名(参数表)数据说明部分数据说明部分 语句执行部分语句执行部分 C C5151的数据类型的数据类型

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

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

6、80255(续续)C C5151的数据类型的数据类型扩充定义扩充定义sfrsfr:特殊功能寄存器特殊功能寄存器声明声明sfr16:sfr16:sfrsfr的的1616位数据声明位数据声明sbitsbit:特殊功能位声明特殊功能位声明bitbit:位变量声明位变量声明例:例:sfrsfr SCON=0X98;SCON=0X98;sfr16 T2=0 xCC;sfr16 T2=0 xCC;sbitsbit OV=PSW2;OV=PSW2;C-51 C-51数据的存储类型数据的存储类型名名 存储空间位置存储空间位置 长度长度 数据范围数据范围 data data 直接寻址片内直接寻址片内RAM 8R

7、AM 8位位 0 0255 255 bdatabdata 可位寻址片内可位寻址片内RAM 1RAM 1位位 0/10/1idataidata 间接寻址片内间接寻址片内RAM 8RAM 8位位 0 0255255pdatapdata 片外页片外页RAM 8RAM 8位位 0 0255255xdataxdata 片外片外RAM 16RAM 16位位 0 06553565535code code 程序程序ROM 16ROM 16位位 0 06553565535 C-51 C-51数据的存储类型数据的存储类型(续续)例:例:数据类型数据类型 存储类型存储类型 变量变量charchar datadata

8、 var1;var1;bitbit datadata flags;flags;unsigned charunsigned char xdataxdata vextor10;vextor10;C-51 C-51数据的存储类型数据的存储类型 C-51 C-51的的包含的头文件包含的头文件通常有通常有:reg51.h math.h reg51.h math.h ctype.hctype.h stdio.hstdio.h stdlib.hstdlib.h absacc.habsacc.h常用有常用有:reg51.h reg51.h (定义特殊功能寄存器和定义特殊功能寄存器和位寄存器);位寄存器);ma

9、th.hmath.h (定义常用数学运算);定义常用数学运算);C-51 C-51的运算符的运算符与与C C语言基本相同:语言基本相同:+-+-*/(加(加 减减 乘乘 除)除)=(位右移(位右移 位左移)位左移)&|&|(按位与按位与 按位或按位或)(按位异或按位异或 按位取反按位取反)C-51 C-51的基本语句的基本语句与与标准标准C C语言基本相同:语言基本相同:if if 选择语言选择语言 switch/caseswitch/case 多分支选择语言多分支选择语言 whilewhile 循环语言循环语言 do-while do-while 循环语言循环语言 for for 循环语言循

10、环语言 中断服务程序中断服务程序函数名()函数名()interrupt ninterrupt n I/O I/O口定义口定义#include#include#define#define protprot xbyte0 x1000 xbyte0 x1000或或用指针定义用指针定义例:例:清零程序清零程序 (将将2000H2000H20FFH20FFH的内容清零的内容清零)汇编语言程序汇编语言程序 ORG 0000HORG 0000HSE01:MOV R0,#00H SE01:MOV R0,#00H MOV DPTR,#2000H MOV DPTR,#2000H ;(0000H);(0000H)送

11、送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 LOOPLOOP:SJMP LOOP清零程序清零程序 (将将2000H2000H20FFH20FFH的内容清零的内容清零)C C5151程序程序#include#include main()main()int

12、int i;i;unsigned char unsigned char xdataxdata *p=0 x2000;p=0 x2000;/*指针指向指针指向2000H2000H单元单元 */for(ifor(i=0;i256;i+)=0;i256;i+)*p=0;p+;p=0;p+;/*清零清零2000H-20FFH2000H-20FFH单元单元*/汇编语言程序汇编语言程序 ORG 0000HORG 0000HL00:MOV R0,#10H L00:MOV R0,#10H ;查找查找1616个字节个字节 MOV R1,#00HMOV R1,#00H MOV DPTR,#2000H MOV DP

13、TR,#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,#2100HMOV DPTR,#2100H MOV A,R1 MOV A,R1 MOVX DPTR,A MOVX DPTR,A ;相同数个数送相同数个数送2100H2100HL1E:SJMP L1EL1E:SJMP L

14、1E例:查找零的个数例:查找零的个数(在(在2000H-200FH2000H-200FH中查出有几个中查出有几个字字 节是零,把个数放在节是零,把个数放在2100H2100H单元中)单元中)查找零的个数查找零的个数C C5151程序程序#include#include main()main()unsigned char unsigned char xdataxdata *p=0 x2000p=0 x2000;/;/*指针指针p p指向指向2000H2000H单元单元*/intint n=0,i;n=0,i;for(i=0;i16;i+)for(i=0;i16;i+)if(if(*p=0)n+;p=0)n+;/*若该单元内容为零,则若该单元内容为零,则n+1 n+1*/p+;p+;/*指针指向下一单元指针指向下一单元 */p=0 x2100;p=0 x2100;/*指针指针p p指向指向2100H2100H单元单元 */*p=n;p=n;/*把个数放在把个数放在2100H2100H单元中单元中 */

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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