单片机的语言编程PPT讲稿.ppt

上传人:石*** 文档编号:78724361 上传时间:2023-03-19 格式:PPT 页数:19 大小:1.09MB
返回 下载 相关 举报
单片机的语言编程PPT讲稿.ppt_第1页
第1页 / 共19页
单片机的语言编程PPT讲稿.ppt_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《单片机的语言编程PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《单片机的语言编程PPT讲稿.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机的语言编程单片机的语言编程第1页,共19页,编辑于2022年,星期五3.1 C3.1 C及及C51C51语语言概述言概述 语言简洁,使用方便灵活。可移植性好。表达能力强。表达方式灵活。可进行结构化程序设计。可以直接操作计算机硬件。生成的目标代码质量高。第2页,共19页,编辑于2022年,星期五3.1 C513.1 C51的数的数据据类类型型关键字关键字 :关关键键字字则则是是编编程程语语言言保保留留的的特特殊殊标标识识符符,它它们们具具有有固固定定名名称称和和含含义义,在在程程序序编编写写中中不不允允许许标标识识符符与与关关键键字字相同。相同。在在C51C51中中的的关关键键字字除除了了

2、有有A ANSINSI C C 标标准准的的3232个个关关键键字字外外还还根根据据5151单单片片机机的的特特点点扩扩展展了了相相关关的的关关键键字字,见见表表中中的的C51C51编编译译器的器的扩扩展展关键字。关键字。第3页,共19页,编辑于2022年,星期五关键字关键字用用途途说说明明bitbit位标量声明声明声明一个位一个位标标量或量或位位类类型型的函数的函数sbitsbit位标量声明声明声明一个一个可可位位寻寻址址变变量量sfrsfr特殊功能寄存器声明声明声明一个一个特殊功特殊功能寄存器能寄存器sfr16sfr16特殊功能寄存器声明声明声明一个一个1616位的位的特殊功特殊功能寄存器

3、能寄存器datadata存储器类型说明直接直接寻寻址址的的内部内部数数据据存存储储器器bdatabdata存储器类型说明可可位位寻寻址址的的内部内部数数据据存存储储器器idataidata存储器类型说明间间接接寻寻址址的的内部内部数数据据存存储储器器pdatapdata存储器类型说明分分页寻页寻址址的的外部外部数数据据存存储储器器xdataxdata存储器类型说明外部外部数数据据存存储储器器codecode存储器类型说明程序存程序存储储器器interruptinterrupt中断函数说明定定义义一个中断函数一个中断函数reentrantreentrant再入函数说明定定义义一个一个再入再入函数

4、函数usingusing寄存器组选择选择选择单片机的单片机的工作工作寄存器组寄存器组_at_at_绝对地址说明为为非非位位变变量指定量指定存存储储空空间绝对间绝对地址地址smallsmall存储模式选择参数参数及局部及局部变变量放入可量放入可直接直接寻寻址址的的内部内部RAMRAMcompactcompact存储模式选择参数参数及局部及局部变变量放入分量放入分页页外部外部数数据据存存储储区区largelarge存储模式选择参数参数及局部及局部变变量放入分量放入分页页外部外部数数据据存存储储区区关键字关键字 :第4页,共19页,编辑于2022年,星期五数据类型的具体定义:数据类型的具体定义:数数

5、据据类类型型 说说明明长长 度度值值 域域unsigned charunsigned char无符号无符号字字符型符型单字单字节节 0 0255 255 signed charsigned char带带符号符号字字符型符型单字单字节节 -128-128+12+127 7 unsigned intunsigned int无符号整型无符号整型双双字字节节 0 065535 65535 signed intsigned int带带符号整型符号整型双双字字节节 -32-327 76868+32+327 76 67 7unsigned longunsigned long无符号无符号长长整型整型四四字字节

6、节0 042429 94 49 96 67 72 29 95 5signed longsigned long带带符号符号长长整型整型四四字字节节-214-2147 7483648483648+214+2147 748364483647 7floatfloat单单精度型精度型四四字字节节 1.11.17 754549 94E-384E-38 3.402823E+383.402823E+38*指指针针1 13 3 字字节节 对对象象的的地址地址bitbit位位变变量量位位 0 0 或或 1 1sfrsfr8 8位位特殊功特殊功能寄存器能寄存器单字单字节节 0 0255255sfr16sfr1616

7、16位位特殊功特殊功能寄存器能寄存器双双字字节节 0 06553565535sbitsbit可可位位寻寻址定址定义义位位 0 0 或或 1 1第5页,共19页,编辑于2022年,星期五#include“reg51.h”sbitP0_0=P00;voidmain()P0_0=0;while(1);例例1 1:利用:利用MCS-51MCS-51单片机的单片机的P0 P0 引脚引脚P0.0 P0.0 引接一只引接一只LED,LED,送送“0”0”点亮点亮,送送“1”1”灭。则要求点亮,程序如下:灭。则要求点亮,程序如下:第6页,共19页,编辑于2022年,星期五p#include#include代代

