導航:首頁 > 操作系統 > c51單片機模擬過馬路

c51單片機模擬過馬路

發布時間:2023-12-26 19:11:24

Ⅰ 模擬交通燈 單片機C51,要電路圖和程序

package guidemo;

import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

/**
* <p>Title: 圖形用戶界亂或面</p>
*
* <p>Description: 簡單的圖形界面編程</p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author vic
* @version 1.0
*/
public class ColorFrame extends Frame implements MouseListener {
Label L; //標簽
TextField T; //文本域
Button B1, B2; //按鈕
public ColorFrame() {
this.setLayout(null); //想要手動指定各組件的的位置
L = new Label("輸山侍入學號:"); //設定標簽L內容
L.setBounds(60, 50, 50, 25); //設定標簽L外觀
this.add(L); //將標簽L添加到窗口逗陪吵中
T = new TextField("請在這里輸入"); //設定文本域T的內容
T.setBounds(125, 50, 90, 25); //設定文本域T的外觀
this.add(T); //將文本域T添加到窗口中
B1 = new Button("變紅!"); //設定按鈕B1的內容
B1.setBounds(25, 90, 90, 25); //設定按鈕B1的外觀
B1.addMouseListener(this);//在B1上注冊滑鼠監聽器
this.add(B1); //將按鈕B1添加到窗口中
B2 = new Button("變綠!");
B2.setBounds(125, 90, 90, 25);
B2.addMouseListener(this);
this.add(B2);
WindowDestroyer Listener = new WindowDestroyer(); //創建關閉窗口監聽器
this.addWindowListener(Listener); //將監聽器添加到窗口中
this.setBackground(Color.yellow); //設定窗口背景顏色
this.setTitle("This is Frame!"); //設定窗口標題文字
this.setBounds(0, 0, 250, 220); //設定窗口位置和大小
this.setVisible(true); //顯示窗口
}

public void mouseClicked(MouseEvent e) {
if (e.getComponent() == B1) {//getComponent返回按鈕上面的字元串
this.setBackground(Color.red);
}
if (e.getComponent() == B2) {
this.setBackground(Color.green);
}
}

public void mouseExited(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

public void mousePressed(MouseEvent e) {}

public static void main(String[] args) {
new ColorFrame();
}
}

Ⅱ c51單片機c語言交通燈的程序

Proteus模擬原理圖:

程序如下:

#include <reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar data buf[4];

uchar data sec_dx=20;//東西數默認

uchar data sec_nb=30;//南北默認值

uchar data set_timedx=20;

uchar data set_timenb=30;

int n;

uchar data b;//定時器中斷次數

sbit k1=P1^6;//定義5組開關

sbit k2=P1^7;

sbit k3=P2^7;

sbit k4=P3^0;

sbit k5=P3^1;

sbit Yellow_nb=P2^5; //南北黃燈標志

sbit Yellow_dx=P2^2; //東西黃燈標志

sbit Green_nb=P2^4;

sbit Green_dx=P2^1;

sbit Buzz=P3^7;

bit Buzzer_Indicate;

bit time=0;//燈狀態循環標志

bit set=1;//調時方向切換鍵標志

uchar code table[11]={ //共陰極字型碼

0x3f, //--0

0x06, //--1

0x5b, //--2

0x4f, //--3

0x66, //--4

0x6d, //--5

0x7d, //--6

0x07, //--7

0x7f, //--8

0x6f, //--9

0x00 //--NULL

};

//函數的聲明部分

void delay(int ms);//延時子程序

void key();//按鍵掃描子程序

void key_to1();//鍵處理子程序

void key_to2();

void key_to3();

void display();//顯示子程序

void logo(); //開機LOGO

void Buzzer();

//主程序

void main()

{

TMOD=0X01;

TH0=0XD8;

TL0=0XF0;

EA=1;

ET0=1;

TR0=1;

EX0=1;

EX1=1;

logo();

P2=0Xc3;// 開始默認狀態,東西綠燈,南北黃燈

sec_nb=sec_dx+5;

while(1)

{

key(); //調用按鍵掃描程序

display(); //調用顯示程序

Buzzer();

}

}

//函數的定義部分

void key() //按鍵掃描子程序

{

if(k1!=1)

{

delay(10);

if(k1!=1)

{

while(k1!=1)

{

key_to1();

for(n=0;n<40;n++)

{ display();}

}

}

}

if(k2!=1)

{

delay(10);

if(k2!=1)

{

while(k2!=1)

{

key_to2();

for(n=0;n<40;n++)

{ display();}

}

}

}

if(k3!=1)

{

TR0=1; //啟動定時器

Buzzer_Indicate=0;

sec_nb=set_timenb; //從中斷回復,仍顯示設置過的數值

sec_dx=set_timedx;

if(time==0)

{ P2=0X99;sec_nb=sec_dx+5; }

else { P2=0xC3;sec_dx=sec_nb+5; }

}

if(k4!=1)

{

delay(5);

if(k4!=1)

{

while(k4!=1);

set=!set;

}

}

if(k5!=1)

{

delay(5);

if(k5!=1)

{

while(k5!=1)

key_to3();

}

}

}

void display() //顯示子程序

{

buf[1]=sec_dx/10; //第1位 東西秒十位

buf[2]=sec_dx%10; //第2位 東西秒個位

buf[3]=sec_nb/10; //第3位 南北秒十位

buf[0]=sec_nb%10; //第4位 南北秒個位

P1=0xff; // 初始燈為滅的

P0=0x00;

P1=0xfe; //片選LCD1

P0=table[buf[1]];

delay(1);

P1=0xff;

P0=0x00;

P1=0xfd; //片選LCD2

P0=table[buf[2]];

delay(1);

P1=0xff;

P0=0x00;

P1=0Xfb; //片選LCD3

P0=table[buf[3]];

delay(1);

P1=0xff;

P0=0x00;

P1=0Xf7;

P0=table[buf[0]]; //片選LCD4

delay(1);

}

void time0(void) interrupt 1 using 1 //定時中斷子程序

{

b++;

if(b==19) // 定時器中斷次數

{ b=0;

sec_dx--;

sec_nb--;

if(sec_nb<=5&&time==0) //東西黃燈閃

{ Green_dx=0;Yellow_dx=!Yellow_dx;}

if(sec_dx<=5&&time==1) //南北黃燈閃

{ Green_nb=0;Yellow_nb=!Yellow_nb;}

if(sec_dx==0&&sec_nb==5)

sec_dx=5;

if(sec_nb==0&&sec_dx==5)

sec_nb=5;

if(time==0&&sec_nb==0)

{ P2=0x99;time=!time;sec_nb=set_timenb;sec_dx=set_timenb+5;}

if(time==1&&sec_dx==0)

{P2=0Xc3;time=!time;sec_dx=set_timedx;sec_nb=set_timedx+5;}

}

}

void key_to1() //鍵盤處理子程序之+

{

TR0=0; //關定時器

if(set==0)

set_timenb++; //南北加1S

else

set_timedx++; //東西加1S

if(set_timenb==100)

set_timenb=1;

if( set_timedx==100)

set_timedx=1; //加到100置1

sec_nb=set_timenb ; //設置的數值賦給東西南北

sec_dx=set_timedx;

}

void key_to2() //鍵盤處理子程序之-

{

TR0=0; //關定時器

if(set==0)

set_timenb--; //南北減1S

else

set_timedx--; //東西減1S

if(set_timenb==0)

set_timenb=99;

if( set_timedx==0 )

set_timedx=99; //減到1重置99

sec_nb=set_timenb ; //設置的數值賦給東西南北

sec_dx=set_timedx;

}

void key_to3() //鍵盤處理之緊急車通行

{

TR0=0;

P2=0Xc9;

sec_dx=00;

sec_nb=00;

Buzzer_Indicate=1;

}

void int0(void) interrupt 0 using 1 //只允許東西通行

{

TR0=0;

P2=0Xc3;

Buzzer_Indicate=0;

sec_dx=00;

sec_nb=00;

}

void int1(void) interrupt 2 using 1 //只允許南北通行

{

TR0=0;

P2=0X99;

Buzzer_Indicate=0;

sec_nb=00;

sec_dx=00;

}

void logo()//開機的Logo "- - - -"

{ for(n=0;n<50;n++)

{

P0=0x40;

P1=0xfe;

delay(1);

P1=0xfd;

delay(1);

P1=0Xfb;

delay(1);

P1=0Xf7;

delay(1);

P1 = 0xff;

}

}

void Buzzer()

{

if(Buzzer_Indicate==1)

Buzz=!Buzz;

else Buzz=0;

}

void delay(int ms) //延時子程序

{

uint j,k;

for(j=0;j<ms;j++)

for(k=0;k<124;k++);

}


Ⅲ C51單片機程序設計題,要求用C語言做,模擬交通燈控制單片機電路,答案要詳細具體。

晚上隨手寫,也未調試,權當看看

程序有不嚴謹地方還得調試修改

#include<REGX51.H>

#defineSTATUS_1S 1

#defineSTATUS_2S 2

#defineSTATUS_3S 3

#defineSTATUS_4S 4

#defineSTATUS_5S 5

#defineSTATUS_15S 15

#defineSTATUS_28S 28

#defineSTATUS_29S 29

#defineSTATUS_30S 30

unsignedcharflag,status,status_temp=1,status_temp_;

sbitK1 = P0^0;

sbitK2 = P0^1;

sbitRLED = P0^2;

sbitYLED = P0^3;

sbitGLED = P0^4;

voidInit(void)

{

ET0=1;

TR0=1;

RLED=0; //亮

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

caseSTATUS_1S: //1S

{

RLED=1; //滅,閃一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮,閃一次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; //滅

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

voidInit_Timer0(void)

{

TMOD=0x01;

// ET0=1;

// TR0=1;

EA=1;

TH0=0X3C;

TL0=0XB0; //未計算,偷樓上的

}

voidM_Start(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //紅亮

while(status_temp)

{

switch(status)

{

caseSTATUS_1S:

{

if(status_temp_==1)

{

YLED=0;

}

} break;

caseSTATUS_2S:

{

if(status_temp_==1)

{

YLED=1;

}

} break;

caseSTATUS_3S:

{

if(status_temp_==1)

{

YLED=0;

status_temp_=0;

}

} break;

caseSTATUS_15S: //15S滅,綠亮

{

RLED=1;

GLED=0;

} break;

caseSTATUS_28S:

{

GLED=1;

} break;

caseSTATUS_29S:

{

GLED=0;

} break;

caseSTATUS_30S:

{

GLED=1;

status=0;

status_temp_=1;

} break;

}

}

ET0=0;

TR0=0;

status=0;

status_temp=1;

YLED=1;

}

voidM_End(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //亮1次

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

caseSTATUS_1S: //1S

{

RLED=1; //滅一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮二次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; ////滅二次

YLED=1;

GLED=1;

} break;

caseSTATUS_4S: //1S

{

RLED=0; ////亮三次

YLED=0;

GLED=0;

} break;

caseSTATUS_5S: //1S

{

RLED=1; ////滅三次

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

main()

{

Init();//單片機初始化

Init_Timer0();//定時器初始化

while(1)

{

if(K1==0)

M_Start();//模擬開始

if(K2==0)

M_End();//模擬結束

}

}

voidinterrupt_time0()interrupt1 //核對頭文件,一致就好

{

TH0=0X3C;

TL0=0XB0;

flag++;

if(flag==20)

{

status++;

flag=0;

}

}

Ⅳ c51單片機控制交通燈要求用匯編語言

// 51單片機控制交通燈要求用匯編語言,模擬實例,可以參考一下

SNF EQU 00H ; 南北通行標志位

EWF EQU 01H ; 東西通行標志位

URF EQU 02H ; 緊急事件標志位

ORG 0000H

LJMP MAIN ; 上電轉主程序

ORG 000BH ; 定時中斷入口

LJMP DSZD

ORG 0003H ; 緊急中斷入口

LJMP URZD

ORG 0030H

MAIN: LCALL INIT ; 調用初始化子程序

LOOP: LCALL DIS ; 循環執行顯示子程序

AJMP LOOP

; *** *** *** 初始化程序

INIT: SETB SNF

SETB EWF

SETB URF

MOV R2,#20 ; 定時器中斷20次為1s

MOV TMOD,#01H ; 初始化定時器

MOV TL0,#0B0H

MOV TH0,#3CH

SETB EA ; 開定時中斷與緊急中斷

SETB ET0

SETB TR0

SETB EX0

SETB IT0 ; 設置中斷程式控制方式

MOV DPTR,#TAB ; 數值首地址放入DPTR中

MOV 40H,#40 ; 東南西北通行時間設置

MOV 41H,#40

MOV 30H,#40 ; 通行時間初始化

MOV 31H,#60

MOV P0,#4CH ; 初始化時南北通行並把交通燈狀態分別放在32H和33H中

MOV 32H,#4CH

MOV P2,#15H

MOV 33H,#15H

RET

; *** *** *** 顯示子程序

DIS: MOV P3,#0DFH ; 選中南北方向的十位數碼管

MOV A,30H ; 把顯示數據送人數碼管顯示

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV P1,A ;

LCALL D1MS

MOV P3,#0EFH ; 選中南北方向的個位數碼管

MOV A,B ; 送入數碼管顯示

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

MOV P3,#7FH ; 選中第東西方向的十位數碼管

MOV A,31H ; 送入數碼管顯示

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

MOV P3,#0BFH ; 選中第東西方向的個位數碼管

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

SETB P3.0

SETB P3.1

JNB P3.0,DIS_S ; 查詢是否第一個按鍵按下

JNB P3.1,DIS_E ; 查詢是否第二個按鍵按下

AJMP DIS_R ; 沒有鍵按下則返回

DIS_S:LCALL D5MS ; 按鍵去抖

JNB P3.0,DIS_SN

AJMP DIS_R

DIS_SN:MOV 40H,#50 ; 對通行時間從新分配,南北通行時間加長

MOV 41H,#30

AJMP DIS_R

DIS_E:LCALL D5MS ; 按鍵去抖

JNB P3.1,DIS_EW

AJMP DIS_R

DIS_EW:MOV 40H,#30 ; 東西通行時間加長

MOV 41H,#50

DIS_R:RET

; *** *** *** 定時中斷處理程序

DS_C: LJMP DS_R ; 接力跳轉

DSZD: PUSH ACC ; 保護現場

PUSH PSW

CLR TR0 ; 關定時器及中斷標志位並重新賦值

CLR TF0

MOV TL0,#0B0H

MOV TH0,#3CH

DJNZ R2,DS_C ; 判斷1m時間是否到達

MOV R2,#20 ; 到達重新賦值

DEC 30H ; 南北方向通行時間減一

MOV A,30H ; 把減一後的時間送入顯示存儲單元

; *** *** *** 南北通行到達最後4秒時黃燈閃爍

DS_10:CJNE A,#4,DS_11 ; 如果通行時間剩餘4秒

JNB SNF,DS_11 ; 判斷是否是南北通行

MOV P0,#8AH

MOV 32H, #8AH ; 把交通燈狀態存入存儲單元(後面類似)

DS_11:CJNE A,#3,DS_12 ; 不是剩餘3秒,返回

JNB SNF,DS_12 ; 不是南北通行時間,返回

MOV P0,#88H

MOV 32H, #88H

DS_12:CJNE A,#2,DS_13

JNB SNF,DS_13

MOV P0,#8AH

MOV 32H, #8AH

DS_13:CJNE A,#1,DS_14

JNB SNF,DS_14

MOV P0,#88H

MOV 32H, #88H

; *** *** ***

DS_14:JNZ DS_NE ; 通行時間沒有結束轉向改變東西方向的數碼管

CPL SNF ; 如果通行時間結束則對標志位取反

JNB SNF,DS_1 ; 判斷是否南北通行

MOV 30H,40H ; 是,點亮相應的交通燈

MOV P0,#4CH

MOV 32H,#4CH ; 存儲交通燈狀態

MOV P2,#15H

MOV 33H, #15H ; 存儲交通燈狀態

DS_NE:DEC 31H ; 東西方向通行時間減一

MOV A,31H ; 把通行剩餘時間送入顯示存儲單元

; *** *** *** 東西方向通行時間剩餘4秒鍾黃燈閃爍(程序注釋與南北方向類似 略)

DS_20:CJNE A,#4,DS_21

JB EWF,DS_21

MOV P0,#51H

MOV 32H, #51H

DS_21:CJNE A,#3,DS_22

JB EWF,DS_22

MOV P0,#41H

MOV 32H, #41H

DS_22:CJNE A,#2,DS_23

JB EWF,DS_23

MOV P0,#51H

MOV 32H, #51H

DS_23:CJNE A,#1,DS_24

JB EWF,DS_24

MOV P0,#41H

MOV 32H, #41H

; *** *** ***

DS_24:JNZ DS_R ; 東西方向時間沒有結束,返回

CPL EWF ; 對通行狀態取反

JNB EWF,DS_2 ; 東西方向通行時間到來,跳轉

MOV 31H,#80 ; 東西方向通行結束,重新顯示時間

MOV P0,#89H ; 點亮相應的交通燈

MOV 32H, #89H

MOV P2,#29H

MOV 33H, #29H

AJMP DS_R

DS_1: MOV 30H,#80 ; 南北通行時間結束,重新對顯示存儲單元賦值

MOV P0,#89H ; 執行轉彎狀態1

MOV 32H, #89H

MOV P2,#26H

MOV 33H, #26H

AJMP DS_NE

DS_2: MOV 31H,41H ; 東西方向開始通行,賦值予顯示存儲單元

MOV P0,#61H ; 點亮相應的交通燈

MOV 32H, #61H

MOV P2,#15H

MOV 33H, #15H

DS_R: SETB TR0

POP PSW ; 恢復現場

POP ACC

RETI

; *** *** *** 緊急中斷處理程序

URZD: PUSH ACC ; 保護現場

PUSH PSW

CLR IE0 ; 清除中斷標志位

CLR TR0 ; 關定時器

CPL URF ; 緊急事件標志位

JB URF,UR_CON ; 緊急結束;跳轉

MOV P0,#49H ; 各路口燈全顯示紅燈亮

MOV P2,#15H

AJMP UR_R

UR_CON:SETB TR0 ; 恢復正常交通

MOV A,32H

MOV P0,A

MOV A,33H

MOV P2,A

UR_R: POP PSW ; 恢復現場

POP ACC

RETI

; *** *** *** 查表指令0,1,2,3,4,5,6,7,8,9

TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH

DB 7DH, 07H, 7FH, 6FH

; *** *** *** 延時5ms與1ms

D5MS: MOV R7,#5

D1MS: MOV R7,#10

MOV R6,#50

L1: DJNZ R6,$

DJNZ R7,L1

RET

Ⅳ 基於51單片機控制交通燈的電路圖與C語言程序

思路:

紅燈停,綠燈行,黃燈閃爍提示行人紅綠燈即將切換。四個方向各有一個紅、黃、綠顯示和兩個數碼管。

東西道為人行道(20秒),南北道為車行道(60秒),黃燈延時最後三秒時,閃爍並切換。

三、硬體電路設計

此電中路設計採用AT89C51單片機,74LS47(數碼管驅動)74LS373(數碼管驅動輸出鎖存),8個數碼管顯示其延時值,四個紅、黃、綠指示燈。硬體設計關鍵在於,延時顯示時,要考慮到當個位數字顯示時,要確保十位數字顯示輸出的不變。因此,可加輸出鎖存器。在延時最後三秒時,要讓黃燈進行閃爍,並同時顯示數字(這一步在軟體設計上很關鍵)。

四、軟體程序(C語言)

以下是整個設計的軟體程序,直接可以編譯成*。Hex代碼。通過以上電路,下載到單片機,可直接運行。

//*****************************//

//程序名:十字路口交通燈控制

//編寫人:黃庭劍

//初寫時間:2009年1月2日

//程序功能:南北為車行道,延時60秒;東西方向為人行道,延時20秒,且在最後3秒黃燈顯示2秒鍾再實現切換.

//CPU說明:AT89C51型單片機;24MHZ晶體振盪器

//完成時間:2009年1月6日

//*****************************//

#include<stdio.h>

#include<reg51.h>

#include<intrins.h>

sfrp0=0x80;

sfrp1=0x90;

sfrp2=0xA0;

sfrp3=0xb0;//這部分內容其實在「#include<reg51.h>」里已經有,但裡面定義的必須區分大小寫,在這里,因為我程序採用的是小寫,reg51.h里對各個埠與寄存器的定義都是大寫,所以在編譯連接時,會報錯,所以,在本設計程序里,我只用到了埠,在這里也就只定義了四個,而沒有去改reg51.h裡面的內容。其實兩者是一樣的。

sbitsw=p0^0;

sbitOE=P0^6;

sbitLE=P0^7;//74LS373鎖存器控制端定義

chardisplay[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99};//p1口的數碼管時間顯示調用,利用74L74BCD碼,8位驅動輸出;

//函數聲明begin

voiddelay1(intcount);

voiddelay_long(intnumber1,intnumber2);

voidpeople_car_drive();

//函數聲明end

//***********************//延時子程序

voiddelay1(intcount)

{inti;

for(i=count;i>0;i--)

{;}

}

voiddelay_long(intnumber1,intnumber2)

{

inta,b;

for(a=number1;a>0;a--)

{

for(b=number2;b>0;b--)

{_nop_();}

}

}

//**********************//延時子程序

voidpeople_car_drive()

{

intp_1=2,i,j=9,p_2=6;//****************//行人通行時,延時20秒

p2=0x09;//南北紅燈亮

p3=0x24;//東西綠燈亮

while(p_1-->0)

{LE=1;

OE=0;

if(p_1==0){OE=1;}//當十位數減到0時,只顯示個位數

p1=display[p_1];

delay1(1000);

LE=0;

j=9;

for(i=10;i>0;i--)

{

if(p_1==0&&j==3)break;//減到3時退出循環,讓其黃燈閃爍顯示

p1=display[j--];

delay_long(16000,2);

if(sw==1)return;

}

}

//*******************************************************************************//

p2=0x12;//南北黃燈閃爍三秒,以提醒行人注意

p3=0x12;

p1=display[3];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[2];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[1];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

//*****************以下是車輛通行時延時60秒//

p2=0x24;//南北綠燈亮

p3=0x09;//東西紅燈亮

while(p_2-->0)

{LE=1;

OE=0;

if(p_2==0){OE=1;}//當十位數減到0時,只顯示個位數

p1=display[p_2];

delay1(1000);

LE=0;

j=9;

for(i=10;i>0;i--)

{

if(p_2==0&&j==3)break;//減到2時退出循環

p1=display[j--];

delay_long(16000,2);

if(sw==1)return;

}

}

p2=0x12;//南北黃燈閃爍三秒,以提醒行人注意

p3=0x12;

p1=display[3];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[2];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[1];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);//南北黃燈閃爍三秒完畢

}

voidmain()//主函數入口處

{

p0=0x01;

p1=0x00;

p2=0x00;

p3=0x00;//初始化各埠

{while(1)

{

if(sw==0)

{people_car_drive();}

else

{

p2=0x00;

p3=0x00;//關閉所有交通燈

}

}

}

}

詳情訪問:http://hi..com/hjiannew/

閱讀全文

與c51單片機模擬過馬路相關的資料

熱點內容
程序員三高 瀏覽:178
pythonfiddle 瀏覽:215
韓信分油總共有幾種演算法 瀏覽:941
程序員思維方案 瀏覽:970
編譯環境要裝c盤嗎 瀏覽:648
單片機生成pwm 瀏覽:206
線上租車有什麼app 瀏覽:908
php程序修改 瀏覽:684
下列能查找文件或文件夾的操作是 瀏覽:314
遙感科學與技術演算法待遇 瀏覽:136
cad標注半徑命令 瀏覽:367
打卡領購app邀請碼怎麼填 瀏覽:336
編程訪問許可權沖突 瀏覽:152
桌面運維如何轉伺服器運維 瀏覽:627
tomcat如何設置伺服器 瀏覽:679
php編譯支持mysql 瀏覽:817
mir4手游安卓版怎麼玩國際服 瀏覽:23
伺服器程序怎麼刪除 瀏覽:657
阿里年薪70萬程序員名單照片 瀏覽:575
android定製輸入法 瀏覽:758