文库网
ImageVerifierCode 换一换
首页 文库网 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

《单片机原理及应用》课件01-C51语言指令.ppt

  • 资源ID:20014241       资源大小:432.50KB        全文页数:21页
  • 资源格式: PPT        下载积分:10文币
微信登录下载
快捷下载 游客一键下载
账号登录下载
三方登录下载: QQ登录 微博登录
二维码
扫码关注公众号登录
下载资源需要10文币
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

《单片机原理及应用》课件01-C51语言指令.ppt

1、第第4章章单片机单片机C51编程编程l l数据存储类型数据存储类型l lC51数据类型数据类型l l存储模式存储模式l l对存储器和外接对存储器和外接I/O的绝对地址的绝对地址访问访问l lC51函数函数4.1C51数据类型及运算符数据类型及运算符一、一、C51的数据存储类型的数据存储类型8051单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区,单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区,如何将每个变量明确地分配到指定的存储空间。如何将每个变量明确地分配到指定的存储空间。C51存储类型与存储类型与8051存储空间的对应关系存储空间的对应关系存存储储区区描述描述

2、data片内片内RAM的低的低128字字节节,可在一个周期内直接,可在一个周期内直接寻寻址址bdata片内片内RAM的位的位寻寻址区,址区,16字字节节idata片内片内RAM的的256字字节节,必,必须须采用采用间间接接寻寻址址xdata外部数据存外部数据存储储区,使用区,使用DPTR间间接接寻寻址址pdata外部存外部存储储区的区的256个字个字节节,通,通过过P0口的地址口的地址对对其其寻寻址。址。使用使用MOVX Ri,需要两个指令周期,需要两个指令周期code程序存程序存储储区,使用区,使用DPTR寻寻址。址。例:例:ucsignedcharbdataage;/在位寻址区定义ucsi

3、gnedchar类型的变量agebitflag=age7/用关键字用关键字sbit定义位变量来独立访问可寻址位对象的其中一位定义位变量来独立访问可寻址位对象的其中一位charcodeNAME=“ZHAOMING”定义变量时如果省略存储器类型,系统则会按编译模式定义变量时如果省略存储器类型,系统则会按编译模式SMALL、COMPACT或或LARGE所规定的默认存储器类型去指定变量的存储区域。所规定的默认存储器类型去指定变量的存储区域。无论什么存储模式都可以声明变量在任何的无论什么存储模式都可以声明变量在任何的8051存储区范围,存储区范围,把最常用的变量、命令放在内部数据区可以显著的提高系统性能

4、。把最常用的变量、命令放在内部数据区可以显著的提高系统性能。C51支持的主要编译模式:支持的主要编译模式:存存储模式模式说 明明SMALLSMALL 函数参数及局部函数参数及局部变量放在片内量放在片内RAMRAM(默默认变量量类型型为DATADATA,最大最大128128字字节)。另外所有)。另外所有对象包括象包括栈都都优先放置于片内先放置于片内RAMRAM,当片内当片内RAMRAM用用满,再向片外,再向片外RAMRAM放置。放置。COMPACTCOMPACT 参数及局部参数及局部变量放在片外量放在片外RAMRAM(默默认的存的存储类型是型是PDATAPDATA,最,最大大256256字字节)

