关于8279清除显示RAM时间

[复制链接]
3401|17
 楼主| enshiren 发表于 2013-1-17 23:34 | 显示全部楼层 |阅读模式
本帖最后由 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];
    }
这个呢?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| enshiren 发表于 2013-1-18 11:24 | 显示全部楼层
怎么没有人告诉我呢,是不是太简单了啊?
ayb_ice 发表于 2013-1-18 11:31 | 显示全部楼层
清除应该很快的,但要看到效果,必须等到下一次显示刷新时才能有效

评论

用C语言怎么来写,怎么来判断他清除完了  发表于 2013-1-18 12:32

评分

参与人数 1威望 +1 收起 理由
enshiren + 1 帮我解答下,非常感谢。

查看全部评分

liusensen 发表于 2013-1-18 11:43 | 显示全部楼层
 楼主| enshiren 发表于 2013-1-18 12:28 | 显示全部楼层
liusensen 发表于 2013-1-18 11:43
题呢


电路如图所示,假如实现一个很简单的功能,第三个数码管显示3,用C语言怎么写呢。
不用定时中断写。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| enshiren 发表于 2013-1-18 12:31 | 显示全部楼层
com   0x5fff
date  0x5eff
liushilong1018 发表于 2013-1-18 12:42 | 显示全部楼层
liushilong1018 发表于 2013-1-18 12:43 | 显示全部楼层
 楼主| enshiren 发表于 2013-1-18 12:53 | 显示全部楼层
#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);
}
zhouxinke 发表于 2013-1-18 19:13 | 显示全部楼层
受教了,谢谢!
 楼主| enshiren 发表于 2013-1-19 12:20 | 显示全部楼层
没有满意答案,我怎么来结呢?高手你们行行好吧
wuzx-61 发表于 2013-1-19 12:39 | 显示全部楼层
等待结果.
 楼主| enshiren 发表于 2013-1-19 13:21 | 显示全部楼层
wuzx-61 发表于 2013-1-19 12:39
等待结果.

可以给我说说原因吗?
ZOUWEN1 发表于 2013-1-19 14:07 | 显示全部楼层
基本看了你的问题,时间大约要多久?怎么判断它已经清除完毕?这个问题是指开机时清除显示RAM,延时1MS都可以的。现在很少用此芯片,可以用ZLG的7290来做键盘和LED数码管的显示。
ZOUWEN1 发表于 2013-1-19 14:08 | 显示全部楼层
找了一个例子,供参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| enshiren 发表于 2013-1-19 14:39 | 显示全部楼层
ZOUWEN1 发表于 2013-1-19 14:08
找了一个例子,供参考。

谢谢你了,但是你说的这个我还是会的,我自己测试下我这个芯片,大约要76us就可以了,所以我自己写了个延时76us的了函数,我想说的是怎么可以刚一清除完毕,就可判断出来,也就是像我下面写得两个程序,我就是不能理解为什么要这样写。
 楼主| enshiren 发表于 2013-1-20 12:17 | 显示全部楼层
帮我解答下
ZOUWEN1 发表于 2013-1-24 12:33 | 显示全部楼层
你测试的时间只是针对这个芯片和当前的这个环境,建议考虑环境的变化如温度的变化等因素,实际要比IC的推存的参还要长三分之一到二分之一,这样的程序在实际工作中才会稳定和可靠。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部