C语言程序设计及仿真调试.ppt

C语言程序设计及仿真调试.ppt

ID:52266765

大小:287.96 KB

页数:27页

时间:2020-04-03

C语言程序设计及仿真调试.ppt_第1页
C语言程序设计及仿真调试.ppt_第2页
C语言程序设计及仿真调试.ppt_第3页
C语言程序设计及仿真调试.ppt_第4页
C语言程序设计及仿真调试.ppt_第5页
资源描述:

《C语言程序设计及仿真调试.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章C语言程序设计及仿真调试4.1C语言程序设计基础(自行复习)4.2KeilC4.3C语言程序设计及调试实例【例4-1】编程实现通过延时函数,由P1.0输出方波信号。解:C语言程序如下:#include“reg51.h”//8051寄存器定义头文件sbitP10=P1^0;//定义P1.0引脚voiddelay(longcnt)//延时函数{while(cnt>0)cnt--;}voidmain(void){P10=1;while(1)//主程序循环{delay(1000);P10=~P10;}}由P1.2口输出信号,如何修改程序?【

2、例4-2】单片机P1口的P1.0和P1.1各接一个开关K1、K2,P1.4、P1.5、P1.6和P1.7各接一只发光二极管。有K1和K2的不同状态来确定哪个发光二极管被点亮。K2K1亮的二极管00L101L210L311L4#include“reg51.h”voidmain(){chara;a=P1;a=a&0x03;//屏蔽高6位if(a==0)P1=0x83;elseif(a==1)P1=0x43;elseif(a==2)P1=0x23;elseP1=0x13;}将例2用while循环实现。#include“reg51.h”voidm

3、ain(){chara;while(1){a=P1;a=a&0x03;//屏蔽高6位switch(a){case0:P1=0x83;break;case1:P1=0x43;break;case2:P1=0x23;break;case3:P1=0x13;}}}4.2KeilC一、C51数据类型与运算1.C51数据类型bit位变量bit位变量是可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1。bitlock;//将lock定义为位变量bitdirection;//将direction定义为位变量sbit

4、可独立寻址的位变量利用它能访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。sbitCY=0xD7;//定义进位标志CY的地址为D7HsbitAC=0xD0^6;//定义辅助进位标志AC的地址为D6HsbitRS0=0xD0^3;//定义RS0的地址为D3Hsfr8位特殊功能寄存器sfr占用一个内存单元,值域为0~255。利用它能访问51单片机内部的所有特殊功能寄存器。例如:sfrPSW=0xD0;//定义程序状态字PSW的地址为D0HsfrTMOD=0x89;//定义定时器/计数器方式控制寄存器TMOD的地址为89HsfrP

5、1=0x90;//定义P1口的地址为90Hsfr1616位特殊功能寄存器sfr16占用两个内存单元,值域为0~65535。sfr16和sfr一样用于操作特殊功能寄存器,不同的是它用于操作占两个字节的寄存器,如定时器T2。sfr16T2=0xCC;//定义8052定时器2,低8位地址为//T2L=CCH,高8位T2H=CDH2.C51数据存储类型存储类型与存储空间的对应关系data直接寻址片内数据存储区,访问速度快(128字节)bdata可位寻址片内数据存储区,允许位与字节混合访问(16字节)idata间接寻址片内数据存储区,可访问片内全部

6、RAM地址空间(256字节)pdata分页寻址片外数据存储区(256字节),由MOVX@Ri访问xdata寻址片外数据存储区(64K字节),有MOVX@DPTR访问code寻址代码存储区(64K字节),有MOVC@DPTR访问chardatavar1;//字符变量charvar1被定义为data存储类型,定位在片内RAM中bitbdataflags;//位变量flags被定义为bdata存储类型,定位在片内RAM中的位寻址区(20H~2FH)floatidatax,y,z;//浮点变量x,y,z被定义为idata存储类型,定位在片内RAM

7、中,并只能用间接寻址的方法进行访问unsignedintpdatadimension;//无符号整型变量dimension被定义为pdata存储类型,定位在片外数据存储区,并用MOVX@Ri访问unsignedcharxdatavector[10][4][4];//无符号字符三维数组变量unsignedcharvector[10][4][4]被定义为xdata存储类型,定位在片外RAM中,占据10×4×4=160个字节空间unsignedcharcodea[]={0x00,0x01};//数组a[]被定义为code存储类型,定位在程序存储

8、器中C51运算符、表达式及其规则位运算的操作对象只能是整型和字符型数据,不能是实型数据。C51提供以下六种位运算。&(按位与)相当于ANL指令

9、(按位或)相当于ORL指令^(按位异或)相当于X

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。