5、;通);通过R0R0、R1R1间接接寻址,址,栈位于位于80518051片内片内RAMRAM。LARGELARGE 参数及局部参数及局部变量直接放入片外量直接放入片外RAM(RAM(默默认的存的存储类型是型是XDATAXDATA,最大,最大64KB64KB);使用数据指;使用数据指针DPTRDPTR间接接寻址。因此址。因此访问效率效率较低低且直接影响代且直接影响代码长度度二、二、C51的数据类型的数据类型通过通过“文件包含文件包含”简化设计简化设计#include“reg51.h”访问SFR的数据类型:sfrsfr16sbit“文件包含文件包含”是指一个文件将另外一个文件的内容全部包含进来,是

6、指一个文件将另外一个文件的内容全部包含进来,程序虽然只有一行,但程序虽然只有一行,但C编译器在处理的时候却要处理几十或编译器在处理的时候却要处理几十或几百行。几百行。特殊功能寄存器的特殊功能寄存器的C51定义定义7reg51.hreg51.h 文件包含的内容文件包含的内容:/*-REG51.HHeaderfileforgeneric80C51and80C-*/*BYTERegister*/sfrP0=0 x80;sfrP1=0 x90;sfrP2=0 xA0;sfrP3=0 xB0;sfrPSW=0 xD0;sfrACC=0 xE0;sfrB=0 xF0;sfrSP=0 x81;sfrDPL=

7、0 x82;sfrDPH=0 x83;sfrPCON=0 x87;sfrTCON=0 x88;sfrTMOD=0 x89;sfrTL0=0 x8A;sfrTL1=0 x8B;sfrTH0=0 x8C;sfrTH1=0 x8D;sfrIE=0 xA8;sfrIP=0 xB8;sfrSCON=0 x98;sfrSBUF=0 x99/*BITRegister*/*PSW*/sbitCY=0 xD7;sbitAC=0 xD6;sbitF0=0 xD5;sbitRS1=0 xD4;sbitRS0=0 xD3;sbitOV=0 xD2;sbitP=0 xD0;/*TCON*/sbitTF1=0 x8F;s

8、bitTR1=0 x8E;sbitTF0=0 x8D;sbitTR0=0 x8C;sbitIE1=0 x8B;sbitIT1=0 x8A;sbitIE0=0 x89;sbitIT0=0 x88;/*IE*/sbitEA=0 xAF;sbitES=0 xAC;sbitET1=0 xAB;sbitEX1=0 xAA;sbitET0=0 xA9;sbitEX0=0 xA8;l l/*IP*/sbitPS=0 xBC;sbitPT1=0 xBB;sbitPX1=0 xBA;sbitPT0=0 xB9;sbitPX0=0 xB8;l l/*P3*/sbitRD=0 xB7;sbitWR=0 xB6;sb

9、itT1=0 xB5;sbitT0=0 xB4;sbitINT1=0 xB3;sbitINT0=0 xB2;sbitTXD=0 xB1;sbitRXD=0 xB0;l l/*SCON*/sbitSM0=0 x9F;sbitSM1=0 x9E;sbitSM2=0 x9D;sbitREN=0 x9C;sbitTB8=0 x9B;sbitRB8=0 x9A;sbitTI=0 x99;sbitRI=0 x98;l lP0-P3各个位需单独定义:sbitP1_0=P10;三、三、C51对存储器和外部对存储器和外部I/O的绝对地址访问的绝对地址访问绝对地址访问头文件绝对地址访问头文件:absacc.h函数

10、:函数:CBYTECWORD(CBYTECWORD(访问访问codecode区区)DBYTEDWORD(DBYTEDWORD(访问访问datadata区区)PBYTEPWORD(PBYTEPWORD(访问访问pdatapdata区区)XBYTEXWORD(XBYTEXWORD(访问访问xdataxdata区区)例:例:#include#includeDBYTE0 x30=0 x10;DBYTE0 x30=0 x10;XBYTE0 xfffe=0 x20;XBYTE0 xfffe=0 x20;XWORD0 x1000=0 xfffd;XWORD0 x1000=0 xfffd;R0-R7非非SFR

11、,如程序中使用如程序中使用Rn,要用绝对地址定义:要用绝对地址定义:要用绝对地址定义:要用绝对地址定义:#defineR0DBYTE0 x00#defineR0DBYTE0 x00#defineR7DBYTE0 x07#defineR7DBYTE0 x07四、C51的运算符1.1.将将将将“”右边的值赋给右边的值赋给右边的值赋给右边的值赋给“”左边的变量左边的变量左边的变量左边的变量(注:不注:不注:不注:不是相等运算符是相等运算符是相等运算符是相等运算符)2.C512.C51的算术运算符的算术运算符的算术运算符的算术运算符+(+(加或正号加或正号加或正号加或正号);(减或负号减或负号减或负号

12、减或负号);*(乘号乘号乘号乘号);/(/(除号除号除号除号);%(%(求余求余求余求余)优先级为:先乘除,后加减,先括号内,再括号外优先级为:先乘除,后加减,先括号内,再括号外优先级为:先乘除,后加减,先括号内,再括号外优先级为:先乘除,后加减,先括号内,再括号外3.C513.C51的关系运算符有六种:的关系运算符有六种:的关系运算符有六种:的关系运算符有六种:(小于小于小于小于);(大于大于大于大于);=(=(小于等于小于等于小于等于小于等于);=(=(大于等于大于等于大于等于大于等于);=(=(相等相等相等相等);!=(!=(不相等不相等不相等不相等)优先级:前四个高,后二个优先级:前四

13、个高,后二个优先级:前四个高,后二个优先级:前四个高,后二个“=”和和和和“!=!=”级别低级别低级别低级别低4.C514.C51的逻辑运算符有三种:的逻辑运算符有三种:的逻辑运算符有三种:的逻辑运算符有三种:&(&(逻辑与逻辑与逻辑与逻辑与);|(|(逻辑或逻辑或逻辑或逻辑或);!(!(逻辑非逻辑非逻辑非逻辑非)运算符的两边为关系表达式,逻辑表达式和关系表运算符的两边为关系表达式,逻辑表达式和关系表运算符的两边为关系表达式,逻辑表达式和关系表运算符的两边为关系表达式,逻辑表达式和关系表达达达达式的值相同,以式的值相同,以式的值相同,以式的值相同,以“0”0”代表假,以:代表假,以:代表假,以

14、:代表假,以:“1”1”代表真。代表真。代表真。代表真。以上三种运算的优先级见图以上三种运算的优先级见图以上三种运算的优先级见图以上三种运算的优先级见图4.14.1。5.C515.C51的按位操作的运算符有六种:的按位操作的运算符有六种:的按位操作的运算符有六种:的按位操作的运算符有六种:&(按位与按位与按位与按位与);(按位或按位或按位或按位或);(按位异或按位异或按位异或按位异或);(位取反位取反位取反位取反);(位右移位右移位右移位右移)(注注注注:移位操作为补零移位移位操作为补零移位移位操作为补零移位移位操作为补零移位)例例例例1.a=0 xf01.a=0 xf0;表达式表达式表达式表

15、达式a=a=a a值为值为值为值为0FH0FH例例例例2.a=0 xea2.a=0 xea;表达式表达式表达式表达式a2a2值为值为值为值为A8HA8H,即,即,即,即a a值左移两值左移两值左移两值左移两位,移位后空白位补位,移位后空白位补位,移位后空白位补位,移位后空白位补0 06.自增、自减运算符自增、自减运算符+i,-i(在使用在使用i之前,先使之前,先使i值加值加(减减)1)i+,i-(在使用在使用i之后,再使之后,再使i值加值加(减减)1)例例设设i原值为原值为5如如j=+i则则j值为值为6,i值也为值也为6如如j=i+则则j值为值为5,i值为值为67.复合赋值运算符复合赋值运算符

16、+=,-=,*=,/=,%=,=,&=,=,|=。例:例:a+=b相当于相当于a=a+b。A=g相当于相当于a=ag8 8.对指针操作的运算符对指针操作的运算符&取地址运算取地址运算取地址运算取地址运算*间址运算符间址运算符间址运算符间址运算符例例例例 a=&ba=&b;取;取;取;取b b变量的地址送变量变量的地址送变量变量的地址送变量变量的地址送变量aa。例例例例 char*b;c=*bchar*b;c=*b;将以;将以;将以;将以b b的内容为地址的单元的的内容为地址的单元的的内容为地址的单元的的内容为地址的单元的内容送内容送内容送内容送C C。注意注意注意注意:l l“&”与按位与运算符的差别,如果与按位与运算符的差别,如果与按位与运算符的差别,如果与按位与运算符的差别,如果“&”为为为为“与与与与”,&的的的的两边必须为变量或常量;两边必须为变量或常量;两边必须为变量或常量;两边必须为变量或常量;l l“*”与及指针定义时指针前的与及指针定义时指针前的与及指针定义时指针前的与及指针定义时指针前的“*”的差别,如的差别,如的差别,如的差别,如char*char*ptpt的的的的“*”只表示只表示只表示只表示ptpt为指针为指针为指针为指针 变量,不代表间址取内容的运算。变量,不代表间址取内容的运算。变量,不代表间址取内容的运算。变量,不代表间址取内容的运算。


注意事项

本文(《单片机原理及应用》课件01-C51语言指令.ppt)为本站会员(bubibi)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(点击联系客服),我们立即给予删除!




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

文库网用户QQ群:731843829  微博官方号:文库网官方   知乎号:文库网

Copyright© 2025 文库网 wenkunet.com 网站版权所有世界地图

经营许可证编号:粤ICP备2021046453号   营业执照商标

1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png