教学课件PPT 89C51单片机的C51程序设计.ppt

上传人:仙人指路1688 文档编号:2369656 上传时间:2023-02-16 格式:PPT 页数:22 大小:212.02KB
返回 下载 相关 举报
教学课件PPT 89C51单片机的C51程序设计.ppt_第1页
第1页 / 共22页
教学课件PPT 89C51单片机的C51程序设计.ppt_第2页
第2页 / 共22页
教学课件PPT 89C51单片机的C51程序设计.ppt_第3页
第3页 / 共22页
教学课件PPT 89C51单片机的C51程序设计.ppt_第4页
第4页 / 共22页
教学课件PPT 89C51单片机的C51程序设计.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《教学课件PPT 89C51单片机的C51程序设计.ppt》由会员分享,可在线阅读,更多相关《教学课件PPT 89C51单片机的C51程序设计.ppt(22页珍藏版)》请在三一办公上搜索。

1、第4章 C51程序设计,1.C51存储类型2.特殊功能寄存器的C51定义3.绝对地址单元的C51访问4.集成开发环境uVision2,本章学习要求:,单片机原理及应用,4.1 C51程序设计语言概述,4.1 C51程序设计语言概述,机器语言:用二进制代码表示的指令,也是CPU唯一能够接受的指令形式.如:MOV A,R0;机器语言(机器码)为:1110_1000b MOV R1,A;机器码为:1111_1001b汇编语言:汇编语言就是用助字符表示的指令,与机器语言指令一一对应。如:两个寄存器相加汇编语言指令:ADD A,R0C51语言:语法同标准C语言。开发效率高,可读性强,是目前使用最为广泛的

2、单片机开发语言。一条C语言通常需要由多条机器语言组成。,4.1 C51程序设计语言概述,1.降低学习难度,仅需要掌握存储器接口;2.打破不同单片机之间的界限;3.程序可读性强、可移植性强、开发效率高。,1.单片机的程序存储器做得越来越大、越来越便宜。2.单片机的主频越来越高,现在51单片机很多都可以做到40M/80M/100M,而且还有很多是单周期的。,是否存在不好之处?,C51设计单片机的好处:,1.生成机器语言代码冗余,占用较多程序存储单元;2.程序的执行效率不高,导致运行速度慢。,4.2 C51程序设计基础,4.2.1 C51变量/常量存储类型,C51存储类型定义举例:,unsigned

3、 char data x,y,z;/*在内部RAM区定义了3个无符号字节型变量x,y,z*/,unsigned int data i,j,k;/*在内部RAM区定义了3个无符号整型变量i,j,k*/,unsigned char code pfb10=0,1,4,9,16,25,36,49,64,81/*在程序存储器里定义了10字节的常量数组*/,4.2 C51程序设计基础,4.2 C51程序设计基础,4.2.2 特殊功能寄存器的C51定义,特殊功能寄存器的定义方法:sfr 特殊功能寄存器名=地址常数;例如:sfr P0=0 x80;/*定义P0口地址为80H*/,为了在C51程序中能够直接访问

4、位于内部数据存储器中的21字节SFR以及其中11字节可位选址的位,C51语言提供了与标准C语言不兼容的定义方法,扩充了关键字“sfr”和“sbit”,利用这种扩充的关键字可以在C51程序中直接操作21字节的特殊功能寄存器和11字节可位寻址的位。,方法三:sbit 位变量名=特殊功能寄存器地址位位置;例如:sbit P10=0 x900;,方法一:sbit 位变量名=位地址常数;例如:sbit OV=0 xD2;,特殊功能寄存器中可位寻址位的定义有三种方法:,方法二:sbit 位变量名=特殊功能寄存器名位位置;/*必须先用sfr定义特殊功能寄存器名*/例如:sfr PSW=0 xD0;sbit

5、CY=PSW7;,4.2 C51程序设计基础,说明:1.我们并不需要动手使用sfr和sbit定义每一个特殊功能寄存器和位,因为在C51编译器里提供了一个“reg51.h”的头文件,在该头文件里已经定义好所有特殊功能寄存器和可寻址位2.只要在程序开始处增加一条包含指令“#include”,4.2 C51程序设计基础,4.2.3绝对地址单元的C51访问,4.2 C51程序设计基础,unsigned char data rval;/定义变量rval,位于内部数据存储器rval=CBYTE0 x0002;/将程序存贮器的0002H地址单元的值赋给rvalrval=DBYTE 0 x32;/将内部数据存

