您的当前位置:首页正文

外部中断实验报告

2021-02-11 来源:意榕旅游网


机械工程系 微机原理与接口技术

实验报告书

实 验 名 称:

外部中断(急救车与交通灯)

年级专业及班级: 2009级机制 2 班 姓 名:

余松秦 学 号:

0908012247 指 导 教 师: 刘建春

评 定 成 绩: 教 师 评 语:

实验时间: 2011 年 11 月 15

实验六 外部中断(急救车与交通灯)

一、实验要求

本实验模拟交通信号灯控制,一般情况下正常显示,有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。设急救车通过路口时间为10秒,急救车通过后,交通恢复正常,本实验用单次脉冲申请外部中断,表示有急救车通过。

二、实验电路及连线

三、实验程序流程图

主程序框图 外部中断子程序框图

四、实验程序

#include #include sbit sn_red=P1^0; sbit sn_yellow=P1^1; sbit sn_green=P1^2; sbit ew_red=P1^3; sbit ew_yellow=P1^4; sbit ew_green=P1^5;

void stat(bit r1,bit y1,bit g1,bit r2,bit y2,bit g2){ sn_red=r1; sn_yellow=y1; sn_green=g1; ew_red=r2; ew_yellow=y2; ew_green=g2; }

void delay(){

unsigned int n,m;

for(n=0;n<=1200;n++) {

_nop_();

for(m=0;m<1200;m++) _nop_(); } }

void delay1(){ unsigned int n,m;

for(n=0;n<=2200;n++) {

_nop_();

for(m=0;m<2200;m++) _nop_(); } }

void delay2(){ unsigned int n,m;

for(n=0;n<=1200;n++) {

_nop_();

for(m=0;m<1200;m++) _nop_(); } }

void main(){ // IE=0x81; //1000 0001 EA=1; EX0=1;

IP=0x01;

stat(1,0,0,1,0,0); //(南北红黄绿,东西红黄绿) delay1(); for(;;){

stat(0,0,1,1,0,0); delay1(); stat(0,0,0,1,0,0);

delay(); stat(0,0,1,1,0,0); delay(); stat(0,0,0,1,0,0); delay(); stat(0,0,1,1,0,0); delay(); stat(0,0,0,1,0,0); delay(); stat(0,1,0,1,0,0); delay1();

stat(1,0,0,0,0,1); delay1(); stat(1,0,0,0,0,0); delay(); stat(1,0,0,0,0,1); delay(); stat(1,0,0,0,0,0); delay(); stat(1,0,0,0,0,1); delay(); stat(1,0,0,0,0,0); delay(); stat(1,0,0,0,1,0); delay1(); } }

void int0() interrupt 0 {

//stat(1,0,0,1,0,0); sn_red=1; sn_yellow=0; sn_green=0; ew_red=1; ew_yellow=0; ew_green=0;

delay2(); }

五、实验现象以及碰到什么问题?如何解决?

程序编写是个问题,老师说全班只有俩个版本的程序,接下来要看书,学着自己写程序。

因篇幅问题不能全部显示,请点此查看更多更全内容