单片机c语言总结1_第1页
单片机c语言总结1_第2页
单片机c语言总结1_第3页
单片机c语言总结1_第4页
单片机c语言总结1_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

PAGE1单片机总结1、单片机即单片微型计算机,是将计算机主机(CPU、内存和I/O接口)集成在一小块硅片上的微型机。2、单片机为工业测控而设计,又称微控制器。具有三高优势(集成度高、可靠性高、性价比高)。3、主要应用于工业检测与控制、计算机外设、智能仪器仪表、通讯设备、家用电器等。特别适合于嵌入式微型机应用系统。定时器T2的使用注:51系列是没有定时器T2的;#defineMSB_reload_value0x36/*msbreloadvalueexemple高位重载值:延时60ms*/

#defineLSB_reload_value0x36/*lsbreloadvalueexemple低位重载值*/

#include<reg52.h>//当前文件夹内的文件

/**FUNCTION_PURPOSE:Thisfilesetuptimer2inmode0(16bitsauto-reloadup/downcountingtimer).

*用于模式0:16位自动重载向上/下计时

*The16-bitsregisterconsistofall8bitsofTH2andall8bitsofTL2.

*16位寄存器由8位的TH2和8位的TL2组成

*TheEXF2bittoggleswhentimer2overfloworunderflowoccurs.

*当timer2向上/下溢出时,置位EXF2位

*EXF2doesnotgenerateinterrupt.Thisbitcanbeusedtoprovide17-bitresolution

*FUNCTION_INPUTS:P1.1(T2EX)=0fordowncountingor1forupcounting.

*EXF2位并不引起中断。此位可以用来提供17位输入功能:向上/下计数功能

*FUNCTION_OUTPUTS:void*/

sbitB02=P0^2;

sfrT2OMD=0XC9;

voidmain(void)

{

T2OMD=0xfc;

EXF2=0;/*resetflag定时器2外部标志位清除*/

TCLK=0;

RCLK=0;/*disablebaudrategenerator不用于波特率发生器*/

EXEN2=0;/*ignoreeventsonT2EX视T2EX(P1.1)端信号无效*/

TH2=MSB_reload_value;/*Initmsb_value填入初始化值*/

TL2=LSB_reload_value;/*Initlsb_value*/

RCAP2H=MSB_reload_value;/*reloadmsb_value重载值*/

RCAP2L=LSB_reload_value;/*reloadlsb_value*/

C_T2=0;/*timermode定时模式*/

CP_RL2=0;/*reloadmode重载模式*/

EA=1;/*interuptenable中断允许*/

ET2=1;/*enabletimer2interrupt允许T2中断*/

TR2=1;/*timer2run开始计时*/

while(1);/*endless*/

}

voidit_timer2(void)interrupt5/*interruptaddressis0x002b定时器2中断向量入口*/

{

B02=~B02;/*P1.2togglewheninterrupt.中断时取反*/

TF2=0;/*resetinterruptflag复位中断标志位*/

}

下面介绍下T2的相关的用法

52的定时器T2寄存器说明

51系列的单片机中都有两个定时器T0和T1,网上的资料挺多的,52单片机比51单片机的资源多了一个定时器T2和128字节的ram。

定时器T2的功能比T1、T0都强大,但描述它的资料不多,可能是使用得比较少的缘故吧。

它是一个16位的具有自动重装和捕获能力的定时/计数器,它的计数时钟源可以是内部的机器周期,

也可以是P1.0输入的外部时钟脉冲。T2的控制寄存器的功能描述如下:

T2CON(T2的控制寄存器),字节地址0C8H:

位地址

0CFH

0CEH

0CDH

0CCH

0CBH

0CAH

0C9H

0C8H

符号

TF2

EXF2

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RT2

各位的定义如下:

TF2:定时/计数器2溢出标志,T2溢出时置位,并申请中断。只能用软件清除,但T2作为波特率发生器使用的时候,(即RCLK=1或TCLK=1),T2溢出时不对TF2置位。

EXF2:当EXEN2=1时,且T2EX引脚(P1.0)出现负跳变而造成T2的捕获或重装的时候,EXF2置位并申请中断。EXF2也是只能通过软件来清除的。

RCLK:串行接收时钟标志,只能通过软件的置位或清除;用来选择T1(RCLK=0)还是T2(RCLK=1)来作为串行接收的波特率产生器

TCLK:串行发送时钟标志,只能通过软件的置位或清除;用来选择T1(TCLK=0)还是T2(TCLK=1)来作为串行发送的波特率产生器

