单片机的C语言编程---课外自学内容三.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:92 大小:2.7MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

单片机的C语言编程---课外自学内容三.ppt

单片机的C语言编程---课外自学内容三.ppt

预览

免费试读已结束,剩余 82 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

单片机原理、接口及应用内容提要10.1C51程序结构C语言程序的组成结构如下所示:10.2C51的数据类型10.2.1C51变量的数据类型10.2.2关于指针型数据10.3数据的存贮类型和存贮模式表10-4C51的变量的存贮类型10.3.2存贮器模式10.3.3变量说明举例10.4C51对SFR、可寻址位、存储器和I/O口的定义10.4.2对位变量的定义10.4.3C51对存贮器和外接I/O口的绝对地址访问例10-2XWORD[0]=0x9988;即将9988H(int类型)送入外部RAM的0号和1号单元。使用中要注意:absacc.h一定要包含进程序,XBYTE必须大写。2.对外部I/O口的访问由于单片机的I/O口和外部RAM统一编址,因此对I/O口地址的访问可用XBYTE(MOVX@DPTR)或PBYTE(MOVX@Ri)进行。例10-3XBYTE[0Xefff]]=0x10;将10H输出到地址为EFFFH端口10.5C51的运算符4.C51的逻辑运算符有三种:&&(逻辑与);||(逻辑或);!(逻辑非);逻辑表达式和关系表达式的值相同,以0代表假,以1代表真。以上三种运算的优先级见图10.1。5.C51的按位操作的运算符有六种:&(按位与);|(按位或);^(按位异或);~(位取反);<<(位左移);>>(位右移)(注:补零移位)例1.a=0xf0H;表达式a=~a值为0FH例2.a=0xea;表达式a<<2值为A8H,即a值左移两位,移位后空白位补0。6.自增、自减运算符:++i,--i(在使用i之前,先使i值加1,减1)i++,i--(在使用i之后,再使i值加1.,减1)例设i原值为5j=++i则j值为6,i值也为6j=i++则j值为5,i值为67.复合赋值运算符:+=;-=;*=;/=;%=;<<=;>>=;&=;^=;|=。例:a+=b相当于a=a+b。a>>=7.相当于a=a>>7.。8.对指针操作的运算符:&—取地址运算*—间址运算符例a=&b;取b变量的地址送变量ac=*b;将以b的内容为地址的单元的内容送c这里要注意:①“&”与按位与运算符的差别,如果“&”为“与”,&的两边必须为变量或常量;②“*”与指针定义时指针前的“*”的差别。如char*pt,这里的“*”只表示pt为指针变量,不代表间址取内容的运算。10.6函数10.6.2函数的定义10.6.3函数的调用10.6.4对被调函数的说明10.7C语言编程实例10.7.1顺序程序的设计例10-6片内RAM20H单元存放着一个0~05H的数,用查表法,求出该数的平方值放入内部RAM21H单元。main(){charx,*pcharcodetab[6]={0,1,4,9,16,25};p=0x20;x=tab[*p];p++;*p=x;}10.7.2循环程序的设计10.7.3分支程序的设计10.8单片机资源的C语言编程实例程序中为方便反复观察,使用了死循环语句for(;;)只要用Ctrl+C即可退出死循环。上面程序通过编译,生成的机器代码和反汇编程序如下:10.8.2并行口及键盘的C语言编程例10-15以P1.0~P1.3作输出线,以P1.4~P1.7作输入线,如图4-6所示。10.8.3C51中断程序的编制10.8.4定时/计数器的C语言编程10.8.6外扩并行I/O口的C语言编程10.8.7D/A的C语言编程10.9汇编语言和C语言的混合编程表10.6函数名的转换10.9.1C语言程序和汇编语言程序参数的传递10.9.2C语言程序调用汇编语言程序举例10.9.3C和汇编混合编程传递的参数多于三个的编程方法汇编语言程序CALLASM.ASM----完成50个数据采集并存于BUF为首址的单元10.10C语言函数库的管理与使用10.10.2函数库的管理10.10.3用户库函数的使用10.11小结