单片机交通灯实验报告(汇编语言)
单片机交通灯实验报告

单片机交通灯实验报告简介本实验通过使用单片机设计并实现一个交通灯控制系统,模拟城市道路上的交通信号灯。
实验过程中,我们通过编程控制不同灯的亮灭状态,实现交通灯的循环变换,以此来模拟车辆和行人的行进。
实验材料•单片机•LED灯•电阻•连线•电源实验过程及结果1. 电路连接首先,我们根据实验需要将单片机和LED灯等材料进行连接。
具体连接方式如下:- 将电阻连接到单片机的IO口上,起到限流的作用。
- 将LED灯连接到电阻的另一端。
- 将单片机通过连线与电源进行连接。
2. 程序设计接下来,我们需要编写程序来实现交通灯的循环变换。
使用C语言编程,通过控制IO口的高低电平来控制LED灯的亮灭状态。
以下是程序的主要逻辑:#include <reg52.h>sbit redLed = P1^0; // 红灯sbit yellowLed = P1^1; // 黄灯sbit greenLed = P1^2; // 绿灯void delay(unsigned int t){while(t--);}void main(){while(1){// 红灯亮,其他灯灭redLed = 0;yellowLed = 1;greenLed = 1;delay(50000);// 红灯亮黄灯亮,绿灯灭redLed = 0;yellowLed = 0;greenLed = 1;delay(20000);// 绿灯亮,其他灯灭redLed = 1;yellowLed = 1;greenLed = 0;delay(50000);// 黄灯亮,其他灯灭redLed = 1;yellowLed = 0;greenLed = 1;delay(20000);}}3. 实验结果与分析通过实验,我们观察到LED灯按照我们设计的程序循环地变换亮灭状态,从而实现了交通灯的模拟效果。
红灯、黄灯、绿灯在规定的时间间隔内依次亮起,并在该时间间隔结束后熄灭。
单片机交通灯实验报告

单片机交通灯实验报告一、实验目的二、实验原理三、实验器材四、实验步骤五、实验结果六、实验分析与讨论七、实验总结一、实验目的:本次单片机交通灯实验的主要目的是通过使用单片机控制LED灯的亮灭,模拟交通信号灯的运行状态,并能够正确地掌握单片机编程技巧和硬件连接技术。
二、实验原理:本次交通灯实验采用了单片机作为中央处理器,通过编写程序控制LED灯的亮灭来模拟交通信号灯。
在程序中,我们需要使用到延时函数和条件判断语句。
具体来说,在红绿黄三个LED灯之间切换时,需要设定一个时间段,并在该时间段内循环执行红绿黄三个LED灯亮度变化的循环语句。
三、实验器材:1. 单片机开发板一块;2. LED 灯若干;3. 杜邦线若干。
四、实验步骤:1. 将红色 LED 灯连接至 P0 口;2. 将黄色 LED 灯连接至 P1 口;3. 将绿色 LED 灯连接至 P2 口;4. 将单片机开发板与电脑连接,打开 Keil 软件;5. 编写程序,将红色 LED 灯亮起来;6. 编写程序,将黄色 LED 灯亮起来;7. 编写程序,将绿色 LED 灯亮起来;8. 编写程序,模拟交通信号灯的运行状态。
五、实验结果:在完成了上述步骤后,我们成功地模拟出了交通信号灯的运行状态。
具体来说,在程序中我们设定了一个时间段为10s,在这个时间段内,红灯亮 5s,黄灯亮 2s,绿灯亮 3s。
在这个时间段结束后,循环执行该过程。
六、实验分析与讨论:通过本次交通灯实验,我们学习到了如何使用单片机控制LED灯的亮灭,并能够正确地编写程序模拟交通信号灯的运行状态。
在编写过程中需要注意以下几点:1. 在使用延时函数时要注意时间单位和精度;2. 在编写条件判断语句时要注意逻辑结构和语法规范;3. 在硬件连接时要注意杜邦线的颜色对应关系和插口位置。
七、实验总结:本次单片机交通灯实验是一次非常有意义的实践活动。
通过此次实验,我们掌握了单片机编程技巧和硬件连接技术,并能够正确地模拟交通信号灯的运行状态。
单片机实训报告交通灯

