单片机课程设计报告.docx

上传人:b****7 文档编号:9087779 上传时间:2023-02-03 格式:DOCX 页数:15 大小:76.41KB
下载 相关 举报
单片机课程设计报告.docx_第1页
第1页 / 共15页
单片机课程设计报告.docx_第2页
第2页 / 共15页
单片机课程设计报告.docx_第3页
第3页 / 共15页
单片机课程设计报告.docx_第4页
第4页 / 共15页
单片机课程设计报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机课程设计报告.docx

《单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。

单片机课程设计报告.docx

单片机课程设计报告

 

单片机应用及其接口技术课程设计

交通灯模型的设计课程设计报告

 

交通灯模型的设计课程设计报告

一、课程设计题目:

交通灯模型的设计

二、实验目的:

(1)掌握P3.3输入、P1口输出。

(2)掌握串行口工作方式及编程方法,学习串行LED驱动的方法。

(3)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程。

(4)用单片机模拟实现具体应用,使个人设计能够真正使用。

(5)把理论知识与实践相结合,充分发挥个人能力,并在实践中得到锻炼。

(6)提高利用已学知识分析和解决问题的能力。

(7)提高实践动手能力。

三、课程设计任务和基本要求:

1、设计任务

设计和真实交通等功能相同的交通灯模型,通过LED显示通过时间,并且可以通过按键设定东西、南北单向通行。

2、基本要求

运用定时器做一十字路口交通灯模型,并实现手动控制交通灯单向通行。

三、课程设计题目分析:

1、设计要点

(1)利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

用红、绿、黄发光二极管作信号灯。

如图上图所示。

设东西向为主干道,南北为支干道。

(2)处于常允许通行的状态,支干道有车来时才允许通行。

主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。

(3)干道均有车时,两者交替允许通行,主干道每次放行30秒,支干道每次放行25秒。

(4)绿灯亮到红灯亮的转换过程中,要亮3秒黄灯作为过渡。

2、工作原理

(1)

口做输出口,与12个发光二极管相连,实现定时点亮相应二极管。

使用

口的第二功能,串行口在工作方式0下作为同步移位寄存器使用,

用作输入输出端,

引脚上输出移位时钟信号,频率固定为

,驱动

显示通行倒计时。

做外部中断输入口,外接拨码开关实现手动控制交通灯单向通行。

使用定时器延时1s作倒计时逐秒递减使用,在8051时钟频率为12MHz的情况下,定时计数器最大可定时65.536ms。

故要使用软件计数和硬件定时相结合的方法:

用定时计数器0定时50ms,则必须让其工作在方式1下,其初始值为:

(2)P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。

(3)P1口做输出口,编写程序,使P1口接的8个发光二极管L1—L8按16进制加一方式点亮发光二极管。

(4)用MCS-51系统的定时器的计数功能,使其把计数结果利用串行口通过传入并出芯片74LS164驱动LED数码管显示出来。

四、课程设计的电路设计:

五、汇编语言程序设计:

1、程序流程图

2、汇编程序

利用延时程序实现倒计时功能程序:

ORG0000H

LJMPSTART

ORG0003H

LJMPK1

ORG0013H

LJMPK2

ORG0030H

//主程序

START:

SETBEA;通过中断启动紧急情况,设置外部中断

SETBEX0

SETBPX0

CLRIT0

SETBEX1

SETBPX1

CLRIT1

MOVP1,#00H;P1口置0,选择启动交通灯

SETBP1.2;东西绿灯亮

SETBP1.3;南北红灯亮

N2:

MOVR3,#30;倒计时30s

N1:

LCALLDISP;调用串口驱动LED程序

DECR3

LCALLDL1s;调用延时1s程序

CJNER3,#00,N1

CLRP1.2;东西绿灯灭

SETBP1.1;东西黄灯亮

MOVR3,#03H;黄灯亮3s

N3:

LCALLDL1s

DJNZR3,N3

MOVP1,#00H

SETBP1.0;东西红灯亮

SETBP1.5;南北绿灯亮

MOVR3,#25;倒计时25s

N4:

LCALLDISP;调用串口驱动LED程序

DECR3

LCALLDL1s

CJNER3,#00H,N4

CLRP1.5;南北绿灯灭

SETBP1.4;南北黄灯亮

MOVR3,#03H;黄灯亮3s

N5:

LCALLDL1s

DJNZR3,N5

MOVP1,#00H

LJMPSTART;交通灯循环点亮

//串口驱动LED程序

DISP:

MOVA,R3

MOVB,#10

DIVAB

MOVR5,A

MOVA,B

MOVB,R5

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

MOVR2,#0FFH

DJNZR2,$

MOVA,B

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

RET

//延时程序

DL512:

MOVR0,#0FFH;延时512us

LOOP1:

DJNZR0,LOOP1

RET

DL10ms:

MOVR1,#14H;延时10ms

LOOP2:

LCALLDL512

DJNZR1,LOOP2

