历史上的今天
今天是:2025年01月14日(星期二)
2018年01月14日 | C8051F020定时器中断使用
2018-01-14 来源:eefocus
C8051F020内部有5 个计数器/定时器:其中三个16 位计数器/定时器与标准8051 中的计数器/定时器兼容,还有两个16 位自动重装载定时器可用于ADC、SMBus、UART1 或作为通用定时器使用。这些计数器/定时器可以用于测量时间间隔,对外部事件计数或产生周期性的中断请求。
将定时器与中断系统的结合将给我们编程带来很大的帮助,程序条理性强易编写易读。
下面我将利用可装载的计数器中断程序编写流程总结如下:
一:定时器初始化
1:停止定时器,清中断溢出位。
通过设置SFR中TMRnCN,停止将TMRnCN^2置0,清中断溢出位TMRnCN^7。
2:计数值和装载值的设置
通过SFR中TMRnL,TMRnH,TMRnRLL, TMRnRLH设置。
3:打开中断系统允许位
通过SFR中的IE,EIE1,EIE2实现,将对应定时中断位置1即可允许。
4:打开定时器
通过TMRnCN^2置1启动。
二:中断部分
1:打开全局中断
将IE^7置1。一般将该部分写在定时器初始化前面。
2:中断服务程序(ISR)
以C语言为例
void ADD (void) interrupt N
{ 具体程序 }
其中ADD位程序名,N为中断优先级(具体详见相应MCU说明书)
注意:由于定时器溢出位不能硬件清零,需要在中断程序编写清零程序,如所使用定时器为非重载,可以在中断程序中编写计数值的初始化。
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:36 编辑 NEC芯片输出PWM信号已经解决了,用SPI模式.不过有点搞不懂为什么正转时CHnDCDIR输出的是高电平,设置反转时却输出低电平,和数据手册相反的.而且接上直流电机就连PWM信号都没了. 请高手指点一下,谢谢了 ...… 查看全部问答> |
|
审请LPC1114恩智浦Cortex开发板,用于成本敏感的低端金融设备控制系统开发 联系:tech1@fota.cn 办公电话:0571-87647777 转115 联系人:金工 [ 本帖最后由 haiqing05 于 2010-4-6 13:30 编辑 ]… 查看全部问答> |
|
想问一下Core OS\\Core OS Services\\USB Host Support下的内容已经Add to OS Desgin,但USB的键盘和鼠标还是没有用,并且开机时蜂鸣器长响,是什么原因? 另外,Device Drivers\\USB Function 和USB Host 之间的区别?… 查看全部问答> |
|
[100分!急!]在WinCE里用VC++.NET操作远程SQL Server2000问题 本人想在VS2005上用VC++.NET开发一个基于WinCE 5.0的操作远端的SQL Server2000的程序,怎么写啊. 1. 源代码和具体步骤? 2. 如何使用SQL CE 2,如何在WinCE 上装SQL CE 2? 3. WinCE 上操作远程SQLServer2000数据库非得装SQL CE吗? 4. 如何用V ...… 查看全部问答> |
|
LED怀表”这是一个DIY作品,作者觉得这可能是第一个LED怀表,来自Paul,其对祖父留下来的一个旧怀表进行改造,当然能用的也只有怀表的外壳。 怀表里面一共安装了133个LED,每一个都是手工焊接而成,LED可显示60秒、60分钟和12小时,另外还有一 ...… 查看全部问答> |
|
我下的iar ewarm5.30照别个说的方法怎么补能破解呢? 未命名.JPG (53.53 KB) 下载次数:7 2010-6-15 20:52 … 查看全部问答> |
|
帮忙看看2407点灯的程序吧,为什么lacc #8语句中输入>8的数时,在单步调试运行时,延时程序就跳不出来了,好像死机了似的。可是lacc #8语句中输入<=8的数就什么问题都没有。快帮忙看看吧,我都在这个问题上停留好长 ...… 查看全部问答> |




