单片机的C语言编程精简版-课件_第1页
单片机的C语言编程精简版-课件_第2页
单片机的C语言编程精简版-课件_第3页
单片机的C语言编程精简版-课件_第4页
单片机的C语言编程精简版-课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第03讲单片机C语言编程(精简版)电气信息实验教学中心仝迪第03讲单片机C语言编程(精简版)电气信息实验教学中心1KEILC51的应用C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。KEILC51的应用C语言是一种编译型程序设计语言,它兼顾21、C51的特点C语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是KeilC51.C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。1、C51的特点C语言作为一种非常方便的语言而得到广泛的支持3C51与ASM51相比,有如下优点:对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解;寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;提供的库包含许多标准子程序,具有较强的数据处理能力;由于具有方便的模块化编程技术,使已编好程序可容易地移植;C51与ASM51相比,有如下优点:对单片机的指令系统不要求4C51存储类型存储类型寻址空间数据长度值域范围data片内直接寻址RAM80~127idata片内间接寻址RAM80~255pdata分页寻址片外RAM80~255C51存储类型存储类型寻址空间数据长度值域范围data片内直5C51存储类型存储类型寻址空间数据长度值域范围xdata片外数据存储(64K)160~65535code片内统一编址ROM(64K)160~65535bdata片内可位寻址的RAM(16byet)10~127C51存储类型存储类型寻址空间数据长度值域范围xdata片外61、变量的声明C51的数据声明的一般格式如下[类型说明符][修饰符]标识符[=初值]……例如:unsignedcharcodeFlag=0x0f;

就是声明一个无符号的char型变量Flag,并给他赋初值为0x0f;并且声明他所在的存储空间在片内统一编址的ROM中。声明中,如果没有修饰符,则数据默认的存储空间为data型,也就是在片内RAM中。1、变量的声明C51的数据声明的一般格式如下7

2、C51的程序结构与一般C语言的结构相同,以main()函数为程序入口,程序体中包含若干语句还可以包含若干函数。C51函数的一般格式类型函数名(参数表)

