文档详情

【2017年整理】交通灯实验报告.doc

发布:2017-02-02约2.04万字共9页下载文档
文本预览下载声明
实验4 交通灯实验 实验目的 1.按键、数码管、发光二极管综合应用编程技术 2.定时中断技术 3.按键中断技术 二、实验实现的功能 1.对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。 2.紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。再按该键,恢复正常显示。 三、系统硬件设计 四、系统软件设计 #includestc10.h #define uchar unsigned char #define uint unsigned int sbit L1=P0^5;sbit L2=P0^6;sbit L3=P0^7;sbit H1=P3^6;sbit H2=P3^7; sbit D9=P3^2;sbit D10=P3^3;sbit D11=P3^4;sbit D12=P3^5; sbit D1=P2^0;sbit D2=P2^1;sbit D3=P2^2;sbit D4=P2^3; sbit D5=P2^4;sbit D6=P2^5;sbit D7=P2^6;sbit D8=P2^7; uchar disbuffer[]={0,0,0,0}; uchar tab2[3]; uchar tab3[3]; void display(); uchar b,c,d,e,g,j,k,k1,k2; char m,f; void delay(uint i) {uint j; for(j=0;ji;j++) {} } void Scan_key() { H1=0; H2=1; if(L1==0) { while(!L1) {display(); TR1=TR0=0; } c=!c; if(c==0) {P2=0xff; P3=0xfd; TR0=!TR0; TR1=!TR1; } } if(L2==0) {TR0=1; TR1=1; m=tab2[d]; f=tab3[e]; } H1=1; H2=0; if(L1==0) {delay(60000); if(L1==0) {k1++; tab2[k]=k1; m=tab2[k]; tab3[k2]=k1; f=tab3[k2]; display(); } } if(L2==0) {delay(60000); k1--; tab2[k]=k1; m=tab2[k]; tab3[k2]=k1; f=tab3[k2]; display(); } if(L3==0) {delay(60000); k++; k1=0; if(k==3) k=0; k2++; if(k2==3) k2=0; } } void display(void) { uchar b,p,temp; uchar ccode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar ch[]={0xfe,0xfd,0xfb,0xf7}; disbuffer[0]=m/10; disbuffer[1]=m%10; disbuffer[2]=f/10; disbuffer[3]=f%10; for (b=0;b4;b++) {temp=ch[b]; P0=temp; p=disbuffer[b]; temp=ccode[p]; P1=temp; delay(1000); } } void deng() {if(d==0) //红灯亮 { D5=D11=1; D6=D12=0; } if(d==1) //绿灯亮 { D6=D12=1; D4=D10=0; } if(d==2) //黄灯亮 { D4=D10=1; D5=D11=0; } if(e==0) //绿灯亮 { D3=D9=1; D1=D7=0; } if(e==1) //黄灯亮 { D1=D7=1; D2=D8=0; } if(e==2) //红灯亮 { D2=D8=1; D3=D9=0; } } void jinji() {while(c==1) { d=e=g=b=0; m=tab2[0]; f=tab2[1]; P2=0xdb; P3=0x98; Scan_key(); } } v
显示全部
相似文档