我们在利用51单片机时,间断系统时其一个很是主要的特征,可以实现庇护CPU现场、跳转到间断办事函数进行处置、恢复CPU现场、继续进行原始操作等功能。间断分为外部间断、内部间断和串行口间断,还可以同时利用两个外部间断。
起首要知道间断源的进口地址,因为我们需要同时利用两个外部间断,即要用到外部间断0:0003H和外部间断1:0013H
打开Keil μVision编译器,新建一个工程,然后保留在硬盘上的位置,然后选择Atmel-AT89C51单片机为模子,并添加STARTUP.A51文件,然后在当前目次下新建一个C文件,并将其添插手工作路径,如图所示
起首要导入51单片机的头文件,不然后续利用的端口城市呈现不决义的环境,然后在本家儿函数中,使得EA=1,即总间断许可,打开间断的总开关
然后别离打开外部间断0和外部间断1的分隔关,即EX0=1和EX1=1,同时设置间断的触发体例为跳沿触发,可以避免增添额外的电路
若是不添加此外代码的话,此时这两个间断的优先级是外部间断0>外部间断1,若是一个间断正在执行来了别的一个间断是不会打断前一个间断的执行过程的,这里需要为间断设置优先级
编写完本家儿函数后,我们要为两个间断别离编写对应的间断办事函数,才能在间断发生后发生响应的响应,注重外部间断0和外部间断1的间断号别离是0和2
然后到Project菜单中的output项目中勾选Create Hex File,OK后点击编译按钮,若是没有错误,即可生当作可以烧录或者仿真的.hex文件
最后把生当作出的.hex烧入进51单片机进交运行或者装载入Proteus仿真系统进行仿真,点击运行按钮后可以看到在点击第一个按键后led灯的状况由灭变亮,当点击第二个按钮后,无论led灯原先的状况怎么样城市酿成常亮的状况
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!