本帖最后由 enshiren 于 2013-1-19 12:25 编辑
为什么没有人帮我解答呢,就是给版主站内发信息也不回,是因为太白痴了不值得回答,还是。。。。。。。。
如题目,时间大约要多久?怎么判断它已经清除完毕,用C语言来写。还有就是8279现在还用吗?
#include<reg52.h>
#include<absacc.h>
#define com8279 XBYTE[0x5fff]
#define date8279 XBYTE[0x5eff]
void delay76us(void) //误差 0us
{
unsigned char a,b;
for(b=1;b>0;b--)
for(a=34;a>0;a--);
}
void main()
{
com8279=0xdc;
delay76us();//我用了一延时函数,大约有76us,我看了资料,清除完毕的话要0~160us,虽然这样效果是出来,但是很不专业,根本没有理解到他的本质。
com8279=0x00;
com8279=0x34;
com8279=0x94;
date8279=0x92;
while(1);
}
如果不加延时,就没有显示,不知道原理是什么。
*******************************************************************************************************************************
我查了一些资料,用累加器来判断
...
sbit a=ACC^7;
...
void main()
{
...
do ACC=com8279
while(a==1);
...
}
这样理由是什么,根据什么
******************************************************************************************************************************
flag_status=XBYTE[Code_adr];//读状态字 while(flag_status&0x80==0x80)//等待清除完毕 { flag_status=XBYTE[Code_adr]; } 这个呢?
|