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

📄 ex4_3.c

📁 单片机应用技术(C语言版)程序源代码.rar
💻 C
字号:
//程序:ex4_3.c
//功能:可控信号灯程序
#include <reg51.h>
//函数名:delay0_5s
//函数功能:用T0的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,定
//          时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒
//形式参数:无 
//返回值:无
void delay0_5s()
{  
  unsigned char  i;
  for(i=0;i<0x0a;i++)		// 设置10次循环次数
{     	
   TH0=0x3c;			// 设置定时器初值
   TL0=0xb0;
   TR0=1;			// 启动T0
   while(!TF0); 		// 查询计数是否溢出,即定时50ms时间到,TF0=0
   TF0=0;			// 50ms定时时间到,将定时器溢出标志位TF0清零
   }
}
//函数名:delay_t
//函数功能:实现0.5秒~128秒延时
//形式参数:unsigned char t;
//          延时时间为0.5秒×t
//返回值:无
void delay_t(unsigned char t)
{
   unsigned char i;
   for(i=0;i<t;i++)delay0_5s();
}
//函数名:int_0
//函数功能:外部中断0中断函数,当CPU响应外部中断0的中断请求时,自动执行该
//          函数,实现八个信号灯闪烁
//形式参数:无
//返回值:无
void int_0() interrupt 0 	//外部中断0的中断号为0
{
   P1=0x00;			//熄灭八个信号灯
   delay0_5s();			//调用0.5秒延时函数
   P1=0xff;			//点亮八个信号灯
   delay0_5s();			//调用0.5秒延时函数
}
void main()			//主函数
{
   unsigned char i,w; 
   EA=1;			// 打开中断总允许位
   EX0=1;			// 打开外部中断0允许位
   IT0=1;			// 设置外部中断为边沿(下降沿)触发方式
   TMOD=0x01;         		// 设置T0为工作方式1
   while(1) {
      w=0x01;			// 显示码初值为01H
      for(i=0;i<8;i++)
      {
          P1=~w;		// w取反后送P1口,点亮相应LED灯
          w<<=1;		// 点亮灯的位置移动
          delay_t(2);	       	// 调用延时函数delay_t(),实际参数为2,延时1秒
      }
            }
}

⌨️ 快捷键说明

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