當前位置:首頁 » 編程語言 » 簡單交通標志識別c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

簡單交通標志識別c語言

發布時間: 2022-12-27 16:59:52

A. 如何用c語言編程在單片機上做交通信號燈

硬體電路設計

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

(1)電路連接圖:

三、軟體程序(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;//關閉所有交通燈
}
}

}
}

B. 道路交通標志標牌如何識別

識別方法如下:

我國交通主標志分為警告標志、禁令標志、指示標志、指路標志、旅遊區標志和道路施工安全標志六種。禁停標志是屬於禁令標志的一種。

交通禁停標志 有一個紅色圓圈裡面是藍底紅叉的是全線禁停,就是說明臨時停車也不行。一個紅色圓圈裡面只是藍底或者只有一個紅色斜線的是允許臨時停放但禁止長時間停放標志。 當馬路邊緣有黃色的實線油漆,它表示禁止停放車輛。如果是一段黃色一段黑色的虛線,表示可以臨時停車。

注意這個也是不能長時間停放車輛的,如果被交警發現一直停著不走,可能也會被處罰。 當在路面上看到有黃色的交叉的網格狀區域時,也是不能停車的,一般出現在交叉路口,人流量較大的路口。

另一種是白色斜桿區域,也是不能停車的,一般會在大型多車道的道路上看到。 此外在地上標明或有指示牌指明「消防通道」或「緊急通道」的路段也是不能停車的。



交通標牌的類型和區分方法

許多車友在高速路或者生活中都會接觸到交通標志牌,馬路上如果你能夠分清每個交通標志牌類型,能夠為自己節省許多時間,所以認清道路上的標志牌也比較重要。今天帶大家了解一下交通標牌的類型和區分方法,大家只需要從下面幾個方面區分即可。

一、道路交通標志牌字母區分:

在道路上常常會見到比如G、S的標示,但你卻不清楚這種代表什麼意思,只了解我也跟隨導行走,我覺得在我國城市的路面互聯網分成道路,省道和國道路面。

高級的路面,速率和實時路況那就是徹底有別於城區的路面,歸屬於徹底封閉式的,在標示中通常和國道標志牌相同全是用G打頭做為標志,比如G3。

而本省英文字母用「S」打頭,國家和本省均為乳白色字體樣式,翠綠色背景色,國家上邊有鮮紅色橫條,本省上邊為淡黃色飾條。必須留意的是,英文字母「G」和「S」打頭的均為全封閉式路面,僅僅「S」打頭的標志意味著該道路歸屬於某某某省地區,並無其他含意。

二、交通標志牌類型:

行車道及速度限制信息內容標示,這一應當就無需再多了,大部分過的都了解,假如連這一都搞不懂,那估算都是白瞎了。在每條道路上都是有高速限速標志牌,例如速度限制100km/h、120km/h,每一行車道的速度限制信息內容全是不同的,如果超速行駛,那麼難題就來啦。

到達站信息內容標志牌,這一也很普遍,在方式不一樣大城市和地域的那時候,都是有每過幾十米開展提示的標明,這就能夠提早做出整體規劃。

服務地方信息內容標志牌,服務地方的交通路牌標志為大寫的英文英文字母P表達,並相互配合著加油槍、刀叉及其扳子圖樣。

服務地方一般有餐館,小型超市,洗手間,加氣站,汽修廠等可出示交通出行工作人員將會必須的服務項目,通常在20-30千米就會有個服務地方,較為偏僻的地域服務地方的間距將會會較長。

路面高速收費站標志牌,說到服務地方,那還要講一講高速收費站,這都是1個很顯著的標示,上邊寫著高速收費站,正下方標著ETC及其人工服務收費標准圖型標示,這時就應當減慢時速提前准備進入地鐵站。

三、標志牌分類:

1、警示標志:警示標志是警示車子、非機動車留意風險地址的標示;

2、禁令標志:禁令標志是嚴禁或限定車子、非機動車交通出行個人行為的標示;

