预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共31页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学二、C语言与汇编语言(huìbiānyǔyán)6、用C语言编写的单片机应用程序:(1)所有操作对象都可以看成变量或常量,没有寻址方式(数据传送由赋值语句实现,所有运算都通过表达式实现)。(2)不用像汇编语言那样须具体组织、分配存储器资源和处理端口数据.(3)子程序调用时,C语言程序的编译系统自动进行现场的保护。(5)C语言语法简单,语句紧凑,容易理解和掌握。(4)在C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射(yìngshè)定位。三、C51的数据类型1、特殊功能寄存器类型(lèixíng):在C51中对特殊功能寄存器的访问必须先用sfr或sfr16进行声明。2、位类型这也是C51中扩充的数据类型,用于访问MCS-51单片机中的可寻址的位单元(dānyuán)。在C51中,支持两种位类型:bit型和sbit型。它们在内存中都只占一个二进制位,其值可以是“1”或“0”。四、新增存贮类型变量是在程序运行过程中其值可以改变的量。一个变量由两部分(bùfen)组成:变量名和变量值。在C51中,变量在使用前必须对变量进行定义,指出变量的数据类型和存储模式。以便编译系统为它分配相应的存储单元。定义的格式如下:数据类型说明符[存储器类型]变量名1[=初值],变量名2[=初值]…;存储器类型【例】变量定义存储种类和存储器类型相关情况。chardatavarl;/*在片内RAM低128B定义用直接寻址方式访问的字符型变量var1*/intidatavar2;/*在片内RAM256B定义用间接寻址方式访问的整型变量var2*/unsignedlongdatavar3;/*在片内RAM128B定义用直接寻址方式访问的自动无符号长整型变量var3*/floatxdatavar4;/*在片外RAM64KB空间定义用间接寻址方式访问的外部实型变量var4*/intcodevar5;/*在ROM空间定义整型变量var5*/unsigncharbdatavar6;/*在片内RAM位寻址区20H~2FH单元定义可字节处理(chǔlǐ)和位处理(chǔlǐ)的无符号字符型变量var6*/五、存储(cúnchǔ)模式/六、绝对(juéduì)地址访问2、使用C51运行库中预定义宏C51编译器提供(tígōng)了一组宏定义来对51系列单片机的code、data、pdata和xdata空间进行绝对寻址。规定只能以无符号数方式访问,定义了8个宏定义,其函数原型如下:这些函数原型放在absacc.h文件中。使用时须用预处理命令把该头文件包含(bāohán)到文件中,形式为:#include<absacc.h>。其中:CBYTE以字节形式对code区寻址,DBYTE以字节形式对data区寻址,PBYTE以字节形式对pdata区寻址,XBYTE以字节形式对xdata区寻址,CWORD以字形式对code区寻址,DWORD以字形式对data区寻址,PWORD以字形式对pdata区寻址,XWORD以字形式对xdata区寻址。【例】绝对地址对存储单元的访问#include<absacc.h>/*将绝对地址头文件包含在文件中*/#include<reg52.h>/*将寄存器头文件包含在文件中*/#defineucharunsignedchar/*定义符号(fúhào)uchar为数据类型符unsignedchar*/#defineuintunsignedint/*定义符号(fúhào)uint为数据类型符unsignedint*/voidmain(void){ucharvar1;uintvar2;var1=XBYTE[0x0002];/*访问片外RAM的0002字节单元*/var2=XWORD[0x0004];/*访问片外RAM的0004~0005单元*/......while(1);}3、使用C51扩展关键字_at_使用_at_对指定的存储器空间的绝对地址进行访问,一般格式如下:[存储器类型]数据类型标识符_at_地址常数;其中,存储器类型为data、bdata、idata、pdata等如省略则按存储模式规定的默认(mòrèn)存储器类型确定变量的存储器区域;数据类型为C51支持的数据类型。地址常数用于指定变量的绝对地址,必须位于有效的存储器空间之内;使用_at_定义的变量必须为全局变量。【例】通过_at_实现绝对地址(dìzhǐ)的访问。#defineucharunsignedchar/*定义符号uchar为数据类型符unsignedchar*/#defineuintunsignedint/*定义符号uint为数据类型符un