⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shixun3.c

📁 单片机C语言程序设计教程与实训源代码及图片 单片机C语言程序设计教程与实训源代码及图片
💻 C
字号:
/**********************************************************************
程序名称:ShiXun3.c
程序功能:简易十字路口交通信号灯控制
程序作者:张三
创建时间:2008-3-28
**********************************************************************/
#include <reg51.h>

#define FX_Time	4				// 放行时间
#define JG_Time	1				// 警告时间
unsigned char DispX[4] = { 0x9a, 0x9c, 0xa9, 0xc9 };	// 控制码


void FangXing( unsigned char *PTR );		// 放行函数
void JingGao( unsigned char *PTR );		// 警告函数
/**********************************************************************
函数名称:DelayXs ( unsigned char x )
函数功能:延时xs
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void DelayXs( unsigned char x)
{
	unsigned char	i, j, k;
	for( ; x>0; x-- )
		for( i=0; i<20; i++ )	// 振荡器频率为12MHz,延时1s
			for( j=0; j<200; j++)
				for( k=0; k<250; k++ ) 	;
}
/**********************************************************************
函数名称:main( void )
函数功能:主函数,控制信号灯正常运行
调用函数:DelayXs( unsigned char x),FangXing( unsigned char *PTR ),
JingGao( unsigned char *PTR )
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void main( void )
{
	unsigned char *PTR = &DispX;	// 指针PTR指向数组Dispx的首地址


	P1 = 0xff;			// 开机信号灯全亮,用于信号灯检测
	DelayXs( 1 );


	while(1){	
		FangXing( PTR );	// 东西方向放行
		JingGao( ++PTR ); 	// 东西方向警告
		FangXing( ++PTR ); 	// 南北方向放行
		JingGao( ++PTR ); 	// 南北方向警告
		PTR = &DispX;
	}		
}
/**********************************************************************
函数名称:FangXing( unsigned char *PTR )
函数功能:东西方向或南北方向放行
调用函数:DelayXs( unsigned char x)
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void FangXing( unsigned char *PTR )		
{
	P1 = *PTR;	
	DelayXs( FX_Time );
}


/**********************************************************************
函数名称:JingGao( unsigned char *PTR )
函数功能:东西方向或南北方向警告
调用函数:DelayXs( unsigned char x)
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void JingGao( unsigned char *PTR )
{
	P1 = *PTR;	
	DelayXs( JG_Time );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -