单元片机c语言入门,片机C语言程序设计.ppt

《片机C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《片机C语言程序设计.ppt(74页珍藏版)》请在人人文库网上搜索。

1、第4章单片机c语言程序设计,2020/7/31, 2、目录、c语言和MCS-51单片机C51的数据类型C51的运算量C51的运算符及表达式语句和复合语句C51的输入输出C51程序基本结构和相关语句函数C51结构数据类型、2020/运算符丰富, 数据结构丰富结构化编程可以直接操作计算机硬件生成的目标代码质量高,程序运行效率高,移植性好。2020/7/31,4,4,c语言程序结构,预处理指令include函数说明long fun1(); 浮动fun2(); 变量定义int x,y; 浮动z; 功能函数1 fun1()函数体主函数main ()主函数体功能函数2 fun2()函数体、2020/7/3。

2、1, 5、5、c语言、汇编语言和51系列单片机、C51和汇编语言的区别:汇编语言考虑具体的内存地址c语言只考虑变量的数据类型和存储类型C51和标准c的区别:标准c考虑变量的存储类型keilC51、2020/7/31、6、C51的程序结构,C51与标准c的程序结构基本相同,C51的库函数与标准c不同。 C51的数据类型与标准c有一定的差异C51变量的存储模式与标准c不同C51的输入输出处理与标准c不同C51的函数使用与标准c有一定的差异。 2020年7月31日, 7、目录、c语言和MCS-51单片机C51的数据类型C51的运算量C51的运算符和公式语句以及复合语句C51的输入输出C51程序基本结。

3、构和相关语句函数C51结构数据类型、2020/7/31 char字符类型int整数型long长整数指针型sfr、sfr16特殊功能寄存器型bit、sbit位型、2020/7/31、9、9、C51的基本数据型、2020/7/31、sfr :访问字节型sfr; 示例: sfr P0=0 x80; 示例: sfr SBUF=0 x99; SFR16 :访问连续的2字节sfr。 示例: sfr16 DPTR=0 x82; 访问DPTR可以访问SFR的82H和83H。 示例: sfr16 T0=0 x8A; 也就是说,访问TL0和TH0。 2020/7/31、11、位元类型。 用于访问单片机的可寻址的位。

4、单元。 包含片上RAM和SFR的位地址区域的bit :变量保存在片上RAM的位地址区域(片上RAM20H2FH )中的bit flags; 比特变量的内存类型严格来说只有bdata sbit :变量位于固定地址的比特可寻址单元sbit CY=PSW7; 英特尔数据库; 我的比特15=ibase 15。2020/7/31、12、目录、c语言和MCS-51单片机C51的数据类型C51的运算量C51的运算符和公式语句以及复合语句C51的输入输出C51程序基本结构和相关函数C51结构数据类型、2020/7/31十六进制整数: 浮点常数:0.123、34.0; 文字型常数: a、0、0; 字符串类型常数。

5、: ABC=A,b,c,0,2020/7/31,14,变量的定义格式:存储种类数据类型指定符存储器类型变量名1=初始值,变量名2=初始值staticintxdd数据类型指定符以typedef或#define固有类型取消字符字节; 字节a1=0x 12; 世界a2=0x 1234; 定义字节未指定的char、2020/7/31、15、变量和变量名由字母、数字和下划线组成。 第一个字符不能是数字,不能使用关键词。 在存储器种类、2020/7/31、16、变量、存储器类型、特殊功能寄存器变量C51中,用户允许访问这些特殊功能寄存器,在访问时由sfr或sfr16类型描述符定义,在定义时由与它们对应的片。

6、上RAM单元的格式为sfr或sfr16特殊功能寄存器名=地址示例: sfr TMOD=0 x89; sfr P1=0 x90; sfr16 DPTR=0 x82; sfr16 T1=0X8A,位变量C51时,用户可以用位型符号定义位变量。 有两种位类型: bit和sbit。可以定义2种位变量。 bit位类型符号用于定义一般的位可处理位变量。 此格式是位内存类型的位变量名称sbit位类型符号用于定义位可寻址字节或特殊功能寄存器中的位,并且必须指定该位地址。 可以是位直接地址、位可寻址变量、特殊功能寄存器名或带标签。 格式为: sbit比特变量名=比特地址,【例】比特型变量的定义:比特数据a 1;。

7、 /*正确*/bit bdata a2; /*正确*/bit pdata a3; 错误* /比特xdata a 4; /*错误*/sbit型变量的定义: sbit OV=0 xd2; 比特cy=oxd 7; 无标记卡片数据标志; 比特标志0=标志0; sfr P1=0 x90; sbit P1_0=P10; sbit P1_1=P11; sbit P1_2=P12;2020/7/31,20、存储模式(编译模式)、SMALL模式变量默认存储在芯片上RAM中,存储类型data; 默认情况下,COMPACT模式变量存储在片外RAM低端256B中,存储类型pdata; 默认情况下,LARGE模式变量存。

8、储在片外RAM 64KB中,存储类型xdata; 指定存储模式: #pragma large,2020/7/31,21,常规存储类型,常规默认存储模式为小模式。 未指定内存类型的变量。 默认存储类型为data类型。常见的存储类型为bdata、xdata、代码、charcode text=enter parameter 3360。 无标记长数据阵列100; 无标记卡片数据标志; 比特标志0=标志0; 比特标志1=标志1。 比特标志7=标志7;2020/7/31、22、C51的头文件、C51常用头文件: reg51.h、reg52.h、math.h、ctype.h、stdio.h. #includ。

