千文网小编为你整理了多篇相关的《单片机,双机通信实验报告(推荐2篇)》,但愿对你工作学习有帮助,当然你在千文网还可以找到更多《单片机,双机通信实验报告(推荐2篇)》。
实验
四、中断交通灯实验
林立强
1000850116
一、实验目的
1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。
2、掌握中断响应及处理的编程方法。
二、实验原理
MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。如表:
IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。
三、实验电路
电路原理图如下,所需元件为:AT89C51、SW-SPDT、LED-RED、LED-GREEN、LED-YELLOW、RES、TRAFFICLIGHTS
四、实验内容
参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。
1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;
2、程序下载到单片机实验板上验证;(实验板数码管的驱动程序见附件)。
五、程序流程图
仿真图:
紧急情况:
源程序:
ORG 0000H
AJMP START
ORG 0023H //串口中断地址
AJMP SBR1
START:MOV TMOD,#00100000B
//定时器方式2
MOV TL1,#0FDH //9600bps/11.0592MHz
MOV TH1,#0FDH
SETB TR1
MOV SCON,#01100000B //方式1
MOV R0,#20H
MOV R1,#40H
ACALL SOUT
SJMP $
SBR1: JNB RI,SEND
ACALL SIN
SJMP NEXT SEND: ACALL SOUT NEXT: RETI
SOUT: MOV A,@R0
MOV C,P
CPL C
MOV ACC.7,C
INC R0
MOV SBUF,A
CLR TI
RET
SIN: MOV A,SBUF
MOV C,P
CPL C
ANL A,#7FH
MOV @R1,A
INC R1
CLR RI
RET
PLAY: MOV A,R7
MOV B,#10
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
// 0
A B C D E F
END
洛阳理工学院实验报告
系别 计算机系 班级 B140504 学号 B14050414 姓名 史锦峰 课程名称 单片机原理及组成 实验日期 2016.04.28 实验名称 双机通信及 PCB 设计过程 成绩
实验目的:掌握串行口通信工作原理,熟悉单片机电路的 PCB 设计过程 实验条件:计算机、Keil uVision4、ISIS 7 Professional、实验箱 实验内容:
1.掌握串行通信原理和中断法通信软件编程; 2.完成实验的 C51 语言编程;
3.学习使用 ARES 软件,完成实验 61#机电路;
实验电路图
仿真运行效果
图一:
图二:
源程序:
#include #define uchar unsigned char void delay(unsigned int time){
unsigned int j=0;
for(;time>0;time--)
for(j=0;j
}
void main(void){
uchar counter=0;
P2=0x3f;
TMOD=0x20;
TH1=TL1=0xf4;
PCON=0;
SCON=0x50;
TR1=1;
while(1){
SBUF=counter;
while(TI==0);
TI=0;
while(RI==0);
RI=0;
if(SBUF==counter){
P2=counter;
if(++counter>15)counter=0;
delay(500);
}
} }
#include #define uchar unsigned char void main(void){ uchar receiv;P2=0x3f;TMOD=0x20;TH1=TL1=0xf4;PCON=0;SCON=0x50;TR1=1;while(1){
while(RI==1){
RI=0;
receiv=SBUF;
SBUF= receiv;
while(TI==0)
TI=0;
P2=receiv;
}
}
}
实验总结:一直不能正确显示同步的信号,询问老师后才知道是实验箱烧写程序时用了两台电脑,但是进行通讯时不在一台机子上。这是一个很重要的店。