微机原理实验四实验报告控制交通灯实验
- 格式:doc
- 大小:34.50 KB
- 文档页数:4
交通灯控制实验报告交通灯控制实验报告引言:交通灯是城市交通管理的重要组成部分,通过对交通流量的控制,有效地维护交通秩序和安全。
本次实验旨在通过搭建一个简单的交通灯控制系统,探究不同交通流量下的信号灯变化规律,并分析其对交通流畅度和效率的影响。
实验装置:实验装置由红、黄、绿三种颜色的LED灯组成,分别代表红灯、黄灯和绿灯。
通过按键控制,可以切换不同灯光的显示状态。
在实验过程中,我们将模拟不同交通流量情况下的信号灯变化。
实验过程:1. 低交通流量情况下:首先,我们模拟低交通流量情况。
设置红灯时间为20秒,绿灯时间为30秒,黄灯时间为5秒。
在这种情况下,红灯的时间较长,确保道路上的车辆能够安全通过。
绿灯时间相对较短,以充分利用交通资源,提高交通效率。
黄灯时间较短,用于过渡信号灯变化。
2. 中等交通流量情况下:接下来,我们模拟中等交通流量情况。
设置红灯时间为30秒,绿灯时间为40秒,黄灯时间为5秒。
在这种情况下,红灯时间相对较长,确保道路上的车辆能够顺利通过。
绿灯时间适中,以保持交通的流畅性。
黄灯时间依然较短,用于过渡信号灯变化。
3. 高交通流量情况下:最后,我们模拟高交通流量情况。
设置红灯时间为40秒,绿灯时间为50秒,黄灯时间为5秒。
在这种情况下,红灯时间最长,确保道路上的车辆能够完全通过。
绿灯时间相对较长,以缓解交通压力,提高交通效率。
黄灯时间仍然较短,用于过渡信号灯变化。
实验结果:通过实验观察,我们发现不同交通流量下的信号灯变化对交通流畅度和效率有着明显的影响。
在低交通流量情况下,红灯时间较长,确保车辆安全通过,但可能导致交通效率稍有降低。
在中等交通流量情况下,信号灯的设置更加平衡,保证了交通的流畅性和效率。
而在高交通流量情况下,红灯时间最长,确保车辆完全通过,但也导致交通效率相对较低。
结论:通过本次实验,我们得出了以下结论:交通灯的设置应根据不同交通流量情况进行合理调整,以保证交通的流畅性和效率。
实验八 交通灯控制实验一、实验目的:1、学习并掌握并行接口8255A的内部结构,功能及编程。
2、通过并行接口8255A实现十字路口交通灯的模拟控制,进一步掌握对并行A、B、C端口能在以下三种方式下工作:方式0—基本输入/出方式方式1—选通输入/出方式方式2—双向选通输入/出方式8255A的工作方式控制字用来决定8255A端口的工作方式,方式控制字的格式如图2-2所示。
表2-1 8255端口地址L12、L11、L10作为东西路口的交通灯与PC0、PC1、PC2相连,编程使六个交通灯按如下变化规律燃灭。
十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮。
(2)南北路口的黄灯闪烁若干次,同时东西路口红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮。
(4)南北路口的红灯继续亮,同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
四、实验步骤1、按图2-1连接实验线路,注意切断实验箱电源。
2、参考下面的实验流程编写实验程序。
实验流程如下:3、经汇编、链接后将程序装入系统。
4、运行程序,观察交通灯的变化。
交通灯控制实验程序1: data segmentprotc1 db 9bh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbh db 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,alcall delayinc bxjmp loop2delay:mov cx,01ffhde1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend start交通灯控制实验程序2:data segmentprotc1 db 0dbh,0bbh,0fbh,0bbh,0fbh,0bbh,0fbhdb 7eh,7dh,7fh,7dh,7fh,7dh,7fhdb 0ffhdata endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,0e3hmov al,90hout dx,almov dx,0e2hloop1: mov bx,0000hloop2:mov al,protc1[bx]cmp al,0ffhjz loop1out dx,aland al 21hcmp al,21hjz aamov cx,0effhjmp bbaa: mov cx,01dfhbb: call delayinc bxjmp loop2delay:de1: mov di,0ffhde0: dec dijnz de0loop de1retcode endsend startdata segmentportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志 data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255bmov al,90hout dx,al ;设置8255为C口输出mov dx,io8255are_on: mov bx,0on: mov al,portc1[bx]cmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,20 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,5000 ;有,长延时de1: mov di,9000 ;di赋初值5000de0: dec di ;减1计数jnz de0 ;di不为0loop de1push dxmov ah,06hmov dl,0ffhint 21hpop dxjz on ;没有,转到onexit: mov ah,4ch ;返回int 21hcode endsend start。
微机交通灯实验报告微机交通灯实验报告摘要:本实验旨在通过设计和实现一个微机交通灯系统,探索微机控制在交通管理中的应用。
通过实验,我们成功地搭建了一个基于微机的交通灯控制系统,并对其进行了功能测试和性能评估。
实验结果表明,微机交通灯系统能够有效地提高交通流量的控制和管理效果,为城市交通运输提供了更高效、更安全的解决方案。
一、引言交通管理一直是城市发展中的重要问题之一。
为了提高交通效率和确保交通安全,交通灯作为一种重要的交通管理设施,被广泛应用于城市道路。
然而,传统的交通灯控制系统存在一些问题,如无法根据实际交通情况进行动态调整,容易导致交通堵塞和拥堵。
因此,设计一个基于微机的交通灯控制系统,能够更好地适应不同交通状况,提高交通流量的控制效果,具有重要的研究和应用价值。
二、实验设计本实验采用了基于微机的交通灯控制系统。
该系统由红灯、黄灯和绿灯三个信号灯组成,通过微机控制器实现对交通灯的控制。
系统根据预设的时间间隔,按照红-黄-绿的顺序进行信号灯切换。
同时,系统还可以根据交通流量和优先级设置进行动态调整,以提高交通效率。
三、实验过程1. 硬件搭建我们首先搭建了一个简单的电路,包括红灯、黄灯和绿灯的LED灯,以及与微机控制器相连的开关和传感器。
通过这些硬件设备,我们可以实现对交通灯的控制和监测。
2. 软件编程为了实现交通灯的控制,我们使用了C语言对微机控制器进行编程。
通过编写程序,我们可以根据预设的时间间隔和交通流量等参数,实现对交通灯的自动切换和调整。
同时,我们还可以通过传感器获取实时的交通流量数据,以便更好地进行交通管理。
3. 功能测试在完成硬件搭建和软件编程后,我们进行了功能测试。
通过模拟不同的交通情况,我们验证了交通灯系统的正常工作和切换效果。
实验结果表明,系统能够准确地按照预设的时间间隔进行信号灯切换,适应不同交通状况。
四、实验结果与讨论通过实验,我们得出了以下结论:1. 微机交通灯系统能够有效地提高交通流量的控制效果。
电子信息工程学系实验报告课程名称:微型计算机技术成绩:实验项目名称:交通灯实验实验时间:2011-12-16指导教师(签名):班级:通信091 姓名:Jxairy 学号:910705131实验目的:1、进一步熟悉掌握8255的控制。
2、进一步熟悉掌握8088/86对8259的控制方法。
3、进一步熟悉掌握8253的控制。
实验环境:Windows XP操作系统、ZY15MicInt12BB微机原理及接口实验箱一台、湖北众友微机原理与接口技术软件。
原理说明:本实验主要用到的实验模块:系统模块、8253模块、8255模块、8259模块、0-1指示模块、实验译码单元等。
(一)、8253模块简介:8253/8254是可编程的定时器芯片。
它们都是包含三个独立的16位通道。
每个通道可作定时器也可作计数器使用,可通过软件编程选定6种工作方式之任一种。
它们都用N沟道MOS工艺制成,只需要一组+5V电源。
8253的每个计数器通道都有6种工作方式可供选用。
区分这6种工作方式的主要标志有3点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号GA TE对计数操作的控制不同。
8253方式控制字设定,如图7.1所示。
图7.1 方式控制字设定8253和系统相连的信号线在实验箱内部都已经连好,实验过程中只需要连接信号到8253模块通道2的OUT2、CLK2和GATE2即可。
(二)、8255模块简介:8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。
它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。
这24根端口线全部为双向三态。
三个端口可分二组来使用,可分别工作于三种不同的工作方式。
8255方式选择控制字分析,如图7.2所示:8255端口C置1/置0控制字分析(A1、A0 =11),如图7.3所示:8255基本操作与端口地址,如下表所示:图7.2 8255方式选择控制字图7.3 8255端口C置1/置0控制字表8255基本操作与端口地址图7.4 8259初始化流程(三)、8259模块简介:8086的INTR中断请求信号来自中断控制器8259A,可以是电平触发方式,也可以边沿触发。
微机实验交通灯实验报告微机实验交通灯实验报告引言交通灯作为城市交通管理的重要组成部分,对于保障交通安全和顺畅起着至关重要的作用。
本次实验旨在通过微机控制,模拟交通灯的工作原理,并实现交通灯的自动控制。
一、实验目的本次实验的主要目的是通过搭建一套微机控制系统,实现交通灯的自动控制,并通过实验验证交通灯在不同道路情况下的工作原理和效果。
二、实验原理1. 交通灯的工作原理交通灯通常由红、黄、绿三个信号灯组成。
红灯表示停止,黄灯表示准备,绿灯表示可以通行。
交通灯通过不同颜色的灯光变化,指示车辆和行人何时可以通行,以保障交通的有序进行。
2. 微机控制系统微机控制系统是利用计算机和相应的软硬件实现对设备、机器等的控制和管理。
在交通灯实验中,我们可以通过编程控制计算机输出不同的信号,从而实现交通灯的自动控制。
三、实验器材和步骤1. 实验器材- 微机控制系统:包括计算机、编程软件和控制接口等。
- 交通灯模型:模拟真实的交通灯,包括红、黄、绿三个信号灯。
2. 实验步骤- 连接交通灯模型和微机控制系统。
- 编写程序,设置交通灯的工作时间和信号灯变化规律。
- 运行程序,观察交通灯的工作状态和变化过程。
四、实验结果和分析通过实验,我们成功地实现了交通灯的自动控制。
在程序中,我们设置了红灯亮10秒,黄灯亮3秒,绿灯亮15秒的时间间隔,模拟了真实交通灯的工作规律。
在实验过程中,我们观察到交通灯按照预设的时间间隔循环变化,红灯亮起时车辆停止,绿灯亮起时车辆可以通行。
这样的交通灯控制方式可以有效地维持交通的有序进行,减少交通事故的发生。
五、实验总结通过本次实验,我们深入了解了交通灯的工作原理和微机控制系统的应用。
微机控制系统作为一种高效、精确的控制手段,可以广泛应用于各个领域,提高设备的自动化程度和工作效率。
在今后的学习和工作中,我们将继续深入学习微机控制系统的原理和应用,掌握更多的编程技巧和控制方法,为实现更多实际问题的自动化解决方案做出贡献。
实验四交通灯实验一、实验目的1.按键、数码管、发光二极管综合应用编程技术2.数据存储于EEPROM的技术(也可以不使用)3.定时中断技术4.按键中断技术二、实验实现的功能1.对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。
2.设定参数掉电后不丢失(如果不使用EEPROM,此功能可以不实现)。
3.紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。
再按该键,恢复正常显示。
三、系统硬件设计1、单片机最小系统部分2、硬件连接图3、引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用11.0592MHz的石英晶体。
时钟电路如下图4、键盘扫描整个3x3键盘按键的分配及配置原理图如图1-4所示。
图中为9键的控制电路,使用STC89C51的P0端口和P3端口的5条I/O线做9个按键的键盘扫描,并由 P0.5~P0.7送出扫描信号,而由P3.6、P3.7读取按键数据返回码。
4、二极管显示部分5、数码管显示部分四、系统软件设计#include "reg51.h"#define uint unsigned int#define uchar unsigned char sbit P0_5=P0^5;sbit P0_6=P0^6;sbit P0_7=P0^7;sbit P3_6=P3^6;uchar m,ptr;uint count=0;uchar data second=0,minute=0;uchar data disbuf[4]={0,1,2,3};uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar tab1[4]={0xf7,0xfb,0xfd,0xfe};void delay(){uint j;{for(j=0;j<256;j++){;}}}void timer0() interrupt 1{TH0=0xd8;TL0=0xf0;count++;if(count==100){count=0;second--;}return;}void display(void){uchar i,p,temp;disbuf[0]=second%10;disbuf[1]=second/10;disbuf[2]=minute%10;disbuf[3]=minute/10;for(i=0;i<4;i++){ P1=0xff;temp=tab1[i];P0=temp;p=disbuf[i];temp=tab[p];P1=temp;delay();}}void key(){uint t=1;P0=0xdf;if(P3_6==0){delay();if(P3_6==0){TR0=0;P2=0xdb;P3=0xdb;t=1;while(t){if(P3_6==0){delay();if(P3_6==0){TR0=1;t=0;}}}}}}void main(){uint n=1;TCON=0x01;TMOD=0x01;TH0=0xd8;TL0=0xf0;EA=1;ET0=1;EX0=1;TR0=1;minute=0;second=10;while(1){ key();if(n==1){if(second>5&&second<=30){P2=0xf3;P3=0xf3;}if(second>=0&&second<=5){P2=0xeb;P3=0xeb;if(second==0){second=10;n=0;}}}else if(n==0){if(second>5&&second<=30){P2=0x9e;P3=0xdf;}if(second>=0&&second<=5){P2=0x5d;P3=0xdf;if(second==0){second=10;n=1;}}}display();}} #include "reg51.h"#define uint unsigned int#define uchar unsigned charsbit P0_5=P0^5;sbit P0_6=P0^6;sbit P0_7=P0^7;sbit P3_6=P3^6;uchar m,ptr;uint count=0;uchar data second=0,minute=0;uchar data disbuf[4]={0,1,2,3};uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar tab1[4]={0xf7,0xfb,0xfd,0xfe};void delay(){uint j;{for(j=0;j<256;j++) {;}}}void timer0() interrupt 1 {TH0=0xd8;TL0=0xf0;count++;if(count==100){count=0;second--;}return;}void display(void){uchar i,p,temp;disbuf[0]=second%10; disbuf[1]=second/10; disbuf[2]=minute%10; disbuf[3]=minute/10; for(i=0;i<4;i++){ P1=0xff;temp=tab1[i];P0=temp;p=disbuf[i];temp=tab[p];P1=temp;delay();}}void key(){uint t=1;P0=0xdf;if(P3_6==0){delay();if(P3_6==0){TR0=0;P2=0xdb;P3=0xdb;t=1;while(t){if(P3_6==0){delay();if(P3_6==0){TR0=1;t=0;}}}}}}void main(){uint n=1;TCON=0x01;TMOD=0x01;TH0=0xd8;TL0=0xf0;EA=1;ET0=1;EX0=1;TR0=1;minute=0;second=10;while(1){ key();if(n==1){if(second>5&&second<=30){P2=0xf3;P3=0xf3;}if(second>=0&&second<=5){P2=0xeb;P3=0xeb;if(second==0){second=10;n=0;}}}else if(n==0){if(second>5&&second<=30){P2=0x9e;P3=0xdf;}if(second>=0&&second<=5){P2=0x5d;P3=0xdf;if(second==0){second=10;n=1;}}}display();}}五、实验过程中遇到的问题及解决方法1、当在编程时,开始时以为绿灯、红灯、黄灯的时间是可以根据实际情况随意给定,但是,灯的转换变得很乱,后来自己才想清楚,红灯的时间应该等于绿灯亮的时间加上黄灯亮的时间;2、当出现紧急情况时,四个红灯亮,但是按键前所亮的绿灯或黄灯按键后不灭,解决方法:在按键后给绿灯和黄灯的发光二级管高电平。
开始设置8255C口输出南北路口的绿灯、东西路口的红灯亮长延时南北路口的黄灯闪烁,东西路口红灯亮南北路口的红灯、东西路口的绿灯亮长延时南北路口红灯亮、东西路口黄灯亮闪烁是否有键按下N交通灯信号控制实验一、实验目的1、掌握并行接口8253的基本原理2、掌握8253的编程方法二、实验内容如图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通变化规律亮灭。
三、编程提示1、8255控制寄存器地址:28BH—0C40BHA口地址:288H—04C408HC口地址:28AH—04C40AH2、十字路口交通灯的变化规律要求(1)南北路口的绿灯、东西路口的红灯同时亮三秒;(2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;(3)南北路口的红灯、东西路口的绿灯同时亮三秒;(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;(5)转(1)重复。
3、程序设计流程四、程序设计及实验调试程序设计的思想及注意事项:1.首先是在选择程序时是选用软件延时还是硬件延时。
我采用的是C口方式0输入,所以选用了软件延时。
2.在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。
为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H (这是我通过实验的结果)。
人眼感觉闪烁的效果只是短延时的结果。
实验程序:CODE SEGMENTASSUME CS:CODESTART: MOV DX,0C40BHMOV AL,10010000B ;C口方式0输入OUT DX,ALFIRST: MOV DX,0C40AHMOV AL,00100100BOUT DX,AL ;南北绿,东西红写入C口MOV CX,0 ;送入初值65536MOV AX,4000H ;软件长延时,由经验值确定DELAY1: DEC AXJNZ DELAY1LOOP DELAY1MOV BL,4 ;控制黄灯亮的次数SECOND:MOV DX,0C40AHMOV AL,01000100BOUT DX,AL ;南北黄,东西红MOV CX,3000HMOV AX,0100HLI1:DEC AXJNZ LI1LOOP LI1MOV DX,0C40AH ;软件短延时MOV AL,00000100B ;南北黄灭OUT DX,ALMOV CX,3000HMOV AX,0100HWEN1:DEC AXJNZ WEN1 ;软件短延时LOOP WEN1DEC BLJNZ SECOND ;黄灯闪烁4次THIRD: MOV DX,0C40AH ;写入C口MOV AL,10000001BOUT DX,AL ;南北红,东西绿MOV CX,0MOV AX,4000HDELAY2: DEC AX ;软件长延时JNZ DELAY2LOOP DELAY2MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX,0C40AH ;写入C口MOV AL,10000010BOUT DX,AL ;南北红,东西黄MOV CX,3000HMOV AX,0100HLI2:DEC AXJNZ LI2 ;软件短延时LOOP LI2MOV DX,0C40AHMOV AL,10000000BOUT DX,AL ;东西黄灭MOV CX,3000HMOV AX,0100HWEN2:DEC AXJNZ WEN2LOOP WEN2DEC BLJNZ FORTH ;黄灯闪烁4次MOV DL,0FFHMOV AH,06HINT 21H ;执行键盘输入操作JZ FIRSTMOV AH,4CHINT 21H ;返回操作系统CODE ENDSEND START实验中遇到问题及分析:1.首先,实验出现的问题是在编程方面。
一、实训目的通过本次实训,使学生掌握微机原理的基本知识,了解微机原理在交通信号灯控制中的应用,提高学生动手实践能力,培养团队协作精神。
二、实训内容1. 红绿灯控制系统硬件设计(1)硬件组成红绿灯控制系统主要由微控制器、LED灯、传感器、按键、电源等组成。
(2)硬件连接将微控制器与LED灯、传感器、按键等通过相应的接口连接起来。
2. 红绿灯控制系统软件设计(1)软件组成红绿灯控制系统软件主要由主程序、中断服务程序、延时函数、按键扫描函数等组成。
(2)软件设计①主程序:负责初始化系统,设置定时器中断,进入主循环,检测按键输入,根据按键输入和传感器输入,控制LED灯的亮灭。
②中断服务程序:当定时器中断发生时,调用中断服务程序,更新LED灯的亮灭状态。
③延时函数:实现软件延时功能,用于控制LED灯的亮灭时间。
④按键扫描函数:扫描按键输入,实现红绿灯控制模式的切换。
3. 红绿灯控制系统测试与调试(1)测试①硬件测试:检查硬件连接是否正确,LED灯、传感器、按键等是否正常工作。
②软件测试:通过按键输入,观察LED灯的亮灭状态,确保软件设计符合预期。
(2)调试根据测试结果,对软件进行调试,确保红绿灯控制系统正常运行。
三、实训过程1. 硬件设计(1)选择合适的微控制器:根据实训要求,选择一款具有丰富外设接口的微控制器。
(2)设计电路原理图:根据微控制器和所需外设的连接关系,绘制电路原理图。
(3)制作PCB板:根据电路原理图,制作PCB板。
2. 软件设计(1)编写程序:使用C语言或汇编语言编写程序,实现红绿灯控制功能。
(2)编译程序:将编写好的程序编译成机器码。
(3)烧录程序:将编译好的程序烧录到微控制器中。
3. 测试与调试(1)硬件测试:检查硬件连接是否正确,LED灯、传感器、按键等是否正常工作。
(2)软件测试:通过按键输入,观察LED灯的亮灭状态,确保软件设计符合预期。
(3)调试:根据测试结果,对软件进行调试,确保红绿灯控制系统正常运行。
计算机硬件实验室实验报告课程名称:微机原理及应用
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
代码:
#start=Traffic_Lights.exe#
name "traffic"
mov ax, all_red
out 4, ax
mov si, offset situation
next: mov ax, [si]
out 4, ax
mov cx, 4Ch
mov dx, 4B40h
mov ah, 86h
int 15h
add si, 2
cmp si, sit_end
jb next
mov si, offset situation
jmp next
situation dw 0000_0011_0000_1100b
s1 dw 0000_0011_0000_1100b
s2 dw 0000_0110_1001_1010b
s3 dw 0000_1000_0110_0001b
s4 dw 0000_0100_1101_0011b
sit_end = $
all_red equ 0000_0010_0100_1001b
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)如图所示:即可实现对交通灯计时延时和控制。
循环此步骤即可。
五.结论
在本次实验中,使用了IO接口实现了,对南北、东西方向交通的分别计时延迟、分别控制等功能,将实验跟理论相结合,加深了对知识的理解。
报告提交日期。
一、设计目的学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计思路1、通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,以模拟交通路灯的管理。
2、设有一个十字路口1、3路口为南北方向2、4为东西方向,初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口的方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后,重复上述过程。
三、实验原理在设计中采用的是软件定时实现的。
而灯的亮与灭以及闪烁是用8255的B口和C口控制的,工作方式0,B口和C口均为输出。
并行接口是以数据的字节的单位与I/O设备或控制对象之间传递信息。
CPU和接口之间的数据传送是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5单电源供电,能在以下三种方式下工作:方式0——基本输入/输出方式。
方式1——选通输入/输出方式。
方式2——双向选通工作方式。
由于实验中所用到的发光二级管是共阳极的,如图2-1所示,所以在为8255的B口和C口写数据时,对应的每一位有:0代表灯亮,1代表灯灭。
将8255A的RE和WR非信号端分别与8086的两个端口相对应连接起来,8255A的数据线和8086的数据端口相连接,RE和WR非信号都是8086发出的控制信号,当进行读数据时,从8255A传送到8086,如果为写信号时,由8086写向8255A。
交通灯微机原理实验报告交通灯微机原理实验报告一、引言交通灯是城市交通管理中不可或缺的一部分。
它们通过指示灯的变化来引导车辆和行人的通行,确保交通的有序进行。
在这个实验报告中,我们将探讨交通灯背后的微机原理,并介绍我们的实验过程和结果。
二、实验目的本次实验的目的是通过使用微机原理,设计和实现一个交通灯控制系统。
我们将使用微机芯片和相应的电路,以及适当的编程来模拟交通灯的工作原理。
通过这个实验,我们可以更好地理解交通灯的工作原理,并学习如何应用微机技术来实现交通管理。
三、实验设备和材料本次实验使用的设备和材料包括:1. 微机芯片:我们选择了一款功能强大的微机芯片,具有高性能和稳定性。
2. 电路板:用于连接微机芯片和其他电子元件。
3. LED灯:用于模拟交通灯的红、黄、绿灯。
4. 电阻、电容和其他电子元件:用于构建电路和实现功能。
四、实验步骤1. 设计电路:我们首先根据交通灯的工作原理,设计了相应的电路。
电路包括微机芯片、LED灯、电阻和电容等元件。
我们根据电路图,将这些元件连接在一起,确保电路的正常工作。
2. 编程:接下来,我们使用C语言编写程序,实现交通灯的控制逻辑。
我们将编程代码烧录到微机芯片中,并通过连接电路板和计算机,将程序加载到芯片中。
3. 调试和测试:完成编程后,我们进行了一系列的调试和测试。
我们通过观察LED灯的亮灭情况,来验证程序的正确性。
如果灯光按照预期的顺序变化,我们就可以确认程序的正确性。
4. 优化和改进:在测试过程中,我们发现了一些问题和改进的空间。
我们根据实际情况,对程序进行了优化和改进,以提高交通灯系统的性能和稳定性。
五、实验结果经过一系列的实验和测试,我们成功地实现了一个交通灯控制系统。
我们的交通灯系统能够按照预定的时间间隔和顺序,控制红、黄、绿灯的变化。
通过观察LED灯的亮灭情况,我们可以清晰地看到交通灯的状态变化,模拟真实的交通场景。
六、实验总结通过这个实验,我们深入了解了交通灯背后的微机原理。
2.4实验详细步骤首先接线,8255C口的0、1、2、5、6、7号管脚接LED显示电路L0、L1、L2、L5、L6、L7,D0~D7接JD1,RD*、WR*、A0、A1、RESET、CS*接IOR、IOW、A0、A1、RST、Y1,各模块接电。
然后运行DVCC软件,替换I/O基址,汇编、链接、运行,查看结果。
2.5实验结果LED显示电路的L0、L1、L2、L5、L6、L7按照十字路口交通灯的变化规律显示。
2.6实验过程遇到的问题与解决方案当出现红绿灯交换闪烁时,老师说体现不了交叉路口的灯的感觉(灯的排布的问题),后来我们把两个控制线叠加连接,使相同的灯闪烁。
江西理工大学《微机原理与接口技术》课实验报告实验二交通灯控制实验专业班级实验人学号实验日期同组人2.1 实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
2.2实验内容1.如图16-1,L8、L7、L6作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
2.L0对应东西路口绿灯,L1对应东西路口黄灯,L2对应东西路口红灯;L6对应南北路口绿灯,L7对应南北路口黄灯,L8 对应南北路口红灯。
D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710R D5W R36A09A18R ESET35C S6U18255D0D1D2D3D4D5D6D7/R D/W RA0A1R STPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7R14.7KVCCD0D1D2D3D4D5D6D7JD1IORIOWA0A1RST(288H)Y1L6L7L8L0L1L28255C S图2-12.3实验整体思路实验时,首先根据实验手册连线,待连好后检查无误时,打开电脑中的程序,修改其地址,然后运行程序。
序号山东理工大学计算机学院课程设计(微机原理及接口技术)班级姓名学号指导教师二○一二年一月九日课程设计任务书及成绩评定课题名称直流电机速度控制器的设计,I、题目的目的和要求:学习和掌握计算机中常用接口电路的应用和设计技术,熟悉和掌握微机系统的软硬件的设计方法和步骤,熟悉微机汇编程序编写和应用软硬件调试的基本流程,进一步加强理论知识和应用相结合的实践和锻炼,加深对专业知识的学习和理解,掌握8253,,8259等芯片的连线及使用方式。
使自己的设计水平和对所学的知识的应用能力以及分析问题和解决问题的能力得到全面提高。
一、利用按键控制直流电动机的转速。
按键定义如下:0 停止,1 1/10转速,2 2/10转速……9 最高速(D/A输出满量程),键号每加1,D/A 输出增加0.5V 。
二、II、设计进度及完成情况III、主要参考资料及文献IV、成绩评定:设计成绩:(教师填写)指导老师:(签字)年月日目录一、电机速度控制器的设计 (2)(一) (2)(二) (3)(三) (4)(四) (5)(五) (9)二、 (10)(一) (10)(二) (11)(三) (15)(四) (16)(五) (20)三、设计总结 (21)1一、直流电机速度控制器的设计(一)系统概述(二)系统分析与设计芯片8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。
8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0:基本输入输出方式1:选通输入输出方式2:双线传送2芯片8255功能及引脚图三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供。
三个端口中C口被分为两个部分,上半部分随A口称为A组,下半部分随B口称为B组.其中A口可工作与方式0、1和2,而B口只能工作在方式0和1。
D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7
10
RD 5WR 36A09A18RESET 35CS
6
8255
U36
D0D1D2D3D4D5D6D7WR
RD RST
A0
A1
PC5PC6PC7
PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678
VCC
DS42
A0A1
CS
CS1(0F000H)
510
R111510
R112
510R113510R114510R115510R116510R117510R118
.MODEL TINY
COM_ADD EQU 0F003H
PA_ADD EQU 0F000H
PB_ADD EQU 0F001H
PC_ADD EQU 0F002H
.STACK 100
.DATA
LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯
DB 10111101B ;东西黄灯亮,南北红灯
DB 11010111B ;东西红灯,南北绿灯
DB 11011111B ;东西红灯,南北绿灯闪烁
DB 11011011B ;东西红灯,南北黄灯亮
.CODE
START: MOV AX,@DATA
MOV DS,AX
NOP
MOV DX,COM_ADD
MOV AL,80H ;PA、PB、PC为基本输出模式
OUT DX,AL
MOV DX,PA_ADD ;灯全熄灭
MOV AL,0FFH
OUT DX,AL
LEA BX,LED_Data
START1: MOV AL,0
XLAT
OUT DX,AL ;东西绿灯,南北红灯
CALL DL5S
MOV CX,6
START2: MOV AL,1
XLAT
OUT DX,AL ;东西绿灯闪烁,南北红灯
CALL DL500ms
MOV AL,0
XLAT
OUT DX,AL
CALL DL500ms
LOOP START2
MOV AL,2 ;东西黄灯亮,南北红灯
XLAT
OUT DX,AL
CALL DL3S
MOV AL,3 ;东西红灯,南北绿灯
XLAT
OUT DX,AL
CALL DL5S
MOV CX,6
START3: MOV AL,4 ;东西红灯,南北绿灯闪烁XLAT
OUT DX,AL
CALL DL500ms
MOV AL,3
XLAT
OUT DX,AL
CALL DL500ms
LOOP START3
MOV AL,5 ;东西红灯,南北黄灯亮
XLAT
OUT DX,AL
CALL DL3S
JMP START1
DL500ms PROC NEAR
PUSH CX
MOV CX,60000
DL500ms1: LOOP DL500ms1
POP CX
RET
DL500ms ENDP
DL3S PROC NEAR
PUSH CX
MOV CX,6
DL3S1: CALL DL500ms
LOOP DL3S1
POP CX
RET
ENDP
DL5S PROC NEAR
PUSH CX
MOV CX,10
DL5S1: CALL DL500ms
LOOP DL5S1
POP CX
RET
ENDP
END START
七、实验扩展及思考
1、如何对8255的PC口进行位操作?
控制字最高位写0,中间三位无关取0,接着三位是编码了对应的C口哪几位,最低一位为0是复位,为1是置位。