北京交通大学单片机课程设计交通灯文档格式.docx

上传人:b****5 文档编号:18344920 上传时间:2022-12-15 格式:DOCX 页数:12 大小:141.45KB
下载 相关 举报
北京交通大学单片机课程设计交通灯文档格式.docx_第1页
第1页 / 共12页
北京交通大学单片机课程设计交通灯文档格式.docx_第2页
第2页 / 共12页
北京交通大学单片机课程设计交通灯文档格式.docx_第3页
第3页 / 共12页
北京交通大学单片机课程设计交通灯文档格式.docx_第4页
第4页 / 共12页
北京交通大学单片机课程设计交通灯文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

北京交通大学单片机课程设计交通灯文档格式.docx

《北京交通大学单片机课程设计交通灯文档格式.docx》由会员分享,可在线阅读,更多相关《北京交通大学单片机课程设计交通灯文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

北京交通大学单片机课程设计交通灯文档格式.docx

74LS245还具有双向三态功能,既可以输出,也可以输入数据。

  

当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。

当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;

(接收)DIR=“1”,信号由A向B传输;

(发送)当CE为高电平时,A、B均为高阻态。

由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。

P0口与74LS245输入端相连,E端接地,保证数据线畅通。

8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其它时间处于输出(P0.1→D1)。

3软件设计

程序流程框图

程序:

C语言:

#include<

reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitRED_A=P0^0;

//东西向指示灯

sbitYELLOW_A=P0^1;

sbitGREEN_A=P0^2;

sbitRED_B=P0^3;

//南北向指示灯

sbitYELLOW_B=P0^4;

sbitGREEN_B=P0^5;

//延时倍数,闪烁次数,操作类型变量

ucharTime_Count=0,Flash_Count=0,Operation_Type=1;

//定时器0中断函数

voidT0_INT()interrupt1

{

TL0=-50000/256;

TH0=-50000%256;

switch(Operation_Type)

{

case1:

//东西向绿灯与南北向红灯亮

RED_A=0;

YELLOW_A=0;

GREEN_A=1;

RED_B=1;

YELLOW_B=0;

GREEN_B=0;

if(++Time_Count!

=100)return;

//65s(65*100*50ms)切换

Time_Count=0;

Operation_Type=2;

break;

case2:

//东西向黄灯开始闪烁,绿灯关闭

=8)return;

YELLOW_A=~YELLOW_A;

GREEN_A=0;

if(++Flash_Count!

=10)return;

//闪烁

Flash_Count=0;

Operation_Type=3;

case3:

//东西向红灯与南北向绿灯亮

RED_A=1;

RED_B=0;

GREEN_B=1;

//30s(30*100*50ms)切换

Operation_Type=4;

case4:

//南北向黄灯开始闪烁,绿灯关闭

YELLOW_B=~YELLOW_B;

Operation_Type=1;

}

}

//主程序

voidmain()

TMOD=0x01;

//T0方式1

IE=0x82;

TR0=1;

while

(1);

汇编语言:

ZXEQU42H

ZWEQU43H

KCOUNTEREQU50H

ORG0

LJMPMAIN

ORG0BH

LJMPT0INT

ORG30H

MAIN:

MOVSP,#6FH

MOV46H,#2;

0.1s

MOVTMOD,#01H

MOVTH0,#3CH;

50ms

MOVTL0,#0D4H

MOVIE,#82H

SETBTR0

LP1:

LCALLZT1

SJMPLP1

T0INT:

CLRTR0

PUSHACC

PUSH0

DJNZ46H,T0

MOV46H,#2

INCR1;

判断用数字变量

DECR2;

南北计时变量

DECR3;

东西数字变量

T0:

MOVTH0,#3CH

SETBTR0

P0P0

POPACC

RETI

ZT1:

MOVR2,#60

MOVR3,#66;

南北绿灯60s,东西红灯65s

L0:

MOVP1,#23H

MOVP3,#21H

LCALLDATAPRO

LCALLKEYPRO

LCALLDISP

MOVA,R2

H1:

CJNER1,#61,L0

MOVR1,#0

MOVP1,#43H

MOVP3,#41H

MOVR2,#5;

南北黄灯5秒,东西仍是红灯

H2:

MOVA,R1;

南北黄灯闪烁开始

MOVB,#2

DIVAB

MOVA,B

CJNEA,#1,L1

SJMPL2

L1:

MOVP1,#03H

MOVP3,#01H

L2:

CJNER1,#6,H2

MOVR1,#0;

南北黄灯闪烁结束

MOVR2,#36

MOVR3,#30;

南北红灯35秒,东西绿灯30秒

T1:

MOVP1,#15H

MOVP3,#12H

H3:

CJNER1,#36,T1

MOVP1,#19H

MOVP3,#14H

MOVR3,#5;

南北仍是红灯,东西黄灯5秒

H4:

东西黄灯闪烁开始

CJNEA,#1,L3

MOVP1,#18H

SJMPL4

L3:

MOVP1,#11H

MOVP3,#10H

L4:

CJNER1,#6,H4

东西黄灯闪烁结束

RET

DISP:

MOVR0,#20H

MOV44H,#8

MOVZW,#0FEH

LP2:

MOVZX,@R0

LCALLDISPLED

INCR0

MOVA,ZW

RLA

MOVZW,A

DJNZ44H,LP2

DISPLED:

MOVP0,A

MOVDPTR,#TAB

MOVA,ZX

MOVCA,@A+DPTR

MOVP2,A

LCALLDELAY

DELAY:

MOV41H,#20

DL1:

MOV42H,#50

DL2:

DJNZ42H,DL2

DJNZ41H,DL1

TAB:

DB03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DATAPRO:

MOVA,R2;

将计时变量分十位,个位

MOVB,#10

MOV20H,A

MOV26H,A

MOV21H,B

MOV27H,B

MOVA,R3

MOVB,#10

MOV22H,A

MOV24H,A

MOV23H,B

MOV25H,B

4实验结果

5心得

经过了8周的单片机课程的学习,我们掌握了一定的单片机原理知识,但是却没有运用实践的过程,因此在实际操作方面匮乏一定的经验。

此次课程设计就为我们带来的很好的机会,通过使用VmwareWorkstatio12.0虚拟机运行Keil3来不断进行调试单片机,我成功的将课本上的知识运用到了实际中去,在实践中锻炼了动手能力,增加了对单片机的兴趣,也巩固了课堂上学到的东西。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1