单片机基础知识及单片机C语言_第1页
单片机基础知识及单片机C语言_第2页
单片机基础知识及单片机C语言_第3页
单片机基础知识及单片机C语言_第4页
单片机基础知识及单片机C语言_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、1tm1单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 1、什么是单片机?单片机 在一片集成电路芯片上集成微处理器、存储器、i/o接口电路,从而构成了单芯片微型计算机,即单片机。 intel公司推出了mcs-51系列单片机:集成 8位cpu、4k字节rom、128字节ram、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64k,并有控制功能较强的布尔处理器。第一部分:单片机基础第一部分:单片机基础2tm2单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 2、单片机能做什么、单

2、片机能做什么n凡是与控制或简单计算有关的电子设备都凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,凌阳,80c51,arm等等3tm3单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 n工业自动化:数据采集、测控技术。工业自动化:数据采集、测控技术。n智能仪器仪表:数字示波器、数字信号源、数字智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。万用表、感应电流表等。n消费类电子

3、产品:洗衣机、电冰箱、空调机、电消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、视机、微波炉、手机、ic卡、汽车电子设备等。卡、汽车电子设备等。n通讯方面:调制解调器、程控交换技术、手机、通讯方面:调制解调器、程控交换技术、手机、小灵通等。小灵通等。n武器装备:飞机、军舰、坦克、导弹、航天飞机武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。、鱼雷制导、智能武器等。n等等等等.4tm4单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 3、怎么开始学习?怎么开始学习?1、实践第一。、实践第一。2、即缺什么补什么(补充

4、必要的理论知识)。、即缺什么补什么(补充必要的理论知识)。3、做实际小制作积累经验,比如调试、编程。、做实际小制作积累经验,比如调试、编程。(可在网络上搜集题目,也可自己有什么想法(可在网络上搜集题目,也可自己有什么想法大胆的去试验)大胆的去试验)5tm5单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 4、80c51系列介绍 intel的:80c31、80c51、87c51,80c32、80c52、87c52等; atmel的:89c51、89c52、89c2051等; philips、华邦、dallas 、stc 等公司的许多产品 。 80

5、c51是mcs-51系列中的一个典型品种;其它厂商以8051为基核开发出的cmos工艺单片机产品统称为80c51系列。当前常用的80c51系列单片机主要产品有:6tm6单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 80c51的引脚封装总线型非总线型7tm7单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 8tm8单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 总线(bus)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类

6、。内部总线是cpu内部之间的连线。外部总线是指cpu与其它部件之间的连线。 外部总线有三种: 数据总线db(data bus), 地址总线 ab(address bus)和控制总线 cb(control bus)。9tm9单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 cpu:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;ram:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;rom:用以存放程序、一些原始数据和表格;i/o口:四个8位并行i/o口,既可用作输入,也可用作输出;t/c:两个定时/记数器,

7、既可以工作在定时模式,也可以工作在记数模式;10tm10单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 五个中断源的中断控制系统; 一个全双工uart(通用异步接收发送器)的串行i/o口,用于实现单片机之间或单片机与微机之间的串行通信; 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。11tm11单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 第二部分第二部分 单片机单片机c语言入门语言入门 1、c51简介简介 c语言是一种编译型程序设计语言,它兼顾

8、了多种高级语言的特点,并具备汇编语言的功能。目前,使用c语言进行程序设计已经成为软件开发的一个主流。 用c语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。而针对8051的c语言日趋成熟,成为了专业化的实用高级语言。12tm12单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 c c语言作为一种非常方便的语言而得到广语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用泛的支持,很多硬件开发都用c c语言编程,语言编程,如:各种单片机、如:各种单片机、dspdsp、armarm等等. . c c语言程序本身不依

9、赖于机器硬件系统,语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机基本上不作修改就可将程序从不同的单片机中移植过来。中移植过来。 c c提供了很多数学函数并支持浮点运算,提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序开发效率高,故可缩短开发时间,增加程序可读性和可维护性。可读性和可维护性。 c-51c-51的特点的特点13tm13单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 c-51c-51与与asm-51asm-51(汇编)相比,有如下优点:(汇编)相比,有如下优点:1.1. 对单片机的指

