单片机C语言8255A开发 我想想一个用8255A单独一个口(不是一个单元)点亮一个灯,求高手赐教如实现分全赏

Python017

单片机C语言8255A开发 我想想一个用8255A单独一个口(不是一个单元)点亮一个灯,求高手赐教如实现分全赏,第1张

#include<reg52.h>

#define PA XBYTE[0x0000]

#define PB XBYTE[0x2000]

#define PC XBYTE[0x4000]

#define COM XBYTE[0x6000]

unsigned char ledunsigned int count

void main()

{

EA=1

TMOD=0x01

TCON=0x00

TH0=-2304/256

TL0=-2304%256

TR0=0

COM=0x8aled=0 while(1)}

void timer(void) interrpt 1

{

TH0=-2304/256

TL0=-2304%256count++if(count==100){ count=0

led=PA&0x01//这里直接写LED电平 反转,不过我不知道你的接线,你可以自己试试//通常我们都是 这样 led1=~led1;(当然事先有了定义的 sbit led1=P1^1)}}

虽然不知道你的接线,但是我知道你这种方式永远点亮不了LED。看着注释,自己在改改就好了

先添加头文件,INIT8255这个函数是头文件已经定义?

头文件添加完成之后,try it。

如果不行,再重新定义一下INIT8255()

四个错误,就是该函数中的变量add8255、 PA8255、 P13未定义;

修正错误,就是定义一下,定义成unsignd int

INIT8255()被多次定义,查找一下,去掉其中一处。

(猜测)

应该是头文件未添加导致的。

INIT8255在头文件中,应该已经被定义完成了,你自己再次定义了,就出现上述错误。

主要是要和线路配合

#include<absacc.h>

#include<reg51.h>

#define COM8255 XBYTE[0x7fff] //命令字地址

#define PA8255 XBYTE[0x7ffc] //PA口地址

#define PB8255 XBYTE[0x7ffd] //PB口地址

void main()

{

COM8255=0x90//方式0,A口输入,PB口输出

while(1)

{

PB8255=PA8255//PA口开关断和通控制PB口LED亮和灭

}

}

//absacc.h 是定义绝对地址的头文件 ,x表示外部存储器,

//XBYTE[0x7fff] 表示外部存储器中的一个为0x7fff的绝对地址.

详细的可见我的空间一文=》http://hi.baidu.com/47okey/blog/item/005502fd374e9eeafc037f85.html?timeStamp=1320919263656