一、实训背景与目的随着城市化进程的加快,交通流量日益增大,传统的交通灯控制系统已经无法满足日益复杂的交通需求。
为了提高交通效率,减少交通拥堵,本实训项目旨在设计并实现一套基于单片机的智能交通灯控制系统。
通过本实训,学生可以深入了解单片机原理,掌握单片机编程与调试技巧,同时锻炼动手实践能力和团队协作精神。
二、系统设计1. 系统组成本系统主要由以下模块组成:单片机模块:采用AT89C52单片机作为核心控制单元,负责接收传感器信号、处理数据、控制交通灯状态等。
传感器模块:包括红外传感器、地磁传感器等,用于检测车辆和行人,实时获取交通信息。
执行模块:包括LED灯、继电器等,用于驱动交通灯和信号灯。
显示模块:采用LCD显示屏,用于显示交通灯状态、倒计时等信息。
电源模块:为系统提供稳定电源。
2. 工作原理系统工作原理如下:(1)单片机初始化,设置各模块参数。
(2)单片机通过传感器模块检测交通情况,如车辆和行人数量。
(3)单片机根据检测到的交通情况,控制交通灯和信号灯的亮灯状态。
(4)LCD显示屏显示交通灯状态和倒计时信息。
(5)当系统检测到紧急情况时,如行人过马路,系统自动切换到紧急模式,确保行人安全。
三、硬件设计1. 单片机模块选用AT89C52单片机作为核心控制单元,具有以下特点:内置8K字节闪存,可存储程序和数据。
内置8位定时器/计数器,可进行定时或计数操作。
内置串行通信接口,可进行数据通信。
2. 传感器模块红外传感器:用于检测车辆和行人,实现自动控制。
地磁传感器:用于检测车辆行驶方向,实现左转和直行控制。
3. 执行模块LED灯:用于显示交通灯状态。
继电器:用于驱动信号灯。
4. 显示模块采用LCD显示屏,用于显示交通灯状态、倒计时等信息。
5. 电源模块采用DC 12V电源,为系统提供稳定电源。
四、软件设计1. 编程语言采用C语言进行编程,具有以下优点:语法简单,易于理解。
可移植性好,可在不同平台上运行。
单片机交通灯实习报告

一、实习背景随着我国城市化进程的加快,城市交通压力日益增大,交通拥堵问题日益突出。
为了提高交通效率,保障交通安全,交通信号灯控制系统的设计与研究显得尤为重要。
本实习项目旨在通过单片机技术,实现对交通灯的智能控制,提高交通路口的通行效率和安全性。
二、实习目的1. 熟悉单片机的基本原理和编程方法;2. 掌握交通信号灯控制系统的设计方法;3. 提高实际动手能力和问题解决能力;4. 培养团队协作精神和创新意识。
三、实习内容1. 硬件设计(1)单片机选型:选用STC89C51单片机作为核心控制器;(2)传感器选型:选用红外传感器检测车辆和行人流量;(3)显示屏选型:选用LCD显示屏显示交通灯状态和时间;(4)交通灯模块:采用LED灯实现红、黄、绿灯的显示;(5)按键模块:采用按键实现功能切换和参数设置。
2. 软件设计(1)系统初始化:单片机上电后,进行系统初始化,包括设置定时器、初始化I/O端口等;(2)数据采集:通过红外传感器采集交通流量数据,并进行处理;(3)数据处理与决策:根据采集到的交通流量数据,结合预设的算法和规则,计算出当前交通灯的信号配时;(4)信号控制:根据计算出的信号配时,控制交通灯的信号状态;(5)人机交互:通过按键实现功能切换和参数设置,并通过LCD显示屏显示交通灯状态和时间。
3. 系统测试与调试(1)硬件测试:检查电路连接是否正确,电源是否稳定,传感器、显示屏、交通灯模块是否正常工作;(2)软件测试:通过编写测试程序,验证系统功能是否满足设计要求;(3)调试:根据测试结果,对系统进行调试,确保系统稳定可靠地运行。
四、实习成果1. 设计并实现了基于单片机的交通信号灯控制系统;2. 系统能够根据实时交通流量自动调整红绿灯的切换时间,提高交通效率;3. 系统具有故障自诊断、手动/自动切换等功能,提高了系统的可靠性和实用性。
五、实习总结通过本次单片机交通灯实习,我掌握了单片机的基本原理和编程方法,熟悉了交通信号灯控制系统的设计方法,提高了实际动手能力和问题解决能力。
单片机实验报告(汇编语言+交通灯+工业控制等)

