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

📄 l6-1.c

📁 单片机C语言程序设计教程与实训源代码及图片 单片机C语言程序设计教程与实训源代码及图片
💻 C
字号:
/**********************************************************************
程序名称:L6-1.c
程序功能:通过8位串入并出移位寄存器74LS164,扩展单片机的输出端口
程序作者:张三
创建时间:2008-3-28
**********************************************************************/
#include <reg51. h>

sbit OE74164 = P3^2;		// 0-禁止74164串入;  1-允许74164串入
unsigned char data  i;		// 循环控制变量
unsigned char data Patten[9]={ 0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff };							// 输出数据
unsigned int CNT=0;		// 50ms定时计数器

/**********************************************************************
函数名称:Time0( void )
函数功能:定时器1中断服务程序
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void Time0( void ) interrupt 1 using 3 
{
	CNT++;			// 50ms定时时间到,定时计数器加1 
	if( CNT==20 ){		// 1s定时时间到  
		CNT=0; 		// 清零定时计数器 
		OE74164 = 0; 		
	}
	TH0 = 0x3c;		// 重装定时器初值
	TL0 = 0xb0;
}
/**********************************************************************
函数名称:Serial( void ) 
函数功能:串行口中断服务程序
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void Serial( void ) interrupt 5 using 2
{ 
	TI = 0;			// 清零发送结束标志
	OE74164 = 1; 		
}
/**********************************************************************
函数名称:main( void )
函数功能:单片机初始化,向SBUF中装入待发送的数据
函数作者:张三
创建时间:2008-3-28
**********************************************************************/
void main( void )
{
	TMOD = 0x01;		// 由TR0控制T0的启、停,工作方式1
	TH0 = 0x3c;		// 给加1计数器赋初值
	TL0 = 0xb0;
	EA = 1; 		// 打开中断
	ET0 = 1;		// 允许T0请求中断
	TR0 = 1;		// 启动T0
	ES = 1;			// 允许串行通信请求中断
	SCON = 0x00;		// 工作方式0,REN=0,禁止接收,TI=0
	
	for( ; ;  ){
		for( i=0; i<8; i++ ){
			SBUF = Patten[i];	// 启动单片机串行口输出
		}
	}
}

⌨️ 快捷键说明

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