EXEN2:T2的外部允许标志,只能通过软件的置位或清除;EXEN2=0:禁止外部时钟触发T2;EXEN2=1:当T2未用作串行波特率发生器时,允许外部时钟触发T2,

当T2EX引脚输入一个负跳变的时候,将引起T2的捕获或重装,并置位EXF2,申请中断。

TR2:T2的启动控制标志;TR2=0:停止T2;TR2=1:启动T2

C/T2:T2的定时方式或计数方式选择位。只能通过软件的置位或清除;C/T2=0:选择T2为定时器方式;C/T2=1:选择T2为计数器方式,下降沿触发。

CP/RT2:捕获/重装载标志,只能通过软件的置位或清除。

CP/RT2=0时,选择重装载方式,这时若T2溢出(EXEN2=0时)或者T2EX引脚(P1.0)出现负跳变(EXEN2=1时),将会引起T2重装载;

CP/RT2=1时,选择捕获方式,这时若T2EX引脚(P1.0)出现负跳变(EXEN2=1时),将会引起T2捕获操作。

但是如果RCLK=1或TCLK=1时,CP/RT2控制位不起作用的,被强制工作于定时器溢出自动重装载模式。

T2MOD(方式寄存器),字节地址0C9H:

T2OE

DCEN

T2OE:T2输出允许位,当T2OE=1的时候,允许时钟输出到P1.0。(仅对80C54/80C58有效)

DCEN:向下计数允许位。DCEN=1是允许T2向下计数,否则向上计数。

T2的数据寄存器TH2、TL2和T0、T1的用法一样,而捕获寄存器RCAP2H、RCAP2L只是在捕获方式下,产生捕获操作时自动保存TH2、TL2的值。

