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

📄 8255扩展.c

📁 基于AVR实验平台下ATMega128芯片实习作业
💻 C
字号:
#include <iom128v.h> 
#define CON8255 0x8003
#define A8255 0x8000
#define B8255 0x8001
void init(void) 
{ 
   MCUCR=MCUCR|0x80;
   XMCRB=0x80;
   w8255con(0x80); 
   w8255con(0x82); 
   }
void w8255con(unsigned char ctrl) 
{ 
   unsigned char *p=(unsigned char *)(CON8255);
   *p=ctrl;           
}
void w8255a(unsigned char value) 
{   
   unsigned char *p=(unsigned char *)(A8255);
   *p=value; 
}

r8255b(){ 
   unsigned char dp;
   unsigned char *p=(unsigned char *)(B8255);
   dp=*p; 
   return dp;
}
void delay_1ms(void)
{ unsigned int i;
 for(i=1;i<2286;i++);
}
void delay_nms(unsigned int n)
{  unsigned int i=0;
   while(i<n)
   {delay_1ms();
    i++;
   }
  
}
	void main(void) 
{  init();
 while(1){
   if((r8255b()&0x01)==0)
   {w8255a(0xfe);
   delay_nms(50);
   w8255a(0xfd);
   delay_nms(50);
   w8255a(0xfb);
   delay_nms(50);
   w8255a(0xf7);
   delay_nms(50);
   w8255a(0xef);
   delay_nms(50);
   w8255a(0xdf);
   delay_nms(50);
   w8255a(0xbf);
   delay_nms(50);
   w8255a(0x7f);
   delay_nms(50);}
   else  
   w8255a(0xff);
   
 if((r8255b()&0x02)==0)
  {w8255a(0x7f);
   delay_nms(50);
   w8255a(0x3f);
   delay_nms(50);
   w8255a(0x1f);
   delay_nms(50);
   w8255a(0x0f);
   delay_nms(50);
   w8255a(0x07);
   delay_nms(50);
   w8255a(0x03);
   delay_nms(50);
   w8255a(0x01);
   delay_nms(50);
   w8255a(0x00);
   delay_nms(50);}
   else
   w8255a(0xff);
   
  if((r8255b()&0x04)==0)
   {w8255a(0x00);
   delay_nms(20);
   w8255a(0xff);
   delay_nms(20);
   w8255a(0x00);
   delay_nms(20);
   w8255a(0xff);
   delay_nms(20);
   w8255a(0x00);
   delay_nms(20);
   w8255a(0xff);
   delay_nms(20);}
   else
   w8255a(0xff);
   }
}

⌨️ 快捷键说明

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