avr单片机应用开发典型实例CD.rar

源代码在线查看: led.c

软件大小: 2482 K
上传用户: xinlanwj1226
关键词: avr CD 单片机
下载地址: 免注册下载 普通下载 VIP

相关代码

				//******************************FileName: LED.C******************************//
				//******************************ICCAVR V6.30编译****************************//
				
				#include            //头文件,AT90S8535单片机的寄存器定义
				#define uchar unsigned char    //数据类型说明
				#define uint  unsigned int     //数据类型说明
				
				void DelayMs(uint i)           //Ms级延时函数,参数i:延时时间
				{uint j;
				 for(;i!=0;i--)
				  {for(j=8000;j!=0;j--) ;}
				}
				
				void Horse(uchar i)            //跑马灯程序,通过步判断点亮相应的LED
				{switch(i)                     //高电平点亮LED
				 {case 1:PORTA=0x01;break;     //0000 0001B 点亮LED1
				  case 2:PORTA=0x03;break;     //0000 0011B 点亮LED1~LED2
				  case 3:PORTA=0x07;break;     //0000 0111B 点亮LED1~LED3
				  case 4:PORTA=0x0f;break;     //0000 1111B 点亮LED1~LED4
				  case 5:PORTA=0x1f;break;     //0001 1111B 点亮LED1~LED5
				  case 6:PORTA=0x3f;break;     //0011 1111B 点亮LED1~LED6
				  case 7:PORTA=0x7f;break;     //0111 1111B 点亮LED1~LED7
				  case 8:PORTA=0xff;break;     //1111 1111B 点亮LED1~LED8
				  default:break;}
				}
				
				void main(void)               
				{uchar i;
				 DDRA=0xff;                    //端口设置:PA口设置为推挽1输出
				 PORTA=0xff;
				 PORTA=0x00;                   //PORTA初始值为0,灭掉所有的LED      
				 DelayMs(1000);
				 while(1)                      //程序无条件执行
				  { for(i=0;i				      {Horse(i);
					   DelayMs(1000);}         //点亮时间约1秒
					for(i=7;i!=0;i--)          //依次熄灭LED8~LED1
				      {Horse(i);
					   DelayMs(1000);}         //熄灭时间约1秒
				  }
				}
							

相关资源