RET

DL1s:

MOVR2,#50;延时1s

LOOP3:

LCALLDL10ms

DJNZR2,LOOP3

RET

TAB:

DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h

DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh

//中断程序

K1:

MOVP1,#00H;紧急情况1,南北通行

SETBP1.0

SETBP1.5

MOVA,#00

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

RETI

K2:

MOVP1,#00H;紧急情况2,东西通行

SETBP1.3

SETBP1.2

MOVA,#00

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

RETI

END

采用定时器方式实现延时控制的程序

ORG0000H

JMPMAIN

ORG0003H;定时器T0中断入口地址

LJMPBRT0

ORG0013H;定时器T1中断入口地址

LJMPBRT1

TIMEEQU30H

TIME15SEQU31H

TIME3SEQU32H

MAIN:

ANL20H,#00H

MOVTIME3S,#3

MOVTIME15S,#20

MOVTMOD,#11H;设置T0和T1工作于方式1下

MOVTH0,#3CH

MOVTL0,#0B0H;50ms定时初值的赋值

SETBEA;开中断

START:

LCALLKEYWORK

JB00H,FUN0

AJMPSTART

KEYWORK:

MOVP3,#0FFH;置P3口为输入状态

JNBP3.0,KEY0

RET

KEY0:

LCALLDL10MS

JBP3.0,OUT0

SETB00H

CLR01H

CLR02H

OUT0:

RET

FUN0:

MOVR4,#20

//15s南北向绿灯、东西向红灯点亮

MOVA,#0AFH

MOVP1,A

LCALLDISP;调用串口驱动LED程序

LCALLTIME_15S

//15s后,南北向的绿灯闪烁3次,东西向保持红灯点亮

MOVR3,#6

FLASH1:

CPLP1.6

LCALLDISP;调用串口驱动LED程序

LCALLDL05S

DJNZR3,FLASH1

//南北向黄灯亮,东西向保持红灯

MOVA,#0CFH

MOVP1,A

LCALLDISP;调用串口驱动LED程序

LCALLTIME_3S

//南北向红灯,东西向绿灯

MOVA,#77H

MOVP1,A

LCALLDISP;调用串口驱动LED程序

LCALLTIME_15S

//东西向绿灯闪烁,南北向红灯

MOVR3,#6

FLASH2:

CPLP1.3

LCALLDISP;调用串口驱动LED程序

LCALLDL05S

DJNZR3,FLASH2

//东西向黄灯亮,南北向仍然保持红灯

MOVA,#7BH

MOVP1,A

LCALLDISP;调用串口驱动LED程序

LCALLTIME_3S

LJMPSTART

//串口驱动LED程序

DISP:

MOVA,R3

MOVB,#10

DIVAB

MOVR5,A

MOVA,B

MOVB,R5

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

MOVR2,#0FFH

DJNZR2,$

MOVA,B

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

TAB:

DB0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h

DB0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh

RET

//15s定时子程序

TIME_15S:

SETBET0

SETBTR0

MOVTIME,TIME15S

LOOP1:

MOVA,TIME

CJNEA,#00H,LOOP1

CLRTR0

RET

//3s定时子程序

TIME_3S:

MOVTIME,TIME3S

SETBET0

SETBTR0

LOOP2:

MOVA,TIME

CJNEA,#00,LOOP2

CLRTR0

RET

//5s定时子程序

DL05S:

MOVR5,#10

MOVTH1,#3CH

MOVTL1,#0B0H

SETBET1

SETBTR1

RET

//T0中断服务程序

BRT0:

PUSHACC

PUSHPSW

CLRTR0

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZR4,OVER

MOVR4,#20

DECTIME

OVER:

SETBTR0

POPPSW

POPACC

RETI

//T1中断服务程序

BRT1:

PUSHACC

PUSHPSW

CLRTR1

MOVTH1,#3CH

MOVTL1,#0B0H

DECR5

SETBTR1

POPPSW

POPACC

RETI

DL10MS:

MOVR0,#14H

LOOP4:

MOVR1,#250

LOOP3:

DJNZR1,LOOP3

DJNZR0,LOOP4

RET

END

六、课程设计心得体会:

对于交通灯这个题目,由于以前做过类似相关的实验,觉得这个比较简单而且做出的东西也比较直观,在确定题目之后,联系课本以前做过的实验,初步完成了电路设计方案。

虽然感觉交通灯程序没什么难的,但是也许是起初想的太简单,设计时到了细节处,也出了不少问题,而且很难被检查出来。

起初我是采用定时器方式实现延时控制的,但是经过多次编译、调试、修改之后还是无法运行出正确的结果,由于课程设计的时间限制我就改用延时程序实现倒计时功能,得到了正确的结果。

通过这次课程设计,加强了我们动手、思考和解决问题的能力,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。

在设计的过程中我发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

在以后学习中我会尽量改正。

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

当前位置:首页 > 高等教育 > 农学

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

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