单片机应用技术实验报告BCD码加法一、实验内容编写一个程序实现多位BCD码加法。
假设单片机RAM中20H和30H中放着BCD码加数和被加数,结果放在20H开始的单元中。
要求考虑进位问题。
二、实验源程序ORG0630HMOV R0,#20HMOV R1,#30HMOV A,R7;R7中放着加数的个数MOV R6,A;R6中放置最后结果CLR CLOOP:MOV A,@R0;取加数ADDC A,@R1DA A;十进制加法调整MOV@R0,A;把结果送回20H开始的单元INC R0INC R1DJNZ R7,LOOPJC NEXT1;如果最后一次加法有进位,跳转到NEXT1SJMP NEXT2NEXT1:MOV@R0,#1;R0中放置进位INC R6NEXT2:NOPEND三、实验小结这个BCD码加法实验在编程是,遇到些语法小问题,后来在同组同学的探讨下纠正了过来。
当程序运行正确时我们有一种成就感,很高兴。
实验名称:P3.3输入、P0口输出一、实验内容(1)P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。
(2)P1口做输出口,编写程序,使P1口接的8个发光二极管L1—L8按16进制加一方式点亮发光二极管。
二、实验说明(1)P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。
(2)延时子程序的延时计算问题。
对于延时程序DELAY:MOV R6,#00HDELAY1:MOV R7,#80HDJNZ R7,$DJNZ R6,DELAY1MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms三、实验步骤(1)P3.3用插针连至K1,P1.0—P1.7用插针连至L1—L8。
简单交通灯实验 C语言 汇编语言

值得和即为另外一个方向红灯的时长。
上述两个程序的写法可以相互结合,在汇编语言编写的程序中,使用的是对 位进行赋值的方式控制的,书写麻烦,但是易懂。C 语言使用的是对 P 口进行赋 值,书写简单,可读性稍差。
4
delay(nbhd); P2=0X2D; //东西绿灯,南北红灯
delay(dxld); P2=0X2B; //东西黄灯,南北红灯
delay(dxhd);
}
} 注意:因为一个方向绿灯与黄灯的时长正好等于另外一个方向红灯的时长,因此
在程序开头进行定义时,仅仅定义了东西和南北方向绿灯与黄灯的时长,这两个
1
在进行原理图搭建的过程中需要注意: 1 发光二极管的极性。如果发光二极管在电路中接反了,即使程序正确,也 无法点亮发光二极管。只有当发光二极管中的电流充阳极流到阴极的时候,才能 点亮发光二极管。可以将原理图中发光二极管的的三角形看做箭头,只有电流沿 着箭头方向流动,才可以点亮发光二极管。 2 分压电阻。发光二极管最好串联分压电阻,否则在仿真软件中,单片机引 脚的电平状态显示将错误(注意:即使不添加也不影响发光二极管的点亮状态, 最好添加)。在实物制作时,由于单片机引脚的驱动能力有限,因此即使不串联 分压电阻,也可以。另外分压电阻的阻值需要注意,不可以太大,太大会导致发 光二极管不亮或者发光较暗。在仿真软件中设置为 200Ω 就可以。 3 交通灯组件。在进行交通灯实验时,可以不适用带颜色的数码管,直接使 用交通灯组件,这样绘制电路图非常方便。交通灯组件的关键词是“traffic lights”。 该组件使用的是正逻辑驱动,也就是说当引脚的电平为高电平时,旁边对应的 LED 点亮。 在上述原理图中,我将发光二极管组成的交通灯以及交通灯组件组成的交通 灯放在一个仿真原理图中(东西方向用 LED 灯绘制,南北方向用交通灯组件绘 制),读者如果需要使用相同的交通灯组件,只需要直接修改原理就可以,程序 不需要修改。 虽然交通灯的点亮状态有 3 种,但是将东西和南北的点亮状态组合却又 4 种,在编程的时候需要注意。控制流程:东西红灯,南北绿灯→东西红灯,南北 黄灯→东西绿灯,南北红灯→东西黄灯,南北红灯→······
51单片机设计交通灯(汇编语言)

