接口实验报告(2)

2019-08-30 21:46

BVCCD98MRCLKQ2Q3Q4Q5Q6Q7610111213D1DE1DF1DG1DH1DBVCCD98MRCLKQ2Q3Q4Q5Q6Q7610111213D2DE2DF2DG2DH2DBVCCD98MRCLKQ2Q3Q4Q5Q6Q7610111213D3DE3DF3DG3DH3DBVCCD98MRCLKQ2Q3Q4Q5Q6Q7610111213D4DE4DF4DG4DH4D74LS164CLK74LS164

74LS16474LS164 JD4D12345678P2.0-P2.7U8DP2.2DP2.3DP2.4DP2.5DP2.6DP2.7DP2.7DP2.6DP2.5DP2.4DP2.3DP2.2DVCCD976543217B6B5B4B3B2B1BCOM7C6C5C4C3C2C1CGND101112131415168W3N1N2N3北W1VCCDE1W2E2东ULN2003西E3

#include #include

# define uchar unsigned char uchar data R2,R3,R4;

sbit LED_G2=P2^2;//南北绿灯 sbit LED_Y2=P2^3;//南北黄灯 sbit LED_R2=P2^4;//南北红灯

sbit LED_G1=P2^5;//东西绿灯 sbit LED_Y1=P2^6;//东西黄灯 sbit LED_R1=P2^7;//东西红灯 void delay(int count) {

unsigned int i; for(i=0;i

//状态1 void state1() {

LED_G1=1;//东西绿灯亮 LED_Y1=0; LED_R1=0; LED_G2=0; LED_Y2=0;

LED_R2=1; //南北红灯亮 }

//状态2 void state2()

; S1S2S3南

{ LED_Y1=0; LED_R1=0; LED_G2=0; LED_Y2=0;

LED_R2=1 ;//南北红灯亮 }

//状态3 void state3() {

LED_G1=0; LED_R1=0; LED_G2=0; LED_Y2=0;

LED_R2=1 ;//南北红灯亮 LED_Y1=1 ;//东西黄灯亮 }

//状态4 void state4() {

LED_G1=0; LED_Y1=0;

LED_R1=1 ;//东西红灯亮 LED_G2=1 ;//南北绿灯亮 LED_Y2=0; LED_R2=0; }

//状态5 void state5() {

LED_G1=0; LED_Y1=0;

LED_R1=1 ;//东西红灯亮 LED_Y2=0; LED_R2=0; }

//状态6 void state6() {

LED_G1=0; LED_Y1=0;

LED_R1=1;//东西红灯亮 LED_G2=0;

LED_R2=0;

LED_Y2=1;//南北黄灯亮 }

void main() {

P2=0x00;//关闭不相关的LED P0=0xff; P1=0xff;

TMOD=0x01 ;//置T0工作方式1 TH0=0x3c ;//置T0定时初值50mS TL0=0xb0 ;

TR0=1; //启动T0 EA=0;

LOOP: R2=20 ;//置1S计数初值 50mS*20=1S R3=20 ;//红灯20S

state1() ;//调用状态1 WAIT1:while(!TF0); TF0=0; TH0=0x3c; TL0=0xb0;

TR0=1 ;//启动T0 R2--; if (R2>0) goto WAIT1 ;//判1S到否?未到继续状态1 R2=20 ;//置50mS计数初值 R3--;

if (R3>0) goto WAIT1 ;//状态1维持20S

//*************************************************** R2=5 ;//置50mS计数初值 5*4=20 R3=3 ;//绿灯闪3S

R4=4 ;//闪烁间隔200mS WAIT2: state2() ;//调用状态2

if(!TF0) goto WAIT2 ;//查询50mS到否 TF0=0;

TH0=0x3c ;//恢复T0定时初值50mS TL0=0xb0; R4--;

if(R4>0) goto WAIT2 ;//判200mS到否?未到继续状态2 LED_G1=~LED_G1 ;//东西绿灯闪 R4=4 ;//闪烁间隔200mS R2-- ;

if(R2>0) goto WAIT2 ;//判1S到否?未到继续状态2 R2=5 ;//置50mS计数初值 R3--;

if(R3>0) goto WAIT2 ;//状态2维持3S

//*************************************************** R2=20 ;//置50mS计数初值 R3=2 ;//黄灯2S

WAIT3: state3() ;//调用状态3

if(!TF0) goto WAIT3 ;//查询30mS到否 TF0=0;

TH0=0x3c ;//恢复T0定时初值50mS TL0=0xb0; R2--;

if(R2>0) goto WAIT3 ;//判1S到否?未到继续状态3 R2=20 ;//置50mS计数初值 R3--;

if(R3>0) goto WAIT3 ;//状态3维持2S

//;*************************************************** R2=20 ;//置50mS计数初值 R3=20 ;//黄灯2S WAIT4: state4() ;//调用状态4

if(!TF0) goto WAIT4 ;//查询30mS到否 TF0=0;

TH0=0x3c ;//恢复T0定时初值50mS TL0=0xb0; R2--;

if(R2>0) goto WAIT4 ;//判1S到否?未到继续状态3 R2=20 ;//置50mS计数初值 R3--;

if(R3>0) goto WAIT4 ;//状态4维持20S /////////////////////////////////////

R2=5 ;//置50mS计数初值 5*4=20 R4=4 ;//闪烁间隔200mS R3=3 ;//绿灯闪3S WAIT5: state5() ;//调用状态35

if(!TF0) goto WAIT5 ;//查询50mS到否 TF0=0;

TH0=0x3c ;//恢复T0定时初值100mS TL0=0xb0; R4--;

if(R4>0) goto WAIT5;//判200mS到否?未到继续状态5 LED_G2=~LED_G2 ;//南北绿灯闪

R4=4 ;//闪烁200mS R2--;

if(R2>0) goto WAIT5;

R2=5 ;//置100mS计数初值 R3--;

if(R3>0) goto WAIT5;//状态5维持3S

//;*************************************************** R2=20 ;//置50mS计数初值 R3=2 ;//黄灯2S WAIT6: state6() ;//调用状态6

if(!TF0) goto WAIT6 ;//查询100mS到否 TF0=0;

TH0=0x3c ;//恢复T0定时初值100mS TL0=0xb0; R2--;

if(R2>0) goto WAIT6 ;//判1S到否?未到继续状态6 R2=20 ;//置100mS计数初值 R3--;

if(R3>0) goto WAIT6;//状态6维持2 goto LOOP ;//大循环 }

五实验心得体会

通过实验及仿真,基本熟悉了解了ULN2003芯片工作原理,通过软件的仿真,了解了交通灯的运行原理,同时,对于51单片机的应用有了进一步的认识。


接口实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018届高考语文语言连贯补写句子专练(高考真题及名校模拟题汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: