C语言程序设计及仿真调试.ppt
《C语言程序设计及仿真调试.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计及仿真调试.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/89版权所有。版权所有。单片机原理及应用第第4 4章章 C C语言程序设计及仿真调试语言程序设计及仿真调试 4.1 C4.1 C语言程序设计基础语言程序设计基础(自行复习)(自行复习)4.2 Keil C4.2 Keil C 4.3 C4.3 C语言程序设计及调试实例语言程序设计及调试实例 2/89版权所有。版权所有。单片机原理及应用【例例4-14-1】编程实现通过延时函数,由编程实现通过延时函数,由P1.0P1.0输出方波信号。输出方波信号。解:解:C C语言程序如下:语言程序如下:#include“reg51.h”#include“reg51.h”/8051/8051寄存器定义头文件寄
2、存器定义头文件 sbit P10=P10;sbit P10=P10;/定义定义P1.0P1.0引脚引脚 void delay(long cnt)void delay(long cnt)/延时函数延时函数 while(cnt0)cnt-;while(cnt0)cnt-;void main(void)void main(void)P10=1;P10=1;while(1)/while(1)/主程序循环主程序循环 delay(1000);delay(1000);P10=P10;P10=P10;由由P1.2口输出信号,如何修改程序?口输出信号,如何修改程序?3/89版权所有。版权所有。单片机原理及应用【
3、例例4-2】单片机单片机P1口的口的P1.0和和P1.1各接一个开关各接一个开关K1、K2,P1.4、P1.5、P1.6和和P1.7各接一只发光二极管。有各接一只发光二极管。有K1和和K2的不同状态来确定哪个发光二极管被点亮。的不同状态来确定哪个发光二极管被点亮。K2K1亮的二极管00L101L210L311L44/89版权所有。版权所有。单片机原理及应用#include“reg51.h”void main()char a;a=P1;a=a&0 x03;/屏蔽高6位if(a=0)P1=0 x83;else if(a=1)P1=0 x43;else if(a=2)P1=0 x23;else P1
4、=0 x13;5/89版权所有。版权所有。单片机原理及应用 将例将例2用用while循环实现。循环实现。#include“reg51.h”void main()char a;while(1)a=P1;a=a&0 x03;/屏蔽高6位 switch(a)case0:P1=0 x83;break;case1:P1=0 x43;break;case2:P1=0 x23;break;case3:P1=0 x13;6/89版权所有。版权所有。单片机原理及应用4.2 Keil C一、C51数据类型与运算 1.C51数据类型数据类型 bit 位变量位变量 bit位变量是可定义一个位标量,但不能定义位指针,位
5、变量是可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是也不能定义位数组。它的值是一个二进制位,不是0就是就是1。bit lock;/将将lock定义为位变量定义为位变量bit direction;/将将direction定义为位变量定义为位变量7/89版权所有。版权所有。单片机原理及应用sbit 可独立寻址的位变量可独立寻址的位变量 利用它能访问芯片内部的利用它能访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位或特殊功能寄存器中的可寻址位。中的可寻址位。sbit CY=0 xD7;/定义进位标志定义进位标志CY的地址为的地址为D7Hsbit AC=0
6、 xD06;/定义辅助进位标志定义辅助进位标志AC的地址为的地址为D6Hsbit RS0=0 xD03;/定义定义RS0的地址为的地址为D3H 8/89版权所有。版权所有。单片机原理及应用sfr 8位特殊功能寄存器位特殊功能寄存器 sfr占用一个内存单元,值域为占用一个内存单元,值域为 0255。利用它能。利用它能访问访问51单片机内部的所有特殊功能寄存器。单片机内部的所有特殊功能寄存器。例如:sfr PSW=0 xD0;/定义程序状态字PSW的地址为D0Hsfr TMOD=0 x89;/定义定时器/计数器方式控制寄存器TMOD的地址为89Hsfr P1=0 x90;/定义P1口的地址为90H
7、9/89版权所有。版权所有。单片机原理及应用sfr16 16位特殊功能寄存器位特殊功能寄存器 sfr16占用两个内存单元,值域为占用两个内存单元,值域为 065535。sfr16和和sfr一样用于操作特殊功能寄存一样用于操作特殊功能寄存 器,不同的是它用于操作占两器,不同的是它用于操作占两个字节的寄存器,如定时器个字节的寄存器,如定时器T2。sfr16 T2=0 xCC;/定义定义8052定时器定时器2,低,低8位地址为位地址为 /T2L=CCH,高,高8位位T2H=CDH10/89版权所有。版权所有。单片机原理及应用2.C51数据存储类型数据存储类型 存存储类储类型型与存与存储储空空间间的的
8、对应对应关系关系data直接直接寻寻址片内数据存址片内数据存储储区,区,访问访问速度快(速度快(128字字节节)bdata可位可位寻寻址片内数据存址片内数据存储储区,允区,允许许位与字位与字节节混合混合访问访问(16字字节节)idata间间接接寻寻址片内数据存址片内数据存储储区,可区,可访问访问片内全部片内全部RAM地址空地址空间间(256字字节节)pdata分分页寻页寻址片外数据存址片外数据存储储区(区(256字字节节),由,由MOVX Ri访问访问xdata寻寻址片外数据存址片外数据存储储区(区(64K字字节节),有,有MOVX DPTR访问访问code寻寻址代址代码码存存储储区(区(64
9、K字字节节),有,有MOVC DPTR访问访问11/89版权所有。版权所有。单片机原理及应用char data var1;/字符字符变变量量char var1被定被定义为义为data存存储类储类型,型,定位在片内定位在片内RAM中中bit bdata flags;/位位变变量量flags被定被定义为义为bdata存存储类储类型,定位型,定位在片内在片内RAM中的位中的位寻寻址区(址区(20H2FH)float idata x,y,z;/浮点浮点变变量量x,y,z被定被定义为义为idata存存储类储类型,型,定位在片内定位在片内RAM中,并只能用中,并只能用间间接接寻寻址的址的方法方法进进行行访
10、问访问unsigned int pdata dimension;/无符号整型无符号整型变变量量dimension被定被定义为义为pdata存存储类储类型,定位在片外数据存型,定位在片外数据存储储区,并用区,并用MOVX Ri访问访问unsigned char xdata vector1044;/无符号字符三无符号字符三维维数数组变组变量量unsigned char vector1044被定被定义为义为xdata存存储类储类型,定型,定位在片外位在片外RAM中,占据中,占据1044=160个字个字节节空空间间unsigned char code a=0 x00,0 x01;/数数组组a被定被定义
11、为义为code存存储类储类型,定位在程型,定位在程序存序存储储器中器中12/89版权所有。版权所有。单片机原理及应用C51运算符、表达式及其规则 位运算的操作对象只能是整型和字符型数据,不位运算的操作对象只能是整型和字符型数据,不能是实型数据。能是实型数据。C51提供以下六种位运算。提供以下六种位运算。&(按位与(按位与)相当于相当于ANL指令指令|(按位或(按位或)相当于相当于ORL指令指令 (按位异或(按位异或)相当于相当于XRL指令指令 (按位取反(按位取反)相当于相当于CPL指令指令 (右移(右移)相当于相当于RR指令指令位运算符及其表达式位运算符及其表达式13/89版权所有。版权所有
12、。单片机原理及应用二、C51流程控制语句 1、选择语句 l if语句l switch/case语句 2、循环语句l while语句 l do-while语句 l for语句 14/89版权所有。版权所有。单片机原理及应用数组 数组是相关数据的一个有序集合,数组中的每个元素都是同一类型的数据。一维数组 由具有一个下标的数组元素组成的数组称为一维数组。例如:int a5=1,2,3,4,5;/给全部元素赋值,a0=1,a1=2,a2=3,a3=4,a4=5例15:15/89版权所有。版权所有。单片机原理及应用 二维数组由具有两个下标的数组元素组成的数组称为二维数组。int a34=1,2,3,4,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 仿真 调试
限制150内