跪求单片机89C51控制交通灯的课程设计

初态是两个路口的红灯全亮;之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,通车时间是60秒;之后,东西路口的绿灯灭,黄灯闪烁3次,闪烁时间间隔是1秒;之后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向通车,通车时间是60秒;之后,南北方向绿灯灭,黄灯开始闪烁3次,闪烁时间间隔是1秒;之后,再切换到东西路口通车;重复上述过程。交通灯是倒计时显示。整个过程不可以人工干预。
1·要求设计交通灯的模型图;
2·要求设计出电气原理图;
3·要求设计出程序流程图;
4·要求设计出程序并模拟调试。
没有设计,搞个程序也不错哦!

第1个回答  2010-06-23
单片机原理及应用课程设计报告

基于AT89C52的流水灯设计

姓名:
学号:
班级:
日期:

一 摘要
二 设计任务及目的
三 硬件设计
1)设计思路
2)芯片概述
3)原理电路图
4)硬件工作原理概述
四 软件设计
1)分析论证
2)工作环境
3)程序流程图
4)程序清单
五 调试过程及结果分析
六 设计总结
七 参考文献

一 摘要
本实验设计主要是利用AT89C52芯片、发光二极管等一些电路元件设计一个简单的在不同的时间控制不同的灯亮还有周期循环的流水灯电路。并利用说学的知识完成程序设计、画出原理图及接线图,通过主装、调试电路、自行排除故障,最终实现流水等功能。
课程设计强调以能力培养为主,在独立完成设计制作任务的同时注意多方面的能力培养与提高,因此通过此设计有助于我们复习、巩固以往的内容,达到灵活应用的目的。在设计完成后,还要将涉及的电路进行安装、调试以加强我们的动手能力。在此过程中培养设计过程中的整体观念。
二 设计任务及目的
1、 熟练掌握AT89C52开发板的使用方法和注意事项。
2、 了解简单单片机应用系统的设计方法。
3 通过某一电路的综合设计,了解某一电路的综合设计过程、设计要求
4、 掌握应用keil软件编辑、编译源汇编程序的操作方法。
5、 掌握应用编程器烧写器件的操作方法。
6、 帮助学生养成良好实验习惯
三 硬件设计
1 设计思路
AT89C52是一个低电压,高性能CMOS 8位单片机, 可以用来做单片机流水灯、跑马灯。。。等实验

电路原理图见下图1,如果我们想让接在P1.0口的LED1亮起来,那么我们只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平就可以;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭方法方法同LED1。因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。
2)芯片概述
AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压,高性能CMOS 8位单片机, AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
3)原理电路图

4)硬件工作原理概述
要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反, 如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。已达到在不同的时间控制不同的灯亮还有周期循环
四 软件设计
1)分析论证
让 LED 流水是去逐个控制P1端口的每个位来实现的,那么我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后让这个数据向高位移动不就实现“流水”效果啦。
为了让单片机工作,只能将程序写为二进制代码交给其执行;。前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序利用keil工具对源程序进行编写和编译。再利用编程器编译好的文件烧写到到单片机进行演示验证。再将烧写好的AT89C52从编程器上取下在 放到‘S51增强型单片机实验板’进行通电我们就看到了LED1到LED8的‘流水’效果了
2)工作环境
PC机一台,Proteus仿真软件一套,8个LED 管,9个电阻,一个1.2MH晶振,2个30pf有极性电容,1个无极性电容,+5V电源。
3)程序流程图

4)程序清单
ORG 0000H ;单片机上电后从0000H地址执行
LJMP LOOP ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
LOOP: MOV P1,#0FFH ;P1口清0
LCALL DELAY ;调用延时子程序
CLR P1.0 ; P1.0输出低电平,使LED1点亮
LCALL DELAY ;调用延时子程序
CL P1.1 ;P1.1输出低电平,使LED1点亮
LCALL DELAY ;调用延时子程序
CLR P1.2 ;P1.2输出低电平,使LED2点亮
LCALL DELAY ;调用延时子程序
CLR P1.3 ;P1.3输出低电平,使LE3点亮
LCALL DELAY ;调用延时子程序
CLR P1.4 ;P1.4输出低电平,使LED4点亮
LCALL DELAY ;调用延时子程序
CLR P1.5 ;P1.5输出低电平,使LED5点亮
LCALL DELAY ;调用延时子程序
CLR P1.6 ;P1.6输出低电平,使LED6点亮
LCALL DELAY ;调用延时子程序
CLR P1.7 ;P1.7输出低电平,使LED7点亮
DELAY: MOV R5,#20 ; 延时一段时间
D1: MOV R6,#40
D2: MOV R7,#240
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET ;子程序返回
END ;程序结束
五 调试过程及结果分析
调试过程是充满艰辛的:第一次接电源时,没有亮灯,经过检查发现后得知,因粗心31号引脚未接高电平、40号引脚未和电源连接、20号引脚没接第,经反复核实,排除问题后,看到LED1~LED8的“流水”效果了。
六 设计总结
课程设计是培养学生综合所学知识、发现、提出、分析和解决问题,锻炼实际能力的重要环节。是对学生实际工作能力和具体训练和考察过程。
这次课程设计我学到了很多东西,学会了怎样去制订计划怎样趋势线这个计划,并掌握了在执行过程中怎样去克服心理上的不良情绪。不仅巩固了以前学过的知识,而且学到了很多在书本上没学到过的知识。可以进行一些简单的编程。通过这次课程设计,我懂得了理论与实际相结合的重要性。光有课本知识是远远不够的,还要通过实际的验证。设计的艰辛让我懂得好的结果需要努力 ,我们尝到了成功的喜悦,也懂得焊电板是需要西和耐心的。
七 参考文献
万文略,赵利,蔡静之。单片机原理及应用。重庆大学出版社。2007年8月
第2个回答  2010-06-22

