资源描述:
《红绿灯程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、交通灯硬件原理图及说明一、实验目的1、掌握8255与显示器的接口方法和编程方法。2、掌握数码管的工作原理及编码。3、掌握交通灯工作原理、及电路其控制程序的设计方法。二、实验内容与要求实验电路如图所示,交通灯套件是通过接口平台板中二十六芯插座引出来的并口实验。PA0-2控制(G1、Y1、R1),PA3-5控制(G2、Y2、R2),PC0-2控制(G3、Y3、R3),PC5-7控制(G4、Y4、R4),所有的并口控制信号都先通过74LS04引出。12个灯的另一端接A472J的排阻再接到地。PB口接数码管的8个控制引脚。PC3、PC4分别接两个数码管片选引脚
2、(低电平有效)。电路分析如下:PA0-5是用来控制北面和西面的交通灯(分别为红,黄,绿),PC0-2,PC5-7是用来控制南面和东面的交通灯(分别为红,黄,绿).PB口是来控制数码管.了解了原理图就可以很容易的在程序来编写,使交通灯可以正常运行.原理图如下:数码管管脚图共阴极数码管编码表数字dpgfedcba位选高电平有效(H)0001111113F100000110062010110115b3010011114F401100110665011011016D6011111017D700000111078011111117F9011011116F实验要求
3、实现功能如下: 实现南北、东西交通车辆直行红绿灯控制。南北两面亮起绿灯的时候,东西两面就会亮起红灯.并而这时中间的数码会以50为倒计时,当倒计时为5时,南北两的的绿灯熄灭,黄灯亮起.东西两面的红灯不变.直到倒计时为0时.东西两面亮绿灯,南北两面亮红灯.如此死循环.模拟生活中的交通灯.参考程序(C语言):#include#include#includeintEast_west();intSouth_north();voidmain(){printf("************************
4、**********************");printf("*Advertthetrafficlight--Becarefull!*");printf("**********************************************");outportb(0x303,0x80);do{outportb(0x300,0x24);outportb(0x302,0x21);East_west();outportb(0x300,0x09);outportb(0x302,0x84);South_north();}while
5、(1);}intEast_west(){intset[2]={0x29,0x31};intxu[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};inta,b,t,buf1,num;for(num=50;num>0;num--){a=num%10;b=num/10;buf1=xu[a];if(num>=15){for(t=0;t<2;t++){outportb(0x302,set[t]);outportb(0x301,buf1);if(t==1)delay(300);elsedelay(20
6、);buf1=xu[b];}}else{outportb(0x300,0x24);outportb(0x302,0x42);intset[4]={0x4a,0x08,0x52,0x10};for(t=0;t<4;t++){outportb(0x302,set[t]);outportb(0x301,buf1);if(t==3)delay(300);elsedelay(20);buf1=xu[b];}}}}intSouth_north(){intset[2]={0x8c,0x94};intxu[10]={0x3f,0x06,0x5b,0x4f,0x66,0
7、x6d,0x7d,0x07,0x7f,0x6f};inta,b,t,buf1,num;for(num=50;num>0;num--){a=num%10;b=num/10;buf1=xu[a];if(num>=15){for(t=0;t<2;t++){outportb(0x302,set[t]);outportb(0x301,buf1);if(t==1)delay(300);elsedelay(20);buf1=xu[b];}}else{outportb(0x300,0x12);delay(30);outportb(0x302,0x84);intset[
8、2]={0x8c,0x94};for(t=0;t<2;t++){outportb(0x302,