- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8C的C语言程序设计概论
第10章 80C51的C语言程序设计;10.1 单片机C语言概述 ;Date;10.1.2 C51程序结构;10.2.1 C51的数据类型;尽可能采用无符号格式
bit用于定义位变量的名字,编译器会对其分配地址(RAM的20H~2FH 区域)
sbit用于定义位变量的名字和地址,地址是确定的且不用编译器分配(SFR及RAM的20H~2FH 区域)
C51编译器在编译时会自动进行类型转换 ;10.2.2 C51数据的存储类型;经常使用的变量应该置于片内RAM中,要用bdata、data、idata来定义
不经常使用的变量或规模较大的变量应该置于片外RAM中,要用pdata、xdata来定义
默认存储器类型由编译控制命令的存储模式指令限制 ;10.2.3 80C51硬件结构的C51定义;特殊功能寄存器中特定位的声明 ;内部RAM中可位寻址对象的定义 ;算术运算符和算术表达式 ;自增、自减运算符(仅能用于变量)
例如:
++ 自增运算符;
-- 自减运算符;;关系运算符和关系表达式 ;逻辑运算符和逻辑表达式 ;位运算符 ;赋值和复合赋值运算符 ;10.3 C51流程控制语句 ;if(条件表达式1)语句1
else if (条件表达式2)语句2
else if (条件表达式3)语句3
… …
else if (条件表达式n)语句n
else 语句n+1 ;开关语句;10.3.2 C51循环语句 ;for语句; 直到型循环
形式为:
loop:{语句
if(表达式) goto loop;
};10.4 C51的指针类型 ;定义时未指定它所指向的对象的存储器类型 ;一般指针定义示例:;10.4.2 基于存储器的指针;10.5 C51的函数 ;10.5.2 C51函数的调用与参数传递 ;SMALL模式下,在内部RAM中完成
COMPACT模式下,在外部RAM中完成
LARGER模式下,在外部RAM中完成;10.6 C51编程实例 ;【例10-1】单片机应用系统中,外中断0引脚接一个开关,并行口线P1.0接一个发光二级管。要求:开关闭合一次,发光二极管的状态改变一次。试编写程序 ;定时计数器编程示例;#include “reg51.h”
sbit P10 = P1^0;
void timer0(void)interrupt 1
{
P10 = ! P10;
TH0 = -(10000/256);
TL0 = -(10000%256);
} ;10.6.2 80C51扩展资源的编程 ;#include “reg51.h”
#include “absacc.h” /*含有对XBYTE等绝对地址访问宏的定义*/
#define uchar unsigned char
#define COMD8155 XBYTE[0x7f00]
#define PA8155 XBYTE[0x7f01]
#define PB8155 XBYTE[0x7f02]
#define PC8155 XBYTE[0x7f03]
sbit BUSY = P3^3; ;uchar code tab[17] =
{0xb8,0xdf,0xbd,0xcc,0x20,
0xb3,0xf6,0xb0,0xe6,0xc9,0xe7,0x20,
0x32,0x30,0x30,0x38,0x0a};/*高教 出版社 2008*/
uchar t1 = 17;;void main(void)
{
COMD8155 = 0x0f;/*送命令字*/
prt(0x1c); /*送中文打印方式命令字高字节*/
prt(0x26); /*送中文打印方式命令字低字节*/
EA = 1;
EX1 = 1;
while(1);
};void int1(void)interrupt 2 using 1
{
uchar i;
EA = 0;
for(i = 0;i t1;i ++)prt(tab[i]);
EA = 1;
};A/D转换接口编程示例;# include “reg51.h”
# include “absacc.h”
# define uchar unsigned char
# define IN0 XBYTE[0x7ff8]
sbit ad_busy = P3^3; ;void ad0809(uchar idata *x)
{
uchar i;
uchar xdata * ad_adr;
ad_adr = IN0;
for(i = 0;i
您可能关注的文档
最近下载
- 03 八年级上册(下)-部编版初中语文文言文对比阅读(解析版).docx VIP
- 寿光模式课件.pptx
- (高清版)DG∕TJ 08-2038-2021 建筑围护结构节能现场检测技术标准.docx VIP
- 苏少版四年级上册音乐 2.2丰收之歌 打麦号子 课件(共21张PPT)(含音频+视频).ppt VIP
- Siemens西门子工业SINUMERIK Integrate Create MyHMI 3GL (安装) SINUMERIK Integrate Create MyHMI 3GL (安装)使用手册.pdf
- 产业园物业管理的重点和难点.docx VIP
- 大学竞选心理委员ppt模板.pptx VIP
- 2025年南京市中考语文试题卷(含答案解析).docx
- 药物疗法 口服给药法(基础护理课件).pptx
- 2025年京东常温奶行业白皮书doc.docx VIP
文档评论(0)