C_002优质PPT.ppt

上传人:b****1 文档编号:14285605 上传时间:2022-10-21 格式:PPT 页数:21 大小:162KB
下载 相关 举报
C_002优质PPT.ppt_第1页
第1页 / 共21页
C_002优质PPT.ppt_第2页
第2页 / 共21页
C_002优质PPT.ppt_第3页
第3页 / 共21页
C_002优质PPT.ppt_第4页
第4页 / 共21页
C_002优质PPT.ppt_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C_002优质PPT.ppt

《C_002优质PPT.ppt》由会员分享,可在线阅读,更多相关《C_002优质PPT.ppt(21页珍藏版)》请在冰豆网上搜索。

C_002优质PPT.ppt

1.对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解;

2.寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;

3.程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;

4.具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;

5.提供的库包含许多标准子程序,具有较强的数据处理能力;

6.由于具有方便的模块化编程技术,使已编好程序可容易地移植;

C51存储类型,C51的数据声明的一般格式如下类型说明符修饰符标识符=初值例如:

unsignedcharcodeFlag=0x0f;

就是声明一个无符号的char型变量Flag,并给他赋初值为0x0f;

并且声明他所在的存储空间在片内统一编址的ROM中。

声明中,如果没有修饰符,则数据默认的存储空间为data型,也就是在片内RAM中。

C51的程序结构与一般C语言的结构相同,以main()函数为程序人口,程序体中包含若干语句还可以包含若干函数。

C51函数的一般格式类型函数名(参数表)数据说明部分语句执行部分,C51的数据类型,基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed)int,16,-3276832767,(signed)short,16,-3276832767,(signed)long,32,-21474836482147483647,16,unsignedint,065535,32,04294967295,unsignedlongint,unsignedshortint,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsignedchar,8,0255,C语言中的基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed)int,16,-3276832767,(signed)short,16,-3276832767,(signed)long,32,-21474836482147483647,16,unsignedint,065535,32,04294967295,unsignedlongint,unsignedshortint,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsignedchar,8,0255,(续)C51的数据类型扩充定义,sfr:

特殊功能寄存器声明sfr16:

sfr的16位数据声明sbit:

特殊功能位声明bit:

位变量声明例:

sfrSCON=0X98;

sfr16T2=0xCC;

sbitOV=PSW2;

C-51数据的存储类型,名存储空间位置长度数据范围data直接寻址片内RAM8位0255bdata可位寻址片内RAM1位0/1idata间接寻址片内RAM8位0255pdata片外页RAM8位0255xdata片外RAM16位065535code程序ROM16位065535,C-51数据的存储类型(续)例:

数据类型存储类型变量chardatavar1;

bitdataflags;

unsignedcharxdatavextor10;

C-51数据的存储类型,C-51的包含的头文件,通常有:

reg51.hmath.hctype.hstdio.hstdlib.habsacc.h常用有:

reg51.h(定义特殊功能寄存器和位寄存器);

math.h(定义常用数学运算);

C-51的运算符与C语言基本相同:

+-*/(加减乘除)=(位右移位左移)&

|(按位与按位或)(按位异或按位取反),C-51的基本语句,与标准C语言基本相同:

if选择语言switch/case多分支选择语言while循环语言do-while循环语言for循环语言,中断服务程序,函数名()interruptn,I/O口定义,#include#defineprotxbyte0x1000或用指针定义,例:

清零程序(将2000H20FFH的内容清零)汇编语言程序ORG0000HSE01:

MOVR0,#00HMOVDPTR,#2000H;

(0000H)送DPTRLOO1:

CLRAMOVXDPTR,A;

0送(DPTR)INCDPTR;

DPTR+1INCR0;

字节数加1CJNER0,#00H,LOO1;

不到FF个字节再清LOOP:

SJMPLOOP,清零程序(将2000H20FFH的内容清零)C51程序#includemain()inti;

unsignedcharxdata*p=0x2000;

/*指针指向2000H单元*/for(i=0;

i256;

i+)*p=0;

p+;

/*清零2000H-20FFH单元*/,汇编语言程序ORG0000HL00:

MOVR0,#10H;

查找16个字节MOVR1,#00HMOVDPTR,#2000HL11:

MOVXA,DPTRCJNEA,#00H,L16;

取出内容与00H相等吗?

INCR1;

取出个数加1L16:

INCDPTRDJNZR0,L11;

未完继续MOVDPTR,#2100HMOVA,R1MOVXDPTR,A;

相同数个数送2100HL1E:

SJMPL1E,例:

查找零的个数(在2000H-200FH中查出有几个字节是零,把个数放在2100H单元中),查找零的个数C51程序#includemain()unsignedcharxdata*p=0x2000;

/*指针p指向2000H单元*/intn=0,i;

for(i=0;

i16;

i+)if(*p=0)n+;

/*若该单元内容为零,则n+1*/p+;

/*指针指向下一单元*/p=0x2100;

/*指针p指向2100H单元*/*p=n;

/*把个数放在2100H单元中*/,KEIL的使用,掌握KEIL工程的建立和软件的开发;

掌握KEIL中软件仿真的基本应用;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1