- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 单片机C51程序设计 C51语言概述 在学会使用汇编语言后,学习C语言编程是一件比较容易的事。下面是一个简单的例子: 89S52的P1引脚上接8个发光二极管,我们的任务是让接在P1引脚上的发光二极管按要求发光。 11.1 简单的C程序介绍 例1-1:?让接在P1.0引脚上的LED发光。/**********************************/单灯闪烁程序/**********************************/#include?“reg51.h”sbit?P1_0=P1^0;void?main( ){? P1_1=0;?} 这个C语言程序包含了哪些信息 1.“文件包含”处理 所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行。这里程序中包含REG51.h文件的目的是为了要使用P1这个符号,即通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其它变量。 reg51.h 文件包含以下内容: /*-----------------------------------------REG51.HHeader?file?for?generic?80C51?and?80C31?microcontroller.Copyright?(c)?1988-2001?Keil?Elektronik?GmbH?and?Keil?Software,?Inc.All?rights?reserved.---------------------------- ------- ---------*//*?BYTE?Register?*/sfr?P0?=?0x80;sfr?P1?=?0x90;sfr?P2?=?0xA0;sfr?P3?=?0xB0;sfr?PSW?=?0xD0;sfr?ACC?=?0xE0; sfr?B?=?0xF0;sfr?SP?=?0x81;sfr?DPL?=?0x82;sfr?DPH?=?0x83;sfr?PCON?=?0x87;sfr?TCON?=?0x88;sfr?TMOD?=?0x89;sfr?TL0?=?0x8A;sfr?TL1?=?0x8B;sfr?TH0?=?0x8C;sfr?TH1?=?0x8D;sfr?IE?=?0xA8;sfr?IP?=?0xB8; sfr?SCON?=?0x98;sfr?SBUF?=?0x99;/*?BIT?Register?*//*?PSW?*/sbit?CY?=?0xD7;sbit?AC?=?0xD6;sbit?F0?=?0xD5;sbit?RS1?=?0xD4;sbit?RS0?=?0xD3;sbit?OV?=?0xD2;sbit?P?=?0xD0; /*?TCON?*/sbit?TF1?=?0x8F;sbit?TR1?=?0x8E;sbit?TF0?=?0x8D;sbit?TR0?=?0x8C;sbit?IE1?=?0x8B;sbit?IT1?=?0x8A;sbit?IE0?=?0x89;sbit?IT0?=?0x88; /*?IE?*/sbit?EA?=?0xAF;sbit?ES? =?0xAC;sbit?ET1?=?0xAB;sbit?EX1?=?0xAA;sbit?ET0?=?0xA9;sbit?EX0?=?0xA8; /*?IP?*/?sbit?PS?=?0xBC;sbit?PT1?=?0xBB;sbit?PX1?=?0xBA;sbit?PT0?=?0xB9;sbit?PX0?=?0xB8; /*?P3?*/sbit?RD?=?0xB7;sbit?WR?=?0xB6;sbit?T1?=?0xB5;sbit?T0?=?0xB4;sbit?INT1?=?0xB3;sbit?INT0?=?0xB2;sbit?TXD?=?0xB1;sbit?RXD?=?0xB0; /*?SCON?*/sbit?SM0?=?0x9F;sbit?SM1?=?0x9E;sbit?SM2?=?0x9D;sbit?REN?=?0x9C;sbit?TB8?=?0x9B;sbit?RB8?=?0x9A;sbit?TI?=?0x99;sbit?RI?=?0x98; 注意: sfr?P1?=?0x90; 这样的一行(上文中用黑体表示),即定义P1与地址0x90对应,P1口的地址就是0x90(0x90是C语言中十六进制数的写法,相当于汇编语言中写90H)。 sfr是标准C语言的关键字,而是Keil为能直接访
文档评论(0)