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

📄 diy0816_07.c

📁 AVR单片机应用开发指南及实例,包含许多实例,挺不错
💻 C
字号:
//7.	I/O端口进一步应用。
//用图6的ATmega16的PB.0端口开关(可用接插线接VCC或GND代替)
//控制PA口8个LED灯作跑马灯控制;可作广告灯用。
//请你编写出其它花样的广告灯程序!
//     www.sl.com.cn
//     teny@sl.com.cn    05-11-12
// Target : mega16     Crystal: 8.0000Mhz

#include <iom16v.h>
#include <macros.h>
 
#define delay_time 500
 
unsigned char pa_buf,pb_buf,loop_timers;
		 //定义为字符型变量
void delay_us(int time)
{   //微秒延时            
 do
 {
  time--;
 }	
  while (time>1);
}	  

void delay_ms(unsigned int time)
{   //毫秒延时
 while(time!=0)
 {		
  delay_us(1000);
  time--;
 }
}		

void shiyan7()
{
 DDRB=0x00;PORTB=0xFF;//PB口输入,内部上拉
 DDRA=0xFF;PORTA=0xFF;//PA口输出
 while(1)//循环运行
 {
  pb_buf=PINB & 0x01;//检测PINB0是否为0,为1重新检测
  if(pb_buf==0x00)//为0,运行跑马灯程序,PA口的LED依次点亮
  {
   pa_buf=0x01;//送初值
   for(loop_timers=0;loop_timers<8;loop_timers++)//循环8次
   {PORTA=~pa_buf;pa_buf=pa_buf<<1;delay_ms(delay_time/2);}
   //取反输出,左移一位,延时
  }//循环检测 
  PORTA=0xff;//为1,熄灭PA口的LED
 }
}

void main()
{
 shiyan7();//实验7函数
}

⌨️ 快捷键说明

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