8C的C语言程序设计概论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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

文档评论(0)

骨干 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档