9、e位于文件的开头。2020/7/31、23、绝对地址访问、库函数的定义宏中包含标头文件#include,ROM的绝对地址为0 x0002的字单元,即0 x0002和0 x0003的2字节单元,2020/7 无标识数据* DP 2; 无符号卡片数据* DP 3; dp1=0 x30; dp2=0 x1000; *dp1=0 xff; *dp2=0 x1234; 由dp3=,芯片外RAM(0 x30)0 xff,芯片外RAM(0 x1000)0 x1234,芯片内ram var 10 x 20,2020/7/31,25 _ at _定义的变量必须是全局变量。 bit类型的函数和变量不能用_at_分。

10、配给绝对地址。 数据消除卡x1_ at _0x 40。 无数据引入x2_ at _0x 2000。 x1=0 xff; x2=0 x1234; 2020年7月31日, 26、目录、c语言和MCS-51单片机C51的数据类型C51的运算量C51的运算符和公式语句以及复合语句C51的输入输出C51程序基本结构和相关函数C51结构数据类型,2020/7/31代入运算符:=算术运算符:- */%关系运算符:=复合赋值运算符:=-=参与侑预算运算的两个个数必须是整数左移和右移都是算术移位,可用空间补零的逗号表达式的值是右端的表达式的值,条件表达式:逻辑表达式? 表达式: 1表达式2; x=*p; /p的。

11、值是地址,将该地址的内容分配给x。 m=/n的值是一个数据,将存储该数据的地址分配给m。 选择2020/7/31、29、目录、c语言和MCS-51单片机C51的数据类型C51的运算量C51的运算符和公式语句以及复合语句C51的输入输出C51程序基本构造和相关函数C51构造数据类型、2020/7/31 在由while语句构成的循环语句后面加上分号,形成不进行其他操作的空循环体。 通常用于确定某个人,如果不满足条件则等待,如果满足条件则执行此机制。a= b*9; x=8; y=7; k;#包括卡片获取器()卡片c; 威廉(! 理由: c=SBUF; RI=0; 返回(c ); while(1);S。

12、JMP $、2020/7/31、31、复合语句将多个语句括在大括号“”中形成复合语句。 每个语句依次执行复合语句中定义的局部变量仅对该语句有效,即仅对有效,局部变量的定义语句1语句2,2020/7/31, 32、目录、c语言和MCS-51单片机C51的数据类型C51的运算量C51的运算符和公式语句以及复合语句C51的输入输出C51程序基本结构和相关函数C51结构数据类型、2020/7/31 PC的键单片机PC监视器输入输出通过串行端口进行,因此程序中需要对单片机的串行端口进行初始化。PC机的串行软件使用系统附带的超级终端, 如果硬件连接能够使波特率与单片机的波特率相匹配,则必须连接串行电缆(模。

13、拟调试时不需要连接串行电缆)。输入、输出、202-0/7/31,34、格式输出函数printf (),控制串行输出数据。 格式: printf (格式控制,输出残奥表)格式控制用双引号括住,包含格式指定符、普通字符、转义字符的格式指定符由%和格式字符构成,2020/7/31,35,格式输入函数scanf (),串行端口格式:扫描(格式控制,地址列表)格式控制与printf ()相同地址列表可以是指针变量:/*循环*/while (表达式) while (i=100) s=s i。 I; do s=s i; I; 威尔(I=100 ); 2020/7/31、41、for语句、for (表达式1;。

14、 式2; 式3 )语句/*循环体*/,for (i=1; i=100; i ) s=s i;2020/7/31、42、环嵌套、环嵌套:一个环内包含另一个完整的环,C51允许三个循环结构相互嵌套,void delay (unsigned intx ) unsignedcharj; 威尔(x- ) for (j=0; j125; j ); 2020/7/31,43、break、continue、return语句、break语句:跳出循环,终止循环。 仅适用于跳出switch语句的循环语句和switch语句的continue语句:退出本次循环,执行下一次循环的判定。 return语句: return。

15、,并非结束当前的整个循环; return (式): 结束此函数,将式的值作为函数的门值,2020/7/31, 44、目录、c语言和MCS-51单片机C51的数据类型C51的运算量C51的运算符和公式语句以及复合语句C51的输入输出C51程序基本结构和相关函数C51结构数据类型、2020/7/31一个函数只能有一个主函数不能调用主函数结束主函数的执行,程序结束主函数可以调用子函数子函数2020/7/31、46,函数定义、 函数定义格式:函数类型函数名(形式残奥仪表) reentrant interrupt m using n局部变量定义函数体函数类型:函数戥值的类型,各种数据类型函数没有戥值时, 类型通常定义为void的格式残奥仪表:函数的入口残奥仪表如果没有入口残奥仪表,请保留空括号(),2020/7/31,47,reentrant修饰符。 定义为可重输入函数。 可重入函数:此函数可以直接或间接调用。注意:函数中不允许使用位变量。如果需要,可以使用全局变量传递残奥仪表。当中断和非中断需要共享一个函数时,经常使用此函数。 麻烦您,不推荐! 什么时候都可以查资料! 2020/7/31,48,中断m修饰符。 将此函数定义为中断服务程序。 注意事项:中断函数不能传达残奥仪表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值