这是我自己做的电路程序 靠你自己

第3个回答  2010-06-21
不用跪,给钱就行
第4个回答  2010-06-21
网上那么多,竟没找到???

编程加实践(单片机):求利用89C51 CPU编写红绿灯程序
回答:^_^,安装一个KEILC程序,它的安装目录下面有一个交通灯的完整例子 ^_^

求大佬教教怎么用89c51单片机实现模拟路灯
1. 准备材料:89c51单片机、LED灯、电阻、面包板、杜邦线等。2. 连接电路:将89c51单片机与LED灯连接起来。将LED的正极连接到单片机的一个IO口,将LED的负极通过一个适当大小的电阻连接到单片机的地线。3. 编写程序:使用C语言编写程序,通过控制IO口的高低电平来控制LED灯的亮灭。以下是一个简单的示例...

跪求单片机89C51控制交通灯的课程设计
本实验设计主要是利用AT89C52芯片、发光二极管等一些电路元件设计一个简单的在不同的时间控制不同的灯亮还有周期循环的流水灯电路。并利用说学的知识完成程序设计、画出原理图及接线图,通过主装、调试电路、自行排除故障,最终实现流水等功能。课程设计强调以能力培养为主,在独立完成设计制作任务的同时注意...

汇编89c51单片机红绿灯?
详情请查看视频回答

急急!!!求城市交通灯模拟系统的mcs51指令代码(89c51)
;路口1的车直行时各路口灯亮情况3a3b2p绿3c红+4a4b4c3p全红+1c绿1a1b4p红+2c绿2a2b1p红 ROAD1:MOV DPTR,#7F00H ;置8155命令口地址;无关位为1)MOV A,#03H ;A口、B口输出,A口、B口为基本输入输出方式 MOVX @DPTR,A ;写入工作方式控制字 INC DPTR ;指向A口 MOV A,#...

单片机89c51,总共8个开关,倒着控制8个灯, 求图和程序
switch (case P1_0==0:P2_7=1;break;case P1_1==0:P2_6=1;break;case P1_2==0:P2_5=1;break;case P1_3==0:P2_4=1;break;case P1_4==0:P2_3=1;break;case P1_5==0:P2_2=1;break;case P1_6==0:P2_1=1;break;case P1_7==0:P2_0=1;break;)P1口接SW,SW另...

怎么用89C51单片机实现用一个开关控制8个流水灯,要求开关按下去松开是亮...
开关,接在 P2.7 与地之间。include <AT89X51.H> \/\/预处理命令 void w(unsigned char k){ unsigned int a; \/\/定义变量a 为int 类型 if (k) { while(P2_7); \/\/没有按就循环,等待按下 for (a = 0; a < 600; a++); \/\/延时消抖 while(P2_7); \/\/没有按...

求个89c51单片机 汇编语言设计的LED跑马灯的程序
mov a,#0feh ;每次只亮一个灯。loop: mov p1,a ;输出到p1 lcall delay ; 延时 rl a ;循环左移。ajmp loop ; 跳转main继续循环 delay: mov r5,#20 ;延时子程序1闪烁灯调用 d1:mov r6,#20 d2: mov r7,#250 djnz r7,djnz r6,d2 djnz r5,d1(时间此处可自行设置)...

单片机的交通灯课程设计,希望大神能帮我!
include<reg51.h> define uint unsigned int define uchar unsigned char define red (~0x01)define yellow (~0x02)define green (~0x04)define left (~0x08)define nbred (~0x10)define nbyellow (~0x20)define nbgreen(~0x40)define nbleft (~0x80)uint num2;uchar dx_js,nb_js;uchar...

急求程序,89C51汇编语言写8个按键控制8个LED
程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ORG 0030H ;--- MAIN:MOV TMOD, #01H MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000)SETB TR0 MOV IE, #82H MOV R7, #50 ;500ms LOP:SJMP LOP ;--- T0...

相似回答