现在的位置: 首页 > 综合 > 正文

8255A例程

2014年01月23日 ⁄ 综合 ⁄ 共 830字 ⁄ 字号 评论关闭

 

#include<reg52.h>
#include<absacc.h> //定义8255A的绝对地址时用,必须包含此库函数
#include<intrins.h>
/***********宏声明***********/
#define uint  unsigned int
#define uchar unsigned char
#define D8255  XBYTE[0x7f03] //8255控制口地址
#define D8255A XBYTE[0x7f00] //8255 PA口地址
#define D8255B XBYTE[0x7f01] //8255 PB口地址
#define D8255C XBYTE[0x7f02] //8255 PC口地址
sbit A0=P3^0;
sbit A1=P3^1;
char code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //设段码
void delay(uint x)
{
 uint i;
 while(x--)            //延时约x毫秒
  for(i=0;i<123;i++);
}
void main()
{
   uchar i,t=0x0fe;
   D8255=0x80; //送出控制字给8255A的控制口 ,A、B、C均为输出
   while(1)
   {
     for(i=0;i<10;i++)
     {  
   A0=0;
      A1=0;
      D8255A=table[i];       //向PA口送出数据
   delay(200);
   A0=1;
      A1=0;
   D8255B=0x55;     //向PB口送出数据
      delay(200);
   A0=0;
      A1=1;
   delay(200);
   D8255C=~t;     //向PC口送出数据
      t=_crol_(t,1);  //t循环左移1位
     }                
   }
}

 

抱歉!评论已关闭.