8、表表的的是是加加载载头头文文件件,头头文文件件是是C C编编译译器器中中带带的的已已经经定定义义的函数的的函数的集合或自定集合或自定义义的一个函数的的一个函数的集合集合。程程序序中中加加载载一一个个reg51.hreg51.h的的文文件件,那那么么打打开开reg51.hreg51.h里里边边的的内容是什么呢?内容是什么呢?如如编编码码器器在在C C盘盘下下C51C51文文件件夹夹内内,则则REREG G51.h51.h文文件件的的路路径径是是C C:keilkeil C51C51ININC C reg51.hreg51.h。例如:例如:P1P1定定义义为为 sfr P1 =0 xsfr P1

9、=0 x9 90;0;累加累加器器A A定定义义为为 sfr ACC =0 xE0;sfr ACC =0 xE0;定定时时模模式式TMODTMOD定定义义为为 sfr TMOD=0 x8sfr TMOD=0 x89 9;第7页,共19页,编辑于2022年,星期五pmain()main()函数函数也称也称为为主主函数函数C C语语言都是从言都是从mainmain()()函数函数开始开始执执行行的。的。前面加了前面加了一个一个void void 是是说说明明该该函数函数是没是没有有返回返回值值的。的。p如如果果点点量量8 8个灯,个灯,可可P0P00 x000 x00对对引引脚脚送送0 0,则则点

10、点亮亮单单色色灯灯,0 x000 x00对对应应二二进进制制数数值值0000000000000000,所,所以以该该条条语语句是句是同时点亮同时点亮了了8 8只单色灯。只单色灯。p整整个程序用个程序用括起来括起来,形,形成了成了一个一个完整完整的的C51C51程序。程序。上上例例中中,符符号号P0P0(代代表表P0P0锁锁存存器器)已已经经在在头头文文件件“reg51.h”reg51.h”中中有有定定义义。P0_0P0_0表表示示P0.0P0.0引引脚脚,它它没没有有被被事事先先定定义义好好,所,所以需以需要使用要使用sbitsbit进进行定行定义义。第8页,共19页,编辑于2022年,星期五

11、例例2 2:P3.2P3.2引引脚脚接接一一个个按按键键,P1P1口口接接8 8只只单单色色灯灯,单单色色灯灯0 0亮亮1 1灭灭,当当有有按按键键按按下下时时8 8只只单单色色灯灯高高低低4 4位位交交替替闪闪亮亮一一次次。按键按下接收到按键按下接收到0,0,否则为否则为1 1。#include“reg51.h”sbitkey=P32;voidmain()unsignedcharT1=0 x0F,T2=0 xF0,keyT;unsignedinti;for(;)keyT=key;第9页,共19页,编辑于2022年,星期五if(keyT)P1=T1;/高4位亮低4位灭 for(i=0;i100

12、00;i+);/延时作用P1=T2;/高4位灭低4位亮 for(i=0;i10000;i+);/延时作用 例例2 2:P3.2P3.2引脚接一个按键,引脚接一个按键,P1P1口接口接8 8只单色灯,单色灯只单色灯,单色灯0 0亮亮1 1灭,灭,当有按键按下时当有按键按下时8 8只单色灯高低只单色灯高低4 4位交替闪亮一次。按键按下接收位交替闪亮一次。按键按下接收到到0,0,否则为否则为1 1。第10页,共19页,编辑于2022年,星期五3.23.2函函 数数3.2.13.2.1函数函数定定义义通通常常C C 语语言言的的编编译译器器会会自自带带标标准准的的函函数数库库,这这些些都都是是一一些些

13、常常用用的的函函数数。标标准准函函数数已已由由编编译译器器软软件件商商编编写写定定义义,使使用用者者直直接接调调用用就就可可以以了了,而而无无需需定定义义。同同时时C C 语语言言允允许许使使用用者者根根据据需需要要编编写写特特定定功功能能的的函函数数,要要调用它调用它必必须须要要先先对对其其进进行定行定义义。定定义义的的模模式式如下:如下:函数函数类类型型 函数函数名称(名称(形式参数形式参数表)表)函数函数体体第11页,共19页,编辑于2022年,星期五3.2.2 3.2.2 函数的调用函数的调用调调用用就就是是指指一一个个函函数数体体中中引引用用另另一一个个已已定定义义的的函函数数来来实

