main8255.c

来自「自己做的单片机Proteus仿真实例」· C语言 代码 · 共 65 行

C
65
字号
#include"reg52.h"
#include<intrins.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define PA XBYTE[0x3fff]
#define PB XBYTE[0x7fff]
#define PC1 XBYTE[0xbfff]
#define CTL XBYTE[0xffff]
sbit reset=P2^5;
void delay(unsigned int t);
void display();
void main()
{
//	EA=1;
// ET0=1;
 TMOD=0x01;
 /*reset=1;
 _nop_();
 reset=0;8*/
 CTL=0x80;     //写8255控制字,设置PA,PB,PC为输出口
 PA=0xff;
 PB=0xff;
 PC1=0xff;
 while(1)
 {
  display();}
}
void display()
{
 uchar outdata=0x7f,i;
 for(i=0;i<8;i++)
  {PA=outdata;
   delay(1000);
   outdata=_cror_(outdata,1);
  }
  PA=0xff;
  outdata=0x7f;
 for(i=0;i<8;i++)
  {PB=outdata;
   delay(800);
   outdata=_cror_(outdata,1);}
  PB=0xff;
  outdata=0x7f;
 for(i=0;i<8;i++)
  {	
	PC1=outdata;
   delay(600);
   outdata=_cror_(outdata,1);}
 
  PC1=0xff;
}

void delay(unsigned int t)
{
  for(;t>0;t--)
   {
   	 TH0=(65536-1000)/256;
	 TL0=(65536-1000)%256;
   	 TR0=1;
   	 while(TF0==0) ;
	 TF0=0;
    }
   TR0=0;
}

⌨️ 快捷键说明

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