3、指示標志:指示標志是標示車子、非機動車行駛的標示;

4、指路標志:指路標志是傳送道方位、地址、間距信息內容的標示;

5、旅遊景區標示:旅遊景區標示是出示遊玩景點方位、間距的標示;

6、公路施工安全標識:公路施工安全標識是通知公路施工區行駛的標示。

7、輔助標示:輔助標示是附屬在主標示之中,起輔助表明功效的標示,分表達時間、車子類型、地區或間距、警示、嚴禁原因等種類。

以上就是常見的幾種道路交通標志牌,認清它們可以減少許多時間。 如果你正在找交通標志牌製作廠家,道路標志牌製作,公路標志牌報價,交通指路標志牌廠家首選飛耀交安設施。

C. 模擬交通燈的簡單C語言題

#include<stdio.h>
int a;
int main(){
scanf("%d",&a);
if(a==0) printf("停");
else if(a==1) printf("行");
else printf("等待");
return 0;
}

D. 單片機c語言寫簡單交通燈

#include<reg51.h>
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
int a = 0;
int b = 10;
int c = 0;
int d = 5;

void timer0(void) interrupt 1
{
TH0 = 15536/256;
TL0 = 15536%256;
++a;
if(a==20)
{
a=0;
--b;
if(b==0)
{
b=10;
++c;
}

if(c==0)
{
P10 = 1;//紅燈亮的埠
P11 = 0;
P12 = 0;
}

if(c==1)
{
P11 = 1;//綠燈亮的埠
P10 = 0;
P12 = 0;
}

if(c == 2)
{
b = d;//黃燈亮,顯示為5~0
--d;//////////////////////////這里
P12 = 1;
P11 = 0;
P10 = 0;
}

if(c==3)
{
c=0;
}
}

}
void show()
{
P2 = (b/10)*16 + b%10;
}
void main()
{

TMOD = 0x01;
P10 = 0;
P11 = 0;
P12 = 0;
TH0 = 15536/256;
TL0 = 15536%256;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1)
{
show();
}
}

E. 新手開車技巧基礎篇:怎麼辨別各種路面標識(下)

新手駕駛技巧基礎篇:如何辨別各種路標(下)不管你是新手還是老手不管你開的是比亞迪還是寶馬想要拿到駕照一定要記住交通標志。也許你認為這是一件簡單的事情但是當數百個標志放在一起時你能正確地告訴他們嗎?識別不尋常的交通標志有許多不常見的跡象邊肖列出了其中一些向你解釋。禁止超車。禁止某些兩種車通過。不平衡速度路過標志極限軸重標志駝峰預警隧道警告路堤警告過水路面警告有人守衛鐵路道口。最低限速標志先見面先走環形車道標志非機動車駕駛兩邊的交通標志車輛匯合引導標志高速公路終點道路施工右封路通過立交進入高速公路以上是太平洋汽車網編輯整理的最新信息。

F. c語言編寫十字路口交通燈的程序

