打印

关于8279清除显示RAM时间

[复制链接]
2581|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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 | 只看该作者
清除应该很快的,但要看到效果,必须等到下一次显示刷新时才能有效

使用特权

评论回复
评论
enshiren 2013-1-18 12:32 回复TA
用C语言怎么来写,怎么来判断他清除完了 
评分
参与人数 1威望 +1 收起 理由
enshiren + 1 帮我解答下,非常感谢。
地板
liusensen| | 2013-1-18 11:43 | 只看该作者
题呢

使用特权

评论回复
5
enshiren|  楼主 | 2013-1-18 12:28 | 只看该作者
liusensen 发表于 2013-1-18 11:43
题呢


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

使用特权

评论回复
6
enshiren|  楼主 | 2013-1-18 12:31 | 只看该作者
com   0x5fff
date  0x5eff

使用特权

评论回复
7
liushilong1018| | 2013-1-18 12:42 | 只看该作者
不懂

使用特权

评论回复
8
liushilong1018| | 2013-1-18 12:43 | 只看该作者
不懂

使用特权

评论回复
9
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);
}

使用特权

评论回复
10
zhouxinke| | 2013-1-18 19:13 | 只看该作者
受教了,谢谢!

使用特权

评论回复
11
enshiren|  楼主 | 2013-1-19 12:20 | 只看该作者
没有满意答案,我怎么来结呢?高手你们行行好吧

使用特权

评论回复
12
wuzx-61| | 2013-1-19 12:39 | 只看该作者
等待结果.

使用特权

评论回复
13
enshiren|  楼主 | 2013-1-19 13:21 | 只看该作者
wuzx-61 发表于 2013-1-19 12:39
等待结果.

可以给我说说原因吗?

使用特权

评论回复
14
ZOUWEN1| | 2013-1-19 14:07 | 只看该作者
基本看了你的问题,时间大约要多久?怎么判断它已经清除完毕?这个问题是指开机时清除显示RAM,延时1MS都可以的。现在很少用此芯片,可以用ZLG的7290来做键盘和LED数码管的显示。

使用特权

评论回复
15
ZOUWEN1| | 2013-1-19 14:08 | 只看该作者
找了一个例子,供参考。

组织者.jpg (30.72 KB )

组织者.jpg

使用特权

评论回复
16
enshiren|  楼主 | 2013-1-19 14:39 | 只看该作者
ZOUWEN1 发表于 2013-1-19 14:08
找了一个例子,供参考。

谢谢你了,但是你说的这个我还是会的,我自己测试下我这个芯片,大约要76us就可以了,所以我自己写了个延时76us的了函数,我想说的是怎么可以刚一清除完毕,就可判断出来,也就是像我下面写得两个程序,我就是不能理解为什么要这样写。

使用特权

评论回复
17
enshiren|  楼主 | 2013-1-20 12:17 | 只看该作者
帮我解答下

使用特权

评论回复
18
ZOUWEN1| | 2013-1-24 12:33 | 只看该作者
你测试的时间只是针对这个芯片和当前的这个环境,建议考虑环境的变化如温度的变化等因素,实际要比IC的推存的参还要长三分之一到二分之一,这样的程序在实际工作中才会稳定和可靠。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

12

帖子

0

粉丝