- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机定时器的应用
51单片机定时器的应用
原文地址:中断的关键字,n是中断号提供中断程序的入口地址。
0-INT0 1-T0 2-INT1 3-T1 4-串行中断5-T2
直接访问寄存器和端口
定义
sfr P0 0x80 sfr P1 0x81 sfr ADCON;0xDE sbit EA 0x9F
操作
ADCON=0x08;
P1=0xFF;
io_status=P0;
EA=1;
在使用了interrupt 1关键字之后,会自动生成中断向量
在ISR中不能与其他后台循环代码(the background loop code)共享局部变量
因为连接器会复用在RAM中这些变量的位置,所以它们会有不同的意义,这取决于当前使用的不同的函数
复用变量对RAM有限的51来将很重要。所以,这些函数希望按照一定的顺序执行而不被中断。
timer0_int()interrupt 1using 2
{
unsigned char temp1;
unsigned char temp2;
executable Cstatements;
}
interrupt声明表示向量生成在(8*n+3),这里,n就是interrupt参数后的那个数字
这里,在08H的代码区域生成LJMP timer0_int这样一条指令
usingtells the compiler to switch register banks on entry to an interrupt routine.Thiscontextswitch is the fastest way of providing afresh registerbank for an interrupt routines local data and is to be preferred to stacking registers for very time-critical routines.Note that interrupts of the same priority can share aregister bank,since there is no risk that they will interrupt each other.
using告诉编译器在进入中断处理器去切换寄存器的bank。这个contet切换是
为中断处理程序的局部变量提供一个新鲜的寄存器bank最快的方式。对时序要求严格的程序,是首选的stack寄存器(保存寄存器到stack)方式。
注意:同样优先级别的中断可以共享寄存器bank,因为他们每次将中断没有危险
If aUSING 1is added to the timer1 interrupt function prototype,the pushing of registers is replaced by asimple MOV to PSW to switch registerbanks.Unfortunately,while the interrupt entry is speeded up,the direct register addressing used on entry to sys_interp fails.This is because C51 has not yet been told that the registerbank has been changed.If no working registers are used and no other function is called,the optimizer eliminiates teh code to switch register banks.
如果在timer1的中断函数原型中使用USING 1,寄存器的pushing将被MOV to PSW切换寄存器bank所替换。
不幸的是,当一个中断入口被加速时。用在入口的直接寄存器寻址将失败。
这是因为C51没有告诉寄存器bank已经改变。如果不工作的寄存器将被使用,如果没有其他函数被调用,优化器.
Logically,with an interrupt routine,parameters cannot be passed to it or returned.When the interrupt occurs,compiler-inserted code is run which pushes the accumulator,B,DPTR and the PSW(program status word)onto the stack.Finally,on exiting the interrupt routine,the items previously s
您可能关注的文档
- 2017年高中部党风廉政建设自查报告.doc
- 2017村党支部第一书记年度工作计划.doc
- 20m、35m箱梁预应力张拉计算书.doc
- 20万温州商人给苏州的启示.doc
- 20世纪福克斯公司特刊.doc
- 20岁以上的女生。要有成人的视觉,理性的智慧。如何气.doc
- 20招教你打造通透大气家 小户型经典设计.doc
- 20种学生必备软件.doc
- 21种方式让你玩转三亚.doc
- 21世纪公司的组织结构.doc
- 2025四川省中医药管理局所属事业单位选调工作人员5人备考题库带答案解析.docx
- 2025内蒙古乌兰察布市委办公室系统所属事业单位选调20人备考题库及答案解析(夺冠系列).docx
- 2025中共沈丘县委办公室沈丘县人民政府办公室选调6人备考题库(河南带答案解析.docx
- 2025下半年四川巴中市巴州区区级事业单位选聘8人备考题库附答案解析.docx
- 2026年国网新疆电力有限公司高校毕业生提前批招聘笔试参考试题附答案解析.docx
- 2025福建泉州农商银行招聘2人(公共基础知识)综合能力测试题附答案解析.docx
- 2026年哈尔滨银行(集团)校园招聘笔试备考试题附答案解析.docx
- 2025四川绵阳市安州区人民法院面向全省法院系统考调3人备考题库附答案解析.docx
- 2025中共泰州市姜堰区委宣传部选调2人备考题库(江苏)带答案解析.docx
- 2026年全国保密教育线上培训考试试题库及完整答案【历年真题】.docx
原创力文档


文档评论(0)