以上是T2的相关寄存器的描述,其实用法上跟T0、T1是差不多的,只是功能增强了,设置的东西多了而已。Keil的编程软件用#include<reg52.h>里面没有T2OM的要用sfrT2OMD=0XC9;自己声明才可用。外部读写要包含一个“absacc.h”的头文件才可;而在定义地址时要注意不要把P2口控制其它器件输出的位的高低搞反了,最好是把P2口作为输入口。外部的读口是在P3.7口,外部写的是P3.6口,都是低电平有效的,不能在P3口作为输出的时候给这俩口低电平,否则会出错!三、8255扩展键盘使用8255扩展键盘时应该知道8255的输出能力,接4*4键盘时输出高电平要比底电平强,也就是说一个高电平和一个底电平接在一起时,底的就会被拉高,跟单片机的高会被拉底的不一样,查键码时要取反就OK的。知识扩展A/D转换器的主要参数分辨率。表示A/D转换器对模拟输入的分辩能力,由它确定能被A/D转换器辨别的最小模拟量,通常用二进制位来表示,如2位、10位、12位等。分辨率的位数越高,表示其分辨率越高。ADC0809是8位A/D转换器。转换时间。A/D转换器完成一次A/D转换所需要的时间。双积分A/D转换时间一般为毫秒级,而逐次逼近式A/D转换器的转换时间一般为微秒级。ADC0809是典型的8位8通道逐次逼近式A/D转换器,A/D转换时间为100us左右。转换误差。实际A/D转换结果与理想值之差。在点阵显示汉字的子程序中运用了二维数组来保存点阵汉字的数据,这种方法的好处是不需要在程序中设定多个数组来分别调用(那样做既费时又费力),利用二维数组可以通过改变行的起始地址,达到改变显示汉字内容的目的。32个关键字Auto 自动变量,缺省时编译器默认为autoInt 整形变量Double 双精度变量Long 长整形变量Char 字符型变量Float 浮点型变量Short 短整形变量Signed 有符号类型Unsigned 无符号类型Struct 结构体变量Union 联合数据类Enum 枚举类型Static 静态变量Switch 用于开关语句Case 开关语句分支Default 开关语句中的“其他”分支Break 跳出当前循环Register 寄存器变量Const 只读变量Volatile 变量在程序执行中可被隐含地改变Typedef 用以给数据类型取别名Extern 变量是在其他文件正声明Return 子程序返回语句Void 声明空类型函数Continue 结束当前循环,开始下一轮循环Do 循环体While 循环条件If 条件语句Else 条件语句的否定分支For 一种循环语句Goto 无条件跳转语句Sizeof 计算对象所占内存空间大小串口通迅一、RS-232-CRS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(ElectronicIndustryAssociation)代表美国电子工业协会,RS(ecommededstandard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIA�RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。这里只介绍EIA�RS-232-C(简称232,RS232)。例如,目前在IBMPC机上的COM1、COM2接口,就是RS-232C接口。波特率即数据传送的速率,其定义是每秒钟传送的二进制的位数。要实现单片机和计算机通迅,就必须使双方的波特率一致。其中计算机串口的波特率常用的只有几种,分别是:1200,2400,4800,9600,19200这样的话,就需要单片机在其中选一个,然后产生出相应的频率才能和计算机串口进行通信。这个频率的产生一般通过定时器T1产生。初始化步骤确定定时器1的工作方式——编程TMOD寄存器。计算定时器1的初值——装载TH1/TL1。启动定时器1——编程TCON中的TR1位。④确定串行口的控制——编程SCON。⑤串行口在中断方式工作时,须开CPU和源中断——编程IE寄存器。有限状态机法“状态机”的概念最早出现在电子技术和电子工程的数字逻辑电路设计中,“状态机”的思想和分析方法被应用于时序逻辑电路设计。由单片机组成的实时系统,特别是实时控制系统,其整个系统的分析机制和功能与系统的状态有相当大的关系。在一个思路清晰而且高效的单片机控制程序中,必然会出现“状态机”的设计理念。下面将简单介绍“有限状态机”法在单片机控制程序在的应用。“状态机”的要素“状态机”可归纳为4个要素,即现态、条件、动作、次态。这样的归纳主要是出于对状态机内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果,详解如下:现态:是指当前所处的状态。条件:又称为“事件”。当一个条件满足,将会触发一个动作,或者执行一次状态的迁移。动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。次态:条件满足后要迁往新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。通常主要有两种方式来建立“状态机”,一种是“状态转移图”,另一种是“状态转移表”,分别用图形方式和表格方式来建立状态机。采用状态转移图的设计实例图23-3所示为一个简单的按键状态转移图,该图中,将一次按键完整的操作过程分解为3个状态,采用时间序列周期为10ms。下面对图23-3做进一步的分析和说明。首先,读者要充分体会时间序列的作用。在这个系统中,采用的时间序列周期为10ms,它意味着每隔10ms检测一次按键的、输入信号,并输出一次按键额确认信号,同时按键的状态也发生一次转换。图中状态0为按键的初始状态,当按键输入为“1”时,表示按键处于开放,输出“0”(1/0),下一状态仍为状态0;当按键输入为“0”时,表示按键闭合,但输出还是“0”(0/0)(没有经过消抖,不能确认按键真正按下),下一状态进入状态1。状态1为按键闭合确认状态,它表示在10ms前按键为闭合,因此当要再次检测到按键输入为“0”时,可以确认按键被按下了(经过10ms的消抖);输出“1”表示确认按键闭合(0/1),下一状态进入状态2.而当再次检测到按键的输入为“1”时,表示按键可能处于抖动干扰中;输出为“0”(1/0),下一状态回到状态0。这样,利用状态1,实现了按键的消抖处理。状态2为等待按键释放状态,因此只有等待按键释放后,一次完整的按键操作过程才算完成。从图23-3的分析可知,再一次按键操作的整个过程,按键的状态时从状态0—状态1—状态2,最后返回到状态0的,并且再整个过程中,按键的输出信号仅在状态1时给出了唯一的一次确认按键闭合的信号“1”(其他状态均输出“0”)。因此上面状态机所表示的按键系统,不仅克服了按键抖动大的问题,同时也确保再一次按键的整个过程中,系统只输出一次按键闭合信号(“1”)。换句话讲,不管按键被按下的时间保持多久,在这个按键的整个过程中都只给了一次确认的输出,因此在这个设计中,按键没有“连发”功能,它是一个最简单和基本的按键。单片机在和其它芯片一起工作时要在初始化前加点延时待电源稳定,因为单片机速度相比其它芯片要快,在电源还没有稳定状态时初始化其它芯片,会使其不能正常工作。单片机系统是在单片机芯片的基础上扩展其它电路或芯片构成的具有一定应用功能的计算机系统。如数字频率计等。单片机应用系统中包括了满足对象(如洗衣机)要求的全部硬件电路和应用软件。构成各种嵌入式应用的电路系统,统称为单片机应用系统。单片机通常是指芯片本身,集成的是一些基本组成部分。是典型的嵌入式系统的主要构成单元,只能作为嵌入式应用,即嵌入到对象环境、结构、体系中作为其中的一个智能化控制单元。(1)系统总线: 地址总线(16位):P0(地址低8位)、P2口(地址高8位)数据总线(8位):P0口(地址/数据分时复用,借助ALE);控制总线(6根):P3口的第二功能和9、29、

温馨提示

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

评论

0/150

提交评论