這程序是自己寫的嗎?要是的話也有點太,,,,那啥了吧,就是有點亂,感覺不用sbit那麼多。不過自己寫的怎麼都比抄的好。
P0=table【I】
table數組從來沒看到。定義的數組是uchar codetable[]和uchar codeS[8,codes數組也沒看到。

G. c語言怎麼寫出交通燈的簡單程序

我實訓是做了這個項目,發給你看看,功能主要和交通燈的差不多,還可以顯示具體的時間,跳轉的時候,時間是倒計時的,當到0以後,下面燈轉換
#include<reg51.h>
unsigned int shi,ge,js;
void delay(unsigned char i);
sbit P2_0=P2^0;
sbit P2_1=P2^1;
unsigned int i=0;
unsigned char key_press();
unsigned char key_scan();
unsigned int m=0;m2=0;n1=6;n2=2;
void TIMERO_1();
void TIMERO_0();
unsigned char led[4]={0xee,0xdb,0xf5,0xdb};
unsigned char code tabe[13]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x00};
unsigned char num;
unsigned char key_scan()
{ unsigned char hang,lie,key;
P3=0x0f;
if(P3!=0x0f)
delay(100);
if(P3!=0x0f)
{
switch(P3&0x0f)
{
case 0x0e:hang=0;break;
case 0x0d:hang=1;break;
case 0x0b:hang=2;break;
//case 0x07:hang=3;break;
}
P3=0xf0;
switch(P3&0xf0)
{
case 0xe0:lie=0;break;
case 0xd0:lie=1;break;
case 0xb0:lie=2;break;
case 0x70:lie=3;break;
}
while(P3!=0xf0);
key=hang*4+lie;
}
// else
// key=12;
return (key);
}
unsigned char key_press()
{
unsigned char temp,key_flag;
P3=0x0f;
delay(100);
temp=P3;
if (temp!=0x0f)
{
key_flag=1;
}
else
{
key_flag=0;
}
return key_flag;
}
void TIMERO_0() interrupt 1
{
TH0=0X3C;
TL0=0XB0;
m++;
if(m==20)
{
m=0;
n1--;
shi=n1/10;
ge=n1%10;
}
if(n1==0)
{i=i+1;
n2=3;
TR1=1;
TR0=0;
}
//if(ge==0)
//{ge=2;}
}
void TIMERO_1() interrupt 3
{
TH1=0X3C;
TL1=0XB0;
m2++;
if(m2==20)
{
m2=0;
n2--;
shi=n2/10;
ge=n2%10;
}
if(n2==0)
{
i=i+1;
n1=js;
TR0=1;
TR1=0;
if(i== 4)
{
i=0;
}
//if(ge==0)
//{ge=js;}
}
}
void display(unsigned char a,b,c,d,e,f)
{
P2_1=1;
P2_0=0;
P0=0x20;
P2_0=1;
P2_1=0;
P0=tabe[a];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0X10;
P2_0=1;
P2_1=0;
P0=tabe[b];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x08;
P2_0=1;
P2_1=0;
P0=tabe[c];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x04;
P2_0=1;
P2_1=0;
P0=tabe[d];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x02;
P2_0=1;
P2_1=0;
P0=tabe[e];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x01;
P2_0=1;
P2_1=0;
P0=tabe[f];
delay(10);
P0=0x00;
delay(10);
}
void main()
{
TMOD=0X11;
TH0=0X3C;
TL0=0XB0;
TH1=0X3C;
TL1=0XB0;
ET1=1;
ET0=1;
EA=1;

P1=0XFF;
while(1)
{
P0=0;
if(key_press())
{ num=key_scan();
if(num<=9)
{

shi=ge;
ge=num;
js=shi*10+ge;
n1=js;
}
if(num==10)
{
TR0=0;
TR1=0;
shi=ge;
ge=num;

}
if(num==11)
{
TR0=1;
i=0;
js=shi*10+ge;
}

}
P1=led[i];
display(12,12,12,12,shi,ge);
}
}
void delay(unsigned char i )
{
unsigned char j, k;
for(k=0;k<i;k++);
for(j=0;j<255;j++);
}

H. MATLAB編寫交通標志檢測與識別的源程序

獲取server安裝的各種組件的powershell命令,可以在server上正常命令行執行
powershell -command "& {get-windowsfeature | Out-File -FilePath C:\Command.txt}"

但我用C語言寫出來的exe去跑的時候總是不能正常執行,因為server環境裡面沒有debug環境,所以也不知道具體錯在什麼地方了,具體source如下:

C/C++ code?

TCHAR szCommandLine[1024] = {0};
sprintf(szCommandLine,
"powershell -command \"& {get-windowsfeature | Out-File -FilePath C:\\Command.txt}\"");

bSuccess = CreateProcess( NULL, // No mole name (use command line).
szCommandLine, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ); // Pointer to PROCESS_INFORMATION structure.

I. 交通標志識別,求解!很簡單

一杠代表50米。二杠代表100米。三杠代表150米 這個記住就行。