{

数据说明部分语句执行部分

}2、C51的程序结构与一般C语言的结构相同,以main(83、C51的数据类型类型符号关键字占用位数数的表示范围整形有(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~2147483647无unsignedint160~65535unsignedshort160~65535unsignedlong320~4294967295实型有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127字符型无unsignedchar80~2553、C51的数据类型类型符号关键字占用位数数的表示范围整形有93、C51的数据类型扩充定义sfr:特殊功能寄存器声明sfr16:sfr的16位数据声明sbit:特殊功能位声明bit:位变量声明例:sfrSCON=0X98;sfr16T2=0xCC;sbitOV=PSW^2;3、C51的数据类型扩充定义sfr:特殊功能寄存器声明104、C51数据的存储类型名称存储空间位置长度数据范围data直接寻址片内RAM8位0~255bdata可位寻址片内RAM1位0/1idata间接寻址片内RAM8位0~255pdata片外页RAM8位0~255xdata片外RAM16位0~65535code程序ROM16位0~655354、C51数据的存储类型名称存储空间位置114、C51数据的存储类型例:数据类型

存储类型

变量chardatavar1;bitdataflags;unsignedcharxdatavextor[10];4、C51数据的存储类型例:125、C51的包含的头文件通常有:reg51.hmath.hctype.hstdio.hstdlib.habsacc.h常用有:reg51.h(定义特殊功能寄存器和位寄存器);

math.h(定义常用数学运算);

5、C51的包含的头文件通常有:reg51.hmath136、C-51的运算符与C语言基本相同:+-*/(加减乘除)>>=<<=(大于大于等于小于小于等于)==!=(测试等于测试不等于)&&||!(逻辑与逻辑或逻辑非)>><<(位右移位左移)&|(按位与按位或)^~(按位异或按位取反)6、C-51的运算符与C语言基本相同:147、C-51的基本语句与标准C语言基本相同:

if选择语言

switch/case多分支选择语言

while循环语言

do-while循环语言

for循环语言7、C-51的基本语句与标准C语言基本相同:158、中断服务程序函数名(形参表)interruptn

{}例子:voidtimer0_int()interrupt1{TF0=0;//cleartimer0intflagET0=0;//timer0intdisabletemp++;if(temp==0xff){led=~led;temp=0;}ET0=1;//timer0intenable}8、中断服务程序函数名(形参表)interruptn169、I/O口定义#include<absacc.h>#defineprotxbyte[0x1000]或用指针定义9、I/O口定义#include<absacc.h>17例:清零程序(将2000H—20FFH的内容清零)★汇编语言程序ORG0000HSE01:MOVR0,#00HMOVDPTR,#2000H;(0000H)送DPTRLOO1:CLRAMOVXDPTR,A;0送(DPTR)INCDPTR;DPTR+1INCR0;字节数加1CJNER0,#00H,LOO1;不到FF个字节再清LOOP:SJMPLOOP例:清零程序(将2000H—20FFH的内容清零)18清零程序(将2000H—20FFH的内容清零)★C51程序

#include<reg51.h>main(){inti;unsignedcharxdata*p=0x2000;/*指针指向2000H单元*/for(i=0;i<256;i++){*p=0;p++;}/*清零2000H-20FFH单元*/}清零程序(将2000H—20FFH的内容清零)19KEIL的使用掌握KEIL工程的建立和软件的开发;掌握KEIL中软件仿真的基本应用;KEIL软件的下载:关键字“KeiluVision4”用VeryCD搜索,用迅雷下载KEIL的使用掌握KEIL工程的建立和软件的开发;20KEIL的下载KEIL的下载21第03讲单片机C语言编程(精简版)电气信息实验教学中心仝迪第03讲单片机C语言编程(精简版)电气信息实验教学中心22KEILC51的应用C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。KEILC51的应用C语言是一种编译型程序设计语言,它兼顾231、C51的特点C语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是KeilC51.C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。1、C51的特点C语言作为一种非常方便的语言而得到广泛的支持24C51与ASM51相比,有如下优点:对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解;寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;提供的库包含许多标准子程序,具有较强的数据处理能力;由于具有方便的模块化编程技术,使已编好程序可容易地移植;C51与ASM51相比,有如下优点:对单片机的指令系统不要求25C51存储类型存储类型寻址空间数据长度值域范围data片内直接寻址RAM80~127idata片内间接寻址RAM80~255pdata分页寻址片外RAM80~255C51存储类型存储类型寻址空间数据长度值域范围data片内直26C51存储类型存储类型寻址空间数据长度值域范围xdata片外数据存储(64K)160~65535code片内统一编址ROM(64K)160~65535bdata片内可位寻址的RAM(16byet)10~127C51存储类型存储类型寻址空间数据长度值域范围xdata片外271、变量的声明C51的数据声明的一般格式如下[类型说明符][修饰符]标识符[=初值]……例如:unsignedcharcodeFlag=0x0f;

就是声明一个无符号的char型变量Flag,并给他赋初值为0x0f;并且声明他所在的存储空间在片内统一编址的ROM中。声明中,如果没有修饰符,则数据默认的存储空间为data型,也就是在片内RAM中。1、变量的声明C51的数据声明的一般格式如下28

2、C51的程序结构与一般C语言的结构相同,以main()函数为程序入口,程序体中包含若干语句还可以包含若干函数。C51函数的一般格式类型函数名(参数表)

{

数据说明部分语句执行部分

}2、C51的程序结构与一般C语言的结构相同,以main(293、C51的数据类型类型符号关键字占用位数数的表示范围整形有(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~2147483647无unsignedint160~65535unsignedshort160~65535unsignedlong320~4294967295实型有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127字符型无unsignedchar80~2553、C51的数据类型类型符号关键字占用位数数的表示范围整形有303、C51的数据类型扩充定义sfr:特殊功能寄存器声明sfr16:sfr的16位数据声明sbit:特殊功能位声明bit:位变量声明例:sfrSCON=0X98;sfr16T2=0xCC;sbitOV=PSW^2;3、C51的数据类型扩充定义sfr:特殊功能寄存器声明314、C51数据的存储类型名称存储空间位置长度数据范围data直接寻址片内RAM8位0~255bdata可位寻址片内RAM1位0/1idata间接寻址片内RAM8位0~255pdata片外页RAM8位0~255xdata片外RAM16位0~65535code程序ROM16位0~655354、C51数据的存储类型名称存储空间位置324、C51数据的存储类型例:数据类型

存储类型

变量chardatavar1;bitdataflags;unsignedcharxdatavextor[10];4、C51数据的存储类型例:335、C51的包含的头文件通常有:reg51.hmath.hctype.hstdio.hstdlib.habsacc.h常用有:reg51.h(定义特殊功能寄存器和位寄存器);

math.h(定义常用数学运算);

5、C51的包含的头文件通常有:reg51.hmath346、C-51的运算符与C语言基本相同:+-*/(加减乘除)>>=<<=(大于大于等于小于小于等于)==!=(测试等于测试不等于)&&||!(逻辑与逻辑或逻辑非)>><<(位右移位左移)&|(按位与按位或)^~(按位异或按位取反)6、C-51的运算符与C语言基本相同:357、C-51的基本语句与标准C语言基本相同:

if选择语言

switch/case多分支选择语言

while循环语言

do-while循环语言

for循环语言7、C-51的基本语句与标准C语言基本相同:368、中断服务程序函数名(形参表)interruptn

{}例子:voidtimer0_int()interrupt1{TF0=0;//cleartimer0intflagET0=0;//timer0intdisabletemp++;if(temp==0xff){led=~led;temp=0;}ET0=1;//timer0intenable}8、中断服务程序函数名(形参表)interruptn379、I/O口定义#include<abs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论