14、实现现所所需需要要的的功功能能,这这时时函函数数体体称称为为主主调调用用函函数数,函函数数体体中中所所引用的函数引用的函数称称为为被被调用函数调用函数。一一个个函函数数体体中中可可以以调调用用数数个个其其它它的的函函数数,这这些些被被调调用用的的函数同样函数同样也可以也可以调用其它函数,调用其它函数,也可以嵌套也可以嵌套调用。调用。在在C51 C51 语语言言中中主主函数函数mainmain是是不能不能被被其它函数所调用的。其它函数所调用的。第12页,共19页,编辑于2022年,星期五调用函数的一调用函数的一般般形式如下形式如下:函数函数名名 (实际实际参数参数表表)“函数函数名名”就是指被就

15、是指被调用的函数。调用的函数。实实际际参参数数表表可可以以为为零零或或多多个个参参数数,多多个个参参数数时时要要用用逗逗号号隔隔开开,每每个个参参数数的的类类型型、位位置置应应与与函函数数定定义义时时所所的的形形式式参参数数一一一一对对应应,它它的的作作用用就就是是把把参参数数传传到到被被调调用用函函数数中中的的形形式式参参数,如数,如果果类类型型不不对对应应就会就会产产生生一一些些错误错误。调调用用的的函函数数是是无无参参函函数数时时不不写写参参数数,但但不不能能省省后后面面的的括括号号。第13页,共19页,编辑于2022年,星期五3.2.3 3.2.3 中断函数中断函数中中断断服服务务函函

16、数数只只有有在在CPUCPU响响应应中中断断时时才才会会被被执执行行,这这在在处处理突理突发发事件和事件和实实时时控制是十分控制是十分有有效效的。的。关关键键字字是是interruptinterrupt,是是函函数数定定义义时时的的一一个个必必选选项项,只只要要在在某某个个函函数数定定义义后后面面加加上上这这个个选选项项,这这个个函函数数就就变变成成了了中中断断服服务务函数。函数。第14页,共19页,编辑于2022年,星期五定定义义中断中断服服务务函数时函数时可以可以用如下的形式。用如下的形式。函数函数类类型型 函数函数名名 (形式参数形式参数)interrupt n)interrupt n

17、using nusing n interrupt interrupt 缺缺省省关关键键字字是是不不可可的的,由由它它告告诉诉编编译译器器该该函函数数是是中断中断服服务务函数,函数,并由后面并由后面的的n n 指明指明所使用的中断所使用的中断号号。n n的的取取值值范范围围为为0 03131,但但具具体体的的中中断断号号要要取取决决于于芯芯片片的的型型号号,像像AT8AT89 9C51 C51 实际实际上就上就使用使用0 04 4 号号中断中断。每每个个中中断断号号都都对对应应一一个个中中断断向向量量,具具体体地地址址为为8n+38n+3,中中断断源响源响应应后后处处理理器器会跳会跳转转到中断到

18、中断向量向量所处的所处的地址地址执执行行程序程序编编译译器器会会在在这这地地址址上上产产生生一一个个无无条条件件跳跳转转语语句句,转转到到中中断断服服务务函数所在的函数所在的地址地址执执行行程序。程序。第15页,共19页,编辑于2022年,星期五下下表是表是80518051的中断的中断向量和向量和中断中断号号。注意:注意:函数不能直接调用中断函数函数不能直接调用中断函数;不能通过形参传不能通过形参传递递参数参数;但中断但中断函数允许调用其它函数,两者所使用的寄存器组应相同。函数允许调用其它函数,两者所使用的寄存器组应相同。第16页,共19页,编辑于2022年,星期五includesbitP1_

19、0=P10;voidtimer0(void)interrupt1using1/*T0中断服务程序入口*/P1_0=!P1_0;TH0=-(1000/256);/*计数初值重装*/TL0=-(1000%256);例例3 3 设单片机的设单片机的fosc=12MHzfosc=12MHz,要求用,要求用0 0的方式编程,在的方式编程,在P1.0P1.0脚输脚输出周期为出周期为2ms2ms的方波。的方波。第17页,共19页,编辑于2022年,星期五voidmain(void)TMOD=0 x01;/*T0工作在定时器方式1*/P1_0=0;TH0=-(1000/256);/*预置计数初值*/TL0=-(1000%256);EA=1;/*CPU开中断*/ET0=1;/*T0开中断*/TR0=1;/*启动T0*/dowhile(1);/*等待中断*/例例3 3 设单片机的设单片机的fosc=12MHzfosc=12MHz,要求用,要求用0 0的方式编程,在的方式编程,在P1.0P1.0脚脚输出周期为输出周期为2ms2ms的方波。的方波。第18页,共19页,编辑于2022年,星期五本本章章结结束束,谢谢谢谢!第19页,共19页,编辑于2022年,星期五

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