我是靠谱客的博主 微笑舞蹈,最近开发中收集的这篇文章主要介绍keil 扩展c语言语法,C语言在8051单片机上的扩展(KEIL中interrupt、using关键字的用法)...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C语言在8051单片机上的扩展(KEIL中interrupt、using关键字的用法)

C语言在8051单片机上的扩展(KEIL中interrupt、using关键字的用法)

直接访问寄存器和端口

定义

sfr P0 0x80

sfr P1 0x81

sfr ADCON; 0xDE

sbit EA 0x9F

操作

ADCON = 0x08 ; /* Write data to register */

P1 = 0xFF ; /* Write data to Port */

io_status = P0 ; /* Read data from Port */

EA = 1 ; /* Set a bit (enable all interrupts) */

在使用了interrupt 1 关键字之后,会自动生成中断向量

在 ISR中不能 与其他 "后台循环代码"(the background loop code) 共享 局部变量

因为 连接器 会复用 在RAM中这些变量的 位置 ,所以 它们会有不同的意义,这取决于当前使用的不同的函数

复用变量对 RAM有限的51来将 很重要。所以,这些函数希望按照一定的顺序执行 而不被中断。

timer0_int() interrupt 1 using 2

{

unsigned char temp1 ;

unsigned char temp2 ;

executable C statements ;

}

"interrupt"声明 表示 向量生成在 (8*n+3),这里,n就是interrupt参数后的那个数字 这里,在08H的代码区域 生成 LJMP timer0_int 这样一条指令

"using" tells the compiler to switch register banks on entry to an interrupt routine. This "context" switch is the fastest way of providing a fresh registerbank for an interrupt routine's local data and is to be preferred to stacking registers for very time-critical routines. Note that interrupts of the same priority can share a register bank, since there is no risk that they will interrupt each other.

最后

以上就是微笑舞蹈为你收集整理的keil 扩展c语言语法,C语言在8051单片机上的扩展(KEIL中interrupt、using关键字的用法)...的全部内容,希望文章能够帮你解决keil 扩展c语言语法,C语言在8051单片机上的扩展(KEIL中interrupt、using关键字的用法)...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部