10、令系统不要求了解,仅要求对对单片机的指令系统不要求了解,仅要求对8051 8051 的存贮器结构有初步了解;的存贮器结构有初步了解;2.2. 寄存器分配、不同存贮器的寻址及数据类型等寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;细节可由编译器管理;3.3. 程序有规范的结构,可分成不同的函数,这种程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;方式可使程序结构化;4.4. 提供的库包含许多标准子程序,具有较强的数提供的库包含许多标准子程序,具有较强的数据处理能力;据处理能力;5.5. 由于具有方便的模块化编程技术,使已编好程由于具有方便的模块化编程技术,使已编好程序可

11、容易地移植;序可容易地移植;14tm14单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 2、单片机c程序设计的一般格式n几个基本概念(1)函数:c语言程序由一个主函数和若干个其它函数构成,程序中由主函数调用其它函数,其它函数之间也可以相互调用。(2)指针与指针变量:若定义变量x,&x即为x的指针,指针变量是指针的指针,若xp=&x,利用 *xp即可访问变量x。(3)#include(包含处理命令):把一个源文件将另外一个源文件的全部内容包含进来,或者说把一个外部文件包含到本文件之中。(4)#define(宏定义):在c程序中,可以指定一标志符

12、去定义一个常量或字符串。15tm15单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 n单片机c程序的基本结构(1)主函数名必须为main( )。c程序通过函数调用去执行指定的工作。(2)一个函数由说明部分和函数体两部分组成。函数说明部分是对函数名、函数类型、形参名和形参类型等所做的说明。(3)c程序的执行总是从main( )函数开始,而对该函数的位置无特殊规定。(4)在源程序文件需要包含其它源程序文件时,应在本程序文件头部用包含命令#include处理。(5)c程序中的一个函数需要调用另一个子函数时,另一个函数应写在前面,否则应声明。(6)c

13、程序书写格式自由,一行可写一个语句或几个语句。每个语句结尾用;结束。16tm16单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 3、单片机c程序的数据类型n常量和符号常量例:#define parl 3.14159 (parl即为符号常量)(1)整型常量,如11,o11,0 xff等。(2)实型常量,如0.12,1.55e5等。(3)字符常量,如a、a等。(4)字符串常量,如“a”、“china”等。n变量(1) 位变量:bit和sbit(2)字符变量:singed char和unsigned char(3)整型变量:singed int和u

14、nsigned int(4)长整型变量:unsigned long和signed long17tm17单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (3) 实型变量:float和double(4) 寄存器变量:sfr和sfr164、单片机c程序的运算符和表达式(1 1)算术运算符)算术运算符1313个:个:+ +、- -、* *、/ /、%、=、+=+=、-=-=、* *=、/=/=、%=%=、+、- -(2 2)关系运算符)关系运算符6 6个:个:、=、=、| |、& &(相(相与)、与)、& &(变量取地址)(变量取地址)(5 5)指针

15、运算符:)指针运算符:* *18tm18单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 5、单片机c程序的一般语法结构n顺序结构例:main( ) p0=0 xff; p2=0 x30; p1=0 xff; p3=0 xff; scan( ); test ( ); 19tm19单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 n分支结构(1)单分支结构形式:if(条件表达式)执行语句; 例:20tm20单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石

16、坚石坚 (2)双分支结构:形式:if(条件表达式)语句1; else 语句2; 例:21tm21单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (3)由双分支结构变化而成的多分支结构形式: if(表达式1)语句1; else if(表达式2) 语句2; . . else if(表达式n) 语句n; else 语句n+1;22tm22单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 例:例:23tm23单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚

17、石坚 (4) switchcase多分支转移结构语句形式: switch(条件表达式) case 常量表达式1:语句1;break; case 常量表达式2:语句2;break; . . . case 常量表达式n:语句n;break; default:语句n+1;break; 24tm24单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 例:例:25tm25单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 n循环结构(1)while(表达式)循环体语句;例:void delay(unsigne

18、d char times) unsigned char i; i=250; while(-times)while(-i); 26tm26单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (2)do循环体语句; while(表达式);(3)for(表达式1;表达式2;表达式3)循环体语句;例:27tm27单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 6、c51区别于标准c语言的特点n(1)使用文件包含命令#include应注意对应头文件的名称,要与规定名称相符。n(2)单片机中,一个变量可放在

