C51编程:求助8255程序判断,帮忙看一下给一下建议好么?
1、与8031借口的8255片内4个端口地址(口A、口B、口C、命令口)分别为DFFCH~DFFFH。
对8255初始化,并由口A输出数据AAH;由口B输入十个数到片内RAM区,由PC3产生一个负脉
冲,低电平宽度为10us。
#include <absacc.h>
#include <reg51.h>
#define uchar unsigned char
#define COM8255 XBYTE[0xDFFF]
#define PA8255 XBYTE[0xDFFC]
#define PB8255 XBYTE[0xDFFD]
#define PC8255 XBYTE[0xDFFE]
void outPa(void)
{PA8255=0x0AA;}
void inPb(uchar data *ram, uchar n)
{
while(n) {
if (0==0xEF^PC8255) { //判断PC4是否反转一次,^用来异或。
*ram++=PB8255;
n--;
} } }
void time0 (void) interrupt 1 using 0
{COM8255=0X09; COM8255=0x08;} //PC4上产生一个模拟脉冲
void main()
{ PC8255=0x10;
TMOD=0x06;
COM8255=0x82;//初始化PC4,和中断方式,以及8255;
TH0=-246%256;
TL0=-246%256;
EA=1; ET0=1; TR0=1;
outPa(); inPb(0x00,10);
}
这个题目我不清楚是PC4上自己产生脉冲还是,外部产生PC4接收。
我是自学C51,刚刚学到8255,这个程序 不知道是否应该这么写,谢谢各位老师能给我指点
一下。
发表时间:2003年1月31日17:51:00