1. 程式人生 > 實用技巧 >525【畢設課設】基於微控制器汽車尾燈控制器模擬系統

525【畢設課設】基於微控制器汽車尾燈控制器模擬系統

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

本模擬汽車尾燈控制系統主要以AT89S52微控制器為核心,製作出的一款新型LED組合式汽車尾燈控制器的電路,並且利用6個獨立按鍵實現左轉、右轉、剎車、行車、危險警示、檢查訊號等訊號燈的功能並且利用74HC595晶片實現只利用微控制器3個I/O口實現多個狀態控制。該系統由電源電路、電源指示燈、下載介面、復位電路、74HC595序列輸入並行輸出控制8個LED燈、振盪電路。

sbit sh_cp=P2^0;//移位暫存器時鐘輸入
sbit dsin=P2^1;//資料序列輸入
sbit st_cp=P2^2;//儲存暫存器時鐘輸入
//sbit mr=P2^3;//當並行輸出時始終為高電平
//sbit oe=P2^4;//始終為低電平,即一直為輸出使能
sbit keyright=P1^0;
sbit keyleft=P1^1;
sbit keystop=P1^2;
sbit keycheck=P1^3;
sbit keydanger=P1^4;
sbit nightmode=P1^5;

void delayus(uint x)
{
	while(--x);
}
void delay(uint z)
{
	uint i,j;
	for(i=z;i>0;i--)
	for(j=110;j>0;j--);
}

/****************寫子程式************/
 void write_595(uchar date)
{
	uchar i;
	for(i=0;i<8;i++)
	{	
		sh_cp=0;
		date=date<<1;
		dsin=CY;
		_nop_();
		_nop_();
		sh_cp=1;
		
	}
}
/******8********傳送程式***********/
void out_595()
{
	uchar m;
	for(m=0;m<8;m++)
	{
		st_cp=0;
		_nop_();
		_nop_();
		st_cp=1;
		_nop_();
	}	
}
/*********************白天右轉LED燈顯示************/
void dayright()
{
	if(keyright==0)
	{
		 delay(10);
		 if(keyright==0)
		 {
			while(keyright==0&&keystop==1&&keyleft==1&&keycheck==1&&keydanger==1&&nightmode==1)
			   {
					write_595(0xfb);
					out_595();
					delay(200);
					write_595(0xf9);
					out_595();
					delay(200);
點選並拖拽以移動