19、片内存储单元,也可放在片外存储单元,放在片内存储单元还要区分是否可位寻址,或放在间接寻址区。例:int data x,y; /表示整型变量指定在 片内数据存储区 char xdata m,n; /表示字符变量指定在片外数据存储区28tm28单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 c51存储类型存储类型存储类型寻址空间数据长度 值域范围data片内直接寻址 ram800h7fhidata片内间接寻址 ram880hffhpdata分页寻址片外 ram800hffh29tm29单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学

20、院成都理工大学工程技术学院 石坚石坚 存储类型寻址空间数据长度值域范围xdata片外数据存储 (64k)160000hffffhcode片内统一编址rom(64k)160000hffffhbdata片内可位寻址的ram(16byet)120h2fh30tm30单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 n(3)21个sfr只能直接寻址,一般在头文件中用字节定义方式定义。 如:sfr tmod=0 x89; (4)c51编译器编译源程序时,数据类型和存储类型都可预先定义,但数据具体放在哪一个单元不由用户指定。 (5)单片机c程序的中断程序与

21、汇编语言程序不同,中断过程通过使用interrupt关键字和中断号(031)来实现。中断号告诉编译器中断程序的入口地址。31tm31单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 单片机中断源与单片机中断源与c c中断程序中中断号对照表中断程序中中断号对照表c中的中断号对应单片机中的中断源c中的中断号对应单片机中的中断源0外部中断03定时器1中断1定时器0中断4串行口中断2外部中断15定时器2中断32tm32单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 一个定时器一个定时器0 0中断程序编

22、写格式如下:中断程序编写格式如下:void timer0(void) interrupt 1 tr0=0; th0=0 xff; tl0=0 x30; tr0=0; tick_count+;用户不必关心现场保护用户不必关心现场保护及恢复现场的问题,编及恢复现场的问题,编译器会自动完成。译器会自动完成。中断程序的入口地址被中断程序的入口地址被编译器放在中断向量中,编译器放在中断向量中,无需用户指定。无需用户指定。33tm33单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 n(6)片外扩展的i/o接口,可用#define进行定义。如: #incl

23、ude absacc.h #define adc0804 xbyte0 x7ffe34tm34单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 例例1 1:清零程序:清零程序 ( (将将2000h2000h20ffh20ffh的内容清零的内容清零) ) 汇编语言程序汇编语言程序 org 0000horg 0000hse01: mov r0,#00h se01: mov r0,#00h mov dptr,#2000h ;(0000h) mov dptr,#2000h ;(0000h)送送dptrdptrloo1: clr aloo1: clr a

24、 movx dptr,a ;0 movx dptr,a ;0送送(dptr)(dptr) inc dptr ;dptr+1 inc dptr ;dptr+1 inc r0 ; inc r0 ;字节数加字节数加1 1 cjne r0,#00h,loo1 ; cjne r0,#00h,loo1 ;不到不到ffff个字节再清个字节再清loop: sjmp looploop: sjmp loop程序示例程序示例35tm35单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 清零程序清零程序 ( (将将2000h2000h20ffh20ffh的内容清零的内

25、容清零) ) c c5151程序程序 #include #include main( ) main( ) intint i; i; unsigned char unsigned char xdataxdata * *p=0 x2000;p=0 x2000; / /* * 指针指向指针指向2000h2000h单元单元 * */ / for(ifor(i=0;i256;i+)=0;i256;i+) * *p=0; p+; p=0; p+; / /* *清零清零2000h-20ffh2000h-20ffh单元单元* */ / 36tm36单片机单片机c语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 汇编语言程序汇编语言程序 org 0000horg 0000hl00: mov r0,#10h ;l00: mov r0,#10h ;查找查找1616个字节个字节 mov r1,#00hmov r1,#00h mov dptr,#2000h mov dptr,#2000hl11: movx a,dptrl11: movx a,dptr cjne a,

温馨提示

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

评论

0/150

提交评论