题目:智能交通灯控制系统班级:p09电气四班姓名:刘强0903110429一、任务:设计并制作一个城市交道口交通灯控制糸统二、要求:根据下图交道口模型,装上交通灯。
交道口模型如图所示。
交通灯控制规则如下:1)每个街口有左拐、右拐、直行及行人四种指示灯。
每个灯有红、绿两种颜色。
自行车与汽车共用左拐、右拐和直行灯。
2)共有四种通行方式:①车辆南北直行、各路右拐,南北向行人通行。
南北向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。
②南北向左拐、各路右拐,行人禁行。
通行时间为1分钟。
③东西向直行、各路右拐,东西向行人通行。
东西向通行时间为1分钟,各路右拐比直行滞后10秒钟开放。
④东西向左拐、各路右拐。
行人禁行。
通行时间为1分钟。
3)在通行结束前10秒钟,绿灯闪烁直至结束。
1, 基本部分:按照上述控制要求,用发光二极管代替交通灯,用PROTEUS绘制电路图,并仿真调试实现之。
2, 发挥部分:1.有倒计时时间显示。
2若交道口出现紧急情况,交警可将糸统设置成手动:全路口车辆禁行、行人通行。
紧急情况结束后再转成自动状态。
3当有119、120等特种车辆通过时,糸统自动转为特种车放行,其它车辆禁止状态。
特种车辆通过15秒钟后,糸统自动恢复,用模型车演示。
4其它自选措施。
智能交通灯控制系统1.系统功能的确定功能一:可以实现红绿灯的转换以及控制路口的基本功能。
功能二:有倒计时功能和最后十秒绿灯闪烁的功能。
功能三:出现紧急情况时,警察可以手动控制特殊状态,并维持交通。
功能四:119或120等特种车经过时,可转换成为特种车道行驶状态,并在情况消除后15秒,恢复原状。
2.方案论证2.1方案一:如下图所示,为proteus仿真图。
其中,P1,P0端口的8位分别来控制东西,南北方向的红绿灯。
且运用了4个74LS164的8位移位寄存器(串行输入,并行输出)来控制4个LED的数码显示,通过AT89C51单片机的P3.0,P3.1两个扩展端口来接4个并行连接的74LS164的DIN和CLK两个端口来显示倒计时的功能,这会产生乱码使得显示杂乱,而主程序以顺序执行为主,其中穿插着对P3.7的端口高低电平的测试和跳转语句来实现功能三,并且功能一、二在主程序中实现,没有功能四的的实现程序。
单片机交通灯实验汇编语言程序

