- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
;;C-51与ASM-51相比,有如下优点:
1.??对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解;
2.??寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;
3.??程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;
4.??具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;
5.??提供的库包含许多标准子程序,具有较强的数据处理能力;
6.??由于具有方便的模块化编程技术,使已编好程序可容量地植入新程序;;㈢ C-51的数据类型
常用的数据类型有:;㈣ C-51数据的存储类型;㈥ C-51的运算符
与C语言基本相同:
+ - * / (加 减 乘 除)
> >= < <= (大于 大于等于 小于 小于等于)
== != (测试等于 测试不等于)
&& || ! (逻辑与 逻辑或 逻辑非 )
>> << (位右移 位左移)
& | (按位与 按位或)
^ ~ (按位异或 按位取反);㈦ C-51的基本语句;㈧ 实例;#include <reg51.h>
#include <absacc.h>
#define uchar unsigned char
/* 字形口 */
#define PORTA XBYTE[0xffdc]
/* 字位口 */
#define PORTB XBYTE[0xffdd]
/* 延时 1MS子程序 */
void msce(unsigned int x)
{ unsigned char j;
while((x--)!=0)
{for(j=0;j<60;j++); }
}
; ★ C-51程序
#include <reg51.h>
main( )
{ int i;
unsigned char xdata *p=0x2000; /* 指针指向2000H单元 */
for(i=0;i<256;i++) /*清零2000H-20FFH单元*/
{*p=0; p++;}
};;★拆字C-51程序
#include <reg51.h>
main( )
{unsigned char xdata *p=0x2000;/*指针指向2000H单元*/
/* 2002H单元高4位清零,低4位装2000H单元低4位 */
*(p+2)=(*p)&0x0f;
/* 2001H单元高4位清零,低4位装2000H单元高4位 */
*(p+1)=(*p)>>4;
}
;★ 汇编语言程序
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;★查找零的个数C-51程序
#include <reg51.h>
main ( )
{ unsigned char xdata *p=0x2000;/*指针p指向2000H单元*/
int n=0,i;
for(i=0;i<16;i++)
{ if(*p==0) n++; /* 若该单元内容为零,则n+1 */
p++; /* 指针指向下一单元 */
}
p=0x2100; /* 指针p指向2100H单元 */
*p=n; /* 把个数放在2100H单元中 */
};★ 汇编程序
ORG 0000H
MOV A,R3
MOV B,R7
MUL AB ;R3*R7
XCH A,R7 ;R7=(R3*R7)低字节
MOV R5,B ;R5=(R
文档评论(0)