主题:protues仿真8279
protues仿真8279操作
我用protues仿真操作8279,要求8个数码管,右端输入、循环显示8,可是根本没有效果,在keil中调试看P0口也没有变化,xbyte没有用错吧?望大侠指点下
#include<reg52.h>
#include<absacc.h>
#define COM XBYTE [0xfdff] //命令端口
#define DAT XBYTE [0xfcff] //数据端口
#define uchar unsigned char
sbit clflag=ACC^7;//8279状态字DU标志
uchar count;
void delay()
{
uchar i,j;
for(i=5;i>0;i++)
for(j=110;j>0;j++);
}
void disp_led()
{
COM=0xd1;//清除所有RAM单元,保证每次调用显示函数只有一个LED点亮
do
{
ACC=COM;
}while(clflag==1);//等待清除结束
COM=count+0x80;//写显示RAM命令
DAT=0x7f;//显示8
count++;
if(count==8)
count=0;
}
void main()
{
COM=0xd1;//清除显示RAM所有内容
do
{
ACC=COM;
}while(clflag==1);//等待清除结束(也可以用延时)
COM=0x10;//8字符显示,右端输入;编码扫描,键盘输入,两键互锁
COM=0x2a;//10分屏,扫描频率
while(1)
{
disp_led();
delay();
}
}
[email]null[/email]
我用protues仿真操作8279,要求8个数码管,右端输入、循环显示8,可是根本没有效果,在keil中调试看P0口也没有变化,xbyte没有用错吧?望大侠指点下
#include<reg52.h>
#include<absacc.h>
#define COM XBYTE [0xfdff] //命令端口
#define DAT XBYTE [0xfcff] //数据端口
#define uchar unsigned char
sbit clflag=ACC^7;//8279状态字DU标志
uchar count;
void delay()
{
uchar i,j;
for(i=5;i>0;i++)
for(j=110;j>0;j++);
}
void disp_led()
{
COM=0xd1;//清除所有RAM单元,保证每次调用显示函数只有一个LED点亮
do
{
ACC=COM;
}while(clflag==1);//等待清除结束
COM=count+0x80;//写显示RAM命令
DAT=0x7f;//显示8
count++;
if(count==8)
count=0;
}
void main()
{
COM=0xd1;//清除显示RAM所有内容
do
{
ACC=COM;
}while(clflag==1);//等待清除结束(也可以用延时)
COM=0x10;//8字符显示,右端输入;编码扫描,键盘输入,两键互锁
COM=0x2a;//10分屏,扫描频率
while(1)
{
disp_led();
delay();
}
}
[email]null[/email]