单片机交通灯实验汇编语言程序经过几天的整理,终于将网络上得到交通灯仿真文件,用汇编自己编写了一个程序,实验结果完全符合本人的思路,实验成功。
程序比较长,估计还会用更好的办法重新写。
编写心得是:单片机编程,不一定要背指令,用时可以查,也不必去默写子程序,用时还是可以查,但是,很关键的就是,你的程序,你自己要清楚整个的执行过程,也就是单片机的执行流程。
而在实际的应用中,要注意驱动电路的设计,特别是单片机上电复位输出高电平可能造成的影响。
程序如下:如果网页显示格式错乱可从51hei/f/jtda.rar 处下载. ORG 0000HSTART:MOV R2,#30SU0:MOV P0,#00HMOV P1,#00HMOV P2,#00HMOV P3,#00111111BMOV A,R2MOV R4,AMOV A,R4MOV R0,AMOV B,#5DIV ABMOV B,#3MUL ABMOV R1,ASETB P0.4SETB P0.7SETB P2.2SETBP2.5AJMP KEYSU1A: DEC R0DEC R1SUL5: CJNE R1,#5,SUL6SETB P2.7SUL6: CJNE R1,#4,SUL7SETB P2.7SUL7: CJNE R1,#3,SUL1SETB P2.7SUL1: CJNE R1,#2,SUL2SETB P2.7SUL2: CJNE R1,#1,SUL3SETB P2.7SUL3: CJNE R1,#0,SUL4MOV A,R0MOV R1,ACLR P2.5CLR P0.7SETB P0.5SETB P2.4SUL4: CJNE R0,#0,KEYAJMP SU0BKEY: JB P3.5,KEY1 LCALL DELAY MOVR2,#45KEY1:JB P3.2,KEY2 LCALL DELAY MOV R2,#60KEY2:JB P3.3,KEY3 LCALL DELAY MOV A,R2 ADD A,#5 MOV R2,A CJNE R2,#95,DD MOVR2,#95KEY3:JB P3.4,DD LCALL DELAY MOV A,R2 SUBB A,#5 MOV R2,A CJNE R2,#0,DD MOV R2,#0DD:MOV R3,#50;数码1DD1: MOV P1,#00H MOV A,R0 MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A SETB P0.0 LCALL DELAY1 CLR P0.0 MOV A,B MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A SETB P0.1 LCALL DELAY1 CLR P0.1;数码2 MOV。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四单片机交通灯实验
1、实验要求
本实验分两部分,第一部分是普通交通灯的模拟:初始状态0为东西红灯,南北红灯.然后转状态1南北绿灯通车,东西红灯.过一段时间转状态,南北绿灯闪几次转两黄灯,延时几秒,东西仍然红灯,再转状态3,东西绿灯通车,南北红灯.过一段时间转状态4.东西绿灯山几次转黄灯,延时几秒,南北仍然红灯,,最后循环至状态1。
第二部分在以上的基础上当有急救车到达时,两项交通信号为全红,以便让急救车通过.假定急救车通过路口时间为10秒,急救车通过后,交通恢复中断前状态.被实验已按键为终端申请,表示有急救车通过.
2、实验电路图
(1)十二端口控制
(2)六端口控制
3、实验程序如下
(1) 十二位控制ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV P1,#0F0H
MOV P0,#0FFH
MOV A,#00H
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB ET0
SETB EA
SETB TR0
HERE: SJMP HERE
IT0P: MOV TL0,#0B0H
MOV TH0,#3CH
INC A
CJNE A,#50,L1
MOV P1,#0FCH
MOV P0,#0F3H
RETI
L1: CJNE A,#100,L2
MOV P1,#03CH
MOV P0,#0FFH
RETI
L2: CJNE A,#110,L3
MOV P1,#0FCH
MOV P0,#0FFH
RETI
L3: CJNE A,#120,L4
MOV P1,#03CH
MOV P0,#0FFH
RETI
L4: CJNE A,#130,L5
MOV P1,#0F3H
MOV P0,#0FCH
RETI
L5: CJNE A,#180,L6
MOV P1,#0C3H
MOV P0,#0FFH
L6: CJNE A,#190,L7
MOV P1,#0F3H
MOV P0,#0FFH
RETI
L7: CJNE A,#200,L8
MOV P1,#0C3H
MOV P0,#0FFH
L8: CJNE A,#210,BUTTON
MOV P1,#0F0H
MOV P0,#0FFH
CLR A
RETI
BUTTON:RETI
END
(2) 六位控制ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
ORG 0013H
LJMP IT1P
MAIN: MOV P0,#09H
MOV A,#00H
MOV TL0,#0B0H
MOV TMOD,#61H
MOV TL0,#0FFH
MOV TH0,#0FFH
SETB ET0
SETB EA
SETB TR0
SETB PX1
SETB PT1
SETB EX1
SETB ET1
SETB TR1
HERE: SJMP HERE
IT1P:MOV Acc,P0
PUSH Acc
MOV P0,#09H
ACALL DL Y10S
POP Acc
MOV P0,Acc
RETI
IT0P: MOV TL0,#0B0H
MOV TH0,#3CH
INC A
CJNE A,#5,L1
MOV P0,#11H
RETI
L1: CJNE A,#60,L2
MOV P0,#21H
RETI
L2: CJNE A,#70,L3
MOV P0,#01H
RETI
L3:CJNE A,#80,L4
MOV P0,#21H
RETI
L4:CJNE A,#90,L5
MOV P0,#0AH
RETI
L5:CJNE A,#140,L6
MOV P0,#0CH
RETI
L6:CJNE A,#150,L7
MOV P0,#08H
RETI
L7:CJNE A,#160,L8
MOV P0,#0CH
RETI
L8: CJNE A,#170,BUTTON
CLR A
RETI
BUTTON:RETI
DL Y10S : MOV R5,#200
DL Y10S1: MOV R6,#125
DL Y10S2: MOV R7,#100
DL Y10S3:DJNZ R7,DL Y10S3 ;248*2+4
DJNZ R6,DL Y10S2 ;(248*2+4)*200+4
DJNZ R5,DL Y10S1 ;[(248*2+4)*200+4]*100+4
RET
END
4、数据记录
有救护车通过时的状态。