久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機交通燈仿真效果 程序帶注釋
[打印本頁]
作者:
小恆心
時間:
2017-11-18 19:32
標題:
51單片機交通燈仿真效果 程序帶注釋
51單片機 交通燈,有仿真效果 程序帶注釋
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(20.01 KB, 下載次數: 78)
下載附件
2017-11-19 06:26 上傳
0.png
(20.48 KB, 下載次數: 89)
下載附件
2017-11-19 06:26 上傳
單片機源程序如下:
#include<reg52.h> // 對單片機的口進行了定義
#define uint unsigned int
#define uchar unsigned char
uchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段碼組合,共陰極數碼管
uchar code c[4]={0x30,0x28,0x84,0x44}; /*P1 綠紅、黃紅、紅綠、紅黃*/
//12MHz
//*************************************************************************************
uchar NB=25,DX=30,NBG=25,DXG=15,H=5; /*數碼管顯示值設置*/
uchar i,k=0,cnt=0,j=0;
sbit K0=P3^0; /*主干道通行*/
sbit K1=P3^1; /*次干道通行*/
sbit K2=P3^2; /*中斷設置時間加減*/
sbit K3=P3^3; /*緊急情況控制*/
sbit K4=P3^5; /*南北時間加*/
sbit K5=P3^6; /*東西時間加*/
sbit K6=P3^7; /*設置完成,返回*/
void delay(uchar t); /*定義延時程序*/
void key(); /*定義鍵盤程序*/
void display(); /*定義顯示程序*/
void settime(); /*定義時間設置顯示程序*/
//*************************程序初始*********************************************
void init(void)
{
TMOD=0x01; /*使用定時器0模式1*/
TH0=0x3c; /*(65536-5000)/256*/
TL0=0xb0; /*(65536-5000)%256*/
IT0=1; //開中斷
ET0=1;
TR0=1;
EA=1;
EX0=1;
EX1=1;
P1=c[k]; //開啟交通燈
}
//*************************外部中斷0處理程序***************************************
void int0(void) interrupt 0 // 通行時間設置
{
EA=0;
P1=0x90; /*紅燈全亮*/
while(1)
{
settime();
if(K4==0) /*P3^6=0設置主干道通行時間*/
{
delay(40);
if(K4==0)
{
while(!K4)
{
settime();
}
NBG++; /*主干道通行時間加1*/
if(NBG==100)
NBG=0;
}
}
if(K5==0) /*P3^5=0設置支干道通行時間*/
{
delay(40);
if(K5==0)
{
while(!K5)
{
settime();
}
DXG++; /*支干道通行時間加1*/
if(DXG==100)
DXG=0;
}
}
if(K6==0) /*P3^7=0返回*/
{
delay(40);
if(K6==0)
{
while(!K6)
{
}
k=0;P1=c[k];
NB=NBG,DX=NBG+H;
display();
EA=1;
break;
}
}
}
}
/***********************************中斷1處理程序********************/
void int1(void) interrupt 2 //緊急情況
{
/*東西南北紅燈亮*/
EA=0;
TR0=!TR0; /*停止計數*/
while(1) /*主支干道顯示全為0*/
{
P1=0x90,P0=a[0];
P2=0xfe;
delay(20);
P2=0xfd;
delay(20);
P2=0xfb;
delay(20);
P2=0xf7;
delay(20);
if(K6==0) /*P3^7=0返回*/
{
delay(40);
if(K6==0)
{
while(!K6)
{
}
EA=1;
P1=c[k]; /*返回緊急前狀態開始計數*/
TR0=!TR0; /*重啟計數*/
break;
}
}
}
}
void time1(void) interrupt 1 /*交通燈控制程序*/
{
TH0=0x3c; /*定時50ms*/
TL0=0xb0;
cnt++;
if(cnt==20) /*每20*50ms=1s自減一*/
{
NB--;
DX--;
cnt=0;
if(NB==0||DX==0)
{
k++;
if(k>3) /*k取0,1,2,3*/
k=0;
switch(k)
{
case 0:NB=NBG,DX=NBG+H;j=0;P1=c[k];break; /*主干道通行顯示綠紅*/
case 1:NB=H;j=1;P1=c[k];break; /*主干道黃燈閃爍*/
case 2:NB=DXG+H,DX=DXG;j=0;P1=c[k];break; /*支干道通行顯示紅綠*/
case 3:DX=H;j=2;P1=c[k];break; /*支干道黃燈閃爍*/
}
}
}
}
void delay(uchar t) //延時程序延時0.1*nms
{
uchar i;
do
{
for(i=0;i<20;i++);;;
}
while(t--);
}
void settime()
{
P2=0xfe,P0=a[(NBG+H)/10]; /*顯示主干道通行時間 */
delay(20);
P2=0xfd,P0=a[(NBG+H)%10];
delay(20);
P2=0xfb,P0=a[(DXG+H)/10]; /*顯示支干道通行時間*/
delay(20);
P2=0xf7,P0=a[(DXG+H)%10];
delay(20);
}
void key() //鍵盤程序用KO K1模擬一道有車一道無車
{
if(K0==0) /*主干道有車支干道無車*/
{
delay(40);
if(K0==0)
{
while(!K0)
{
display();
}
k=0,P1=c[k];cnt=0;
NB=NBG, DX=NBG+H;
display();
}
}
if(K1==0) /*支干道有車主干道無車*/
{
delay(40);
if(K1==0)
{
while(!K1)
{
display();
}
k=2,P1=c[k];cnt=0;
NB=DXG+H,DX=DXG;
display();
}
}
}
void display() //顯示程序
{
P2=0xfe,P0=a[NB/10]; /*由k的不同值進入確定顯示數值*/
delay(20);
P2=0xfd,P0=a[NB%10];
delay(20);
P2=0xfb,P0=a[DX/10];
delay(20);
P2=0xf7,P0=a[DX%10];
delay(20);
}
void main(void)
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
交通燈【參考程序】.rar
(72.64 KB, 下載次數: 101)
2017-11-18 19:31 上傳
點擊文件名下載附件
交通燈
下載積分: 黑幣 -5
作者:
韓敢敢
時間:
2021-11-12 10:17
誰能畫出一個流程圖嗎?
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一区二区三区久久久
|
天天草视频
|
成人h动漫精品一区二区器材
|
成人免费小视频
|
欧美一级艳情片免费观看
|
成人高潮片免费视频欧美
|
国产日产精品一区二区三区四区
|
国产一区二区三区在线
|
日韩欧美视频
|
亚洲综合区
|
日韩在线观看网站
|
欧美不卡在线
|
成人视屏在线观看
|
国产91一区二区三区
|
涩涩片影院
|
国产精品成人一区二区三区夜夜夜
|
亚洲精品成人在线
|
久久亚洲天堂
|
日韩一区二区在线视频
|
国产精品69久久久久水密桃
|
欧美一级大片免费看
|
亚洲在线高清
|
日韩精品三区
|
久久亚洲综合
|
中文在线a在线
|
日韩中文字幕2019
|
欧美日韩电影一区二区
|
亚洲国产一区二区三区,
|
久久久久国产精品一区二区
|
91视频.
|
欧美网站一区二区
|
日本在线网站
|
成人a在线观看
|
久草中文在线观看
|
超碰人人人
|
二区久久
|
伊人看片
|
精品久久久久久久久久久下田
|
国产在线精品区
|
91毛片网
|
日韩欧美一级片
|