c51的问题
/*c51的问题。单片机是AT89S8252,接口芯片8279*/
/*想在LED最低位静态地显示一位数。*/
/*现在的问题是,不管段码数组DisSeg[]={}中是什么数,*/
/*最低位的LED都显示8,且测量得p0口都为高电平。*/
/*不知错在哪里?谢谢!*/
#include <absacc.h> /*包含绝对地址访问头文件*/
#define StaPort 0x7FFF /*定义8279的命令端口地址*/
#define DataPort 0x3FFF /*定义8279的数据端口地址*/
char xdata DisBuf[8]; /*显示缓冲区*/
char code DisSeg[]={0x01}; /*显示段码*/
void KbDisInit() {
XBYTE[StaPort]=0x08; /*设置8279的工作方式*/
XBYTE[StaPort]=0x2A; /*8279分频系数*/
XBYTE[StaPort]=0xD1; /*清除8279显示RAM*/
while(XBYTE[StaPort]&0x80); /*等待清除结束*/
}
void KeyShift() { /*从显示缓冲区取数并显示*/
unsigned char i=0;
XBYTE[StaPort]=0x80;
XBYTE[DataPort]=DisSeg[DisBuf[i]];
}
void main() {
KbDisInit();
KeyShift();
}
发表时间:2004年6月14日11:08:47