6、储器的32H地址单元的值赋给rvalrval=XBYTE 0 x0002;/将外部数据存储器的0004H地址单元的值赋给rval,说明:1.C51编译器里头文件“absacc.h”定义有多个地址直针,包括CBYTE、DBYTE、PBYTE、XBYTE、CWORD、DWORD、PWORD、XWORD,可以通过单元地址直接访问程序存储器、内部数据存储器、分页寻址外部数据存储器、外部数据存储器。2.使用这些指针之前,必须要在程序中增加一条包含指令“include”。,4.2 C51程序设计基础,4.2.4 C51运算符与常用语句,4.2 C51程序设计基础,表4-2 算术运算符,4.2 C51程序设

7、计基础,表4-3 关系运算符,4.2 C51程序设计基础,表4-4 逻辑运算符,表4-5 位运算符,4.2 C51程序设计基础,表4-6 常用语句,4.2 C51程序设计基础,表4-6 常用语句,4.3 C51程序举例,例1:设变量放在片内RAM 20H单元,其取值范围为0-5,要求编制一段程序,查出变量的平方值,并放入片内RAM 21H单元。分析:该例需要掌握如何访问一个指定地址的存储单元。,/#include#include#define uchar unsigned charvoid main(void)uchar number;uchar code table6=0,1,4,9,16,

8、25;number=DBYTE0 x20;switch(number)case 0:DBYTE0 x21=table0;continue;case 1:DBYTE0 x21=table1;continue;,case 2:DBYTE0 x21=table2;continue;case 3:DBYTE0 x21=table3;continue;case 4:DBYTE0 x21=table4;continue;case 5:DBYTE0 x21=table5;continue;default:break;while(1);,4.3 C51程序举例,#include#define uchar un

9、signed charvoid main(void)uchar data x,y;x=DBYTE0 x30;if(x=100)y=0 x20;else if(x100)y=x;else y=x-49DBYTE0 x30=y;while(1);,例2:设变量x以无符号单字节数形式存放在内部RAM 30H单元,函数y与x有如下关系,试编制程序,根据x的大小求出y并放回原单元。,4.3 C51程序举例,#include#define uchar unsigned charvoid main(void)uchar data x,y;x=DBYTE0 x50;y=DBYTE0 x51;if(xy)DBY

10、TE0 x60=x;else DBYTE0 x60=y;while(1);,例3:试编写程序,将片内RAM 50H和51H单元两个无符号单字节数中较小的数存放到60H单元。,4.3 C51程序举例,例4:把外部数据RAM中从地址2000H单元开始的100个有符号数逐一取出,若为正数则放回原单元,若为负数则求补后放回。,#include#define uchar unsigned char#define uint unsigned charvoid main(void)uchar data numb=0;uchar data i;uint data xadd=0 x2000;for(i=0;i1

11、00;i+)if(XBYTExadd0)numb=(XBYTExadd)+1;XBYTExadd=numb;xddr+;,4.3 C51程序举例,例5:假定有两个无符号二进制数分别存放于内部RAM 40H和41H单元,编写程序求这两个数的和,并将和存放在42H单元。,#include#define uchar unsigned charuchar SUM(uchar x1,uchar x2);void main(void)uchar number1;uchar number2;uchar val;number1=DBYTE0 x40;number2=DBYTE0 x41;val=SUM(num

12、ber1,number2);DBYTE0 x42=val;whilie(1);,uchar SUM(uchar x1,uchar x2)uchar x;x=x1+x2;return x;,4.3 C51程序举例,例6:假定P1口连接有8只供阴极发光二极管,试编写程序,以1秒为间隔,依次选环点亮每只发光管。,#include#define uchar unsigned charvoid delay1s(void);void main(void)uchar data temp,j;whilie(1)temp=1;for(j=0;j8;j+)P1=temp;temp1;delay1s();,void delay1s(void)uchar data x,y,z;for(x=0;x100;x+)for(y=0;y100;y+)z+;,4.4 集成开发环境uVISION2,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号