单片机开发中断及一些理解

发布者:BlissfulCharm最新更新时间:2015-02-06 来源: 51hei关键字:单片机  中断  定时器  计数器 手机看文章 扫描二维码
随时随地手机看文章

强制类型转换

a = 0x0000; b = 0xaa55;(uint16)

a = (uint8)(b);

a = 0x55;

 

a = 0x00; b = 0x10;

a = (bit)(表达式);

中断响应条件

一、中断源有中断请求;

二、此中断源的中断允许位为1;

三、CPU开中断(即EA=1);

以上三个条件同时满足时,CPU才有可能响应中断。

EA =1;开总中断

EX0=1;开外部中断0   都是IE寄存器

触发方式 电平与跳变沿

IT0 = 0; 跳边沿触发由于单片机上电所有寄存器就是0 可以不用设置

电平触发方式不好,会始终不走了停在中断当中,所以应该采用跳变沿方式

IT1 =1;跳变沿方式  或TCON =0X01 就是IT0 =1;

 

 

中断处理函数原型(中断服务程序原型)    记住中断函数不需要声明

 void    timer1()  interrupt    using 0 

timer1()  函数名  

interrupt  表示是中断处理函数

表示是第几个中断源的处理函数 

using  表示是使用第几组工作寄存器一般在C语言里面编译器屏蔽了会自动分配程序员一般不用关心。

 

注意:如果在中断处理函数中进行处理数据不能处理的数据量太大,因为定时器时间已到它就会又进入下一个中断处理函数,也就是这个中断处理函数还没有处理完下一个中断又来了。这样会造成结果错误或异常。

 

定时器:

    定时器内部是有2个8位的寄存器控制,里面装一些数没来一个机器周期这个数自动加1或减1(大部分是加1 STC就是加1因为好做)到2个字节加满减满为止它会触发一次中断进入中断函数。定时器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。一个是TMOD  用于选择定时器、计数器 T0,T1的工作模式和工作方式。另一个是TCON 用于控制TO,T1的启动和停止,同时包含了T0,T1的状态,这2个寄存器在单片机复位时候所有位都被清0.

TMOD 是不能位寻址的,因为它的地址是89H不能被8整除。只能赋值或者  进行  与  或 运算进行赋值 ,其中有位是C/T 是把它配置成定时器还是计数器 0 表示是定时器 M0,M1 这2位进行是定时器的模式几共4种模式其中方式1为16  高8位  TH0,低8位在 TL0   (65536-50000)/256  这就是高8位   (65536-50000)%6 放入低8位  是大约50毫秒  前提是晶振为12兆赫。凡是用11.0592 的晶振是因为单片机要进行 串口通讯因为实现标准的波特率  4800  2400  115200 好计算。才选用11.0592的晶振。单片机的晶振可以选12兆一下的晶振都可以。12兆算是最快的速度了。当然不排除其他高速的单片级,可能达到更高运算速度。定时器最高一次定时为65535的数字,也就是大概65毫秒,因为是16位  高8位低8位。所以如果用定时器长时间定时可以  设置多次定时然后在main里面判断。实现长时间定时。定时器是一个加1的寄存器。初值最小为0 。最大65535 ,单片机做延时不占用MCU的资源比用 while  或 for循环好,能提高效率,当时浪费一个I/O口,所以用时综合考虑。

在一般情况下都是定时器与中断一起使用的,如:定时器时间到发生中断,一般都是IE  TMOD TCON 三个寄存器联合使用 TCON 控制TR0 TR1 运行与停止  TMOD 控制工作模式   IE 控制总中断 与 对应的那个中断的开关如 IE =1  ET0 =1 .

 

最重要的是定时器的启动与停止 直接控制 TR0 TR1这2位 置1 置0就可以了。

也就是是说中断里可以  把它置为0   置为1   ,或者有初值自加的也清0.

还有就是全局变量名与局部变量名不能相同如果相同,局部变量会改变全局变量的值。到时候结果不是期望值。 

 

在C语言的库函数中,floor函数的语法如下:
#include
double floor( double arg );
功能: 函数返回参数不大于arg的最大整数。例如,
x = 6.04;
y = floor( x );
y的值为6.0.
与floor函数对应的是ceil函数,即上取整函数。
有趣的是,floor在英文中是地板的意思,而ceil是天花板的意思,很形象地描述了下取整和上取整的数学运算。
说明:如果任一参数为非数值参数,则 FLOOR 将返回错误值 #VALUE!或#NAME?。
如果 number 和 significance 符号相反,则函数 FLOOR 将返回错误值 #NUM!。
不论 number 的正负号如何,舍入时参数的绝对值都将减小。如果 number 恰好是 significance 的倍数,则无需进行任何舍入处理。

以上为51单片机个人总结希望懂单片机的爱好者能够指出错误以及建议。

关键字:单片机  中断  定时器  计数器 引用地址:单片机开发中断及一些理解

上一篇:单片机c语言字符串操作
下一篇:几种比较流行和成熟的红外解码程序做一下分析和总结1

推荐阅读最新更新时间:2024-03-16 13:53

从Flash和SRAM中触发中断的过程示例(二)
启动汇编代码   ;*********************************************************************   ; 汇编指令   ;******************************************************************   AREA asm_code,CODE ;新的代码段   CODE32 ;ARM模式   IMPORT _main ;main 不要在此段中定义   EXPORT start ;全局标志,参考ivt.s   ;*********************************************
[模拟电子]
Aquiba为智能水表选择Energy Micro的低能耗微控制器
挪威奥斯陆, 2011年2月18日--Energy Micro宣布Sentech和Takahata Precision的合资企业Aquiba已选用Energy Micro的节能EFM32 Gecko微控制器,用于其创新的A200智能水表。EFM32G890F128微控制器具有超低功耗性能、处理能力和外围设置,可处理A200的高精度流量测量、数据记录、安全通信和应用固件升级。 Aquiba的A200智能水表优于传统的机械仪表,能够为智能供水网络提供一个完整的平台,没有移动部件,可提供世界一流的计量,即使在最低流量时也能保证有高精度的测量并提供全程的服务寿命。为了使水量操作员能提前为气候和网络基础设施将来的变化做好计划,A2
[电源管理]
数码管显示数字 5 C语言程序设计
//用LED数码显示数字5 #include reg51.h // 包含51单片机寄存器定义的头文件 void main(void) { while(1){ P2=0x7f; //P2.0引脚输出低电平,数码显示器接通电源准备点亮 P0=0x92; //让P0口输出数字 5 的段码92H } }
[单片机]
单片机手动计数器制作
1.实验任务 利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示,用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示;硬件电路图如图19所示。 2.电路原理图 图4.10.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。 (2.把“单片机系统”区
[单片机]
<font color='red'>单片机</font>手动<font color='red'>计数器</font>制作
基于MC9S12XSl28微控制器的智能车硬件设计
    随着汽车电子业的迅猛发展,智能车作为电子计算机等最新科技成果与现代汽车工业相结合的产物,因其具有的智能特点而成为研究重点。“飞思卡尔”杯全国大学生智能汽车比赛在此背景下产生,竞赛规则规定。赛车在设定的赛道上能够自主行驶,并以最短的时间跑完全程者获胜。因此,智能车硬件不断创新以适应小车的速度要求。本文以MC9S12XSl28为核心处理器,通过实验比较智能车各个模块电路设计方案,从而设计出性能稳定的硬件电路,经大赛实际检验性能良好稳定。 1 系统整体方案设计 1.1 智能车功能设计     根据大赛规则,智能车应具有路径识别、方向控制、速度控制、状态检测等功能,设计采用大赛指定的飞思卡尔16位微控制器MC9S12X-Sl2
[嵌入式]
对51系列单片机SPI总线的认识
* UART、 I2C 和 SPI 是单片机系统中最常用的三种通信协议。* 1、SPI简介: SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。 SPI 通信原理比 I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的 SPI 是 4 根线,分别是 SSEL( 片选,也写作 SCS)、 SCLK( 时钟,也写作 SCK)、 MOSI( 主机输出从机输入Master Output/Slave Input) 和 MISO( 主机输入从机输出 Master Input/Slave O
[单片机]
基于PIC16F877单片机的电子秤包装机控制系统
  包装机系统可用于粉末东颗粒物料(如水泥、化肥、粮食等)的定时包装,自动化程度、计量精度要求越来越高。针对用户的要求,本系统设计了一种基于PIC16F877单片机控制的电子秤水泥包装机控制系统。   控制系统包括调零、调满、设定粗细流阈值、插袋、喂料、压袋、推包、破袋处理等控制功能。另外,对检测的质量进行数码显示,对状态采用LED指示。同时还完成了与上位机的通信,可以实时观测质量变化及控制状态的情况,并在硬件和软件上分别采用了抗干扰措施和系统保护措施。本系统硬件结构简单,运行稳定可靠,软硬兼备,具有完善的控制功能和抗干扰能力。    1 控制器工作原理   电子秤是包装机的一个独立的控制部件,安装在包装机电控箱内,从包装箱
[单片机]
基于PIC16F877<font color='red'>单片机</font>的电子秤包装机控制系统
用HT46X23设计微波炉控制器实例分析
  微波炉控制器的工作环境相对比较恶劣。首先是炉腔温度比较高,控制器附近温度也会比较高,达到60℃~70℃;另一方面,微波辐射对单片机抗干扰的要求也很高,在做多次快速开关门试验中,当少量微波泄露时,对控制器有一定的辐射,以及反复开通和关断大功率负载会产生较强的干扰。所以选择合适的单片机十分重要,在多年的家电产品设计中,经常用盛群半导体(Holtek)的48系列及46系列8bit单片机设计微波炉控制器,无论在适应工作环境还是抗干扰等方面都完全满足要求,在成本及供货等方面比国外芯片也有更明显的优势。   本文通过实际产品为例,以产品功能要求、方案确定和芯片选型、硬件设计、软件规划及编写等几部分介绍如何用单片机设计微波炉控制器。 功能
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved