迪文科技论坛

 找回密码
 立即注册
搜索
查看: 3490|回复: 6

【分享】C51 读写Dgus变量的简易封装

[复制链接]

11

主题

79

回帖

636

积分

高级会员

Rank: 4

积分
636
发表于 2020-11-5 15:08:52 | 显示全部楼层 |阅读模式
C51 操作Dgus变量的封装太繁琐,特别是处理连续多个地址的情况下,定义的数组太占用内存,重新封装了一下,只对单个地址操作。


//===========================
u16 Read_Dgus(u16 Dgus_Addr)
{                       u16 R_Dgus=0;
                        EA = 0;ADR_H = 0x00;
                        ADR_M = (u8)((Dgus_Addr/2)>>8);
                        ADR_L = (u8)(Dgus_Addr/2);
                        RAMMODE = 0xAF; while(!APP_ACK);        //读操作
                        APP_EN = 1;     while(APP_EN);
                        if(Dgus_Addr%2)        R_Dgus = (DATA1<<8)+DATA0;
                        else            R_Dgus=(DATA3<<8)+DATA2;
                        RAMMODE = 0; EA = 1;        return   R_Dgus;
}
//=================================
void Write_Dgus(u16 Dgus_Addr,u16 Val)
{                     EA = 0;ADR_H = 0x00;
                        ADR_M = (u8)((Dgus_Addr/2)>>8);
                        ADR_L = (u8)(Dgus_Addr/2);
                        RAMMODE = 0xAF;while(!APP_ACK);                //读操作
                        APP_EN = 1;while(APP_EN);RAMMODE = 0;
                         ADR_M = (u8)((Dgus_Addr/2)>>8);
                        ADR_L = (u8)(Dgus_Addr/2);
                        RAMMODE = 0x8F;while(!APP_ACK);                //写操作
                        if(Dgus_Addr%2){DATA1=(u8)(Val>>8);DATA0=(u8)(Val);}
                        else           {DATA3=(u8)(Val>>8);DATA2=(u8)(Val);}
                       APP_EN = 1;        while(APP_EN);RAMMODE = 0;
                        EA = 1;
}
//======================================

湖南迪弘科技有限公司
联系人:文彧15576128088
地址:迪文湖南科技园 5栋7楼
回复

使用道具 举报

82

主题

150

回帖

2621

积分

超级版主

Rank: 8Rank: 8

积分
2621
发表于 2020-11-5 16:49:37 | 显示全部楼层
谢谢分享,学习
回复

使用道具 举报

0

主题

1276

回帖

5288

积分

论坛元老

Rank: 8Rank: 8

积分
5288
发表于 2020-11-5 17:26:26 | 显示全部楼层
很高级哦
回复

使用道具 举报

0

主题

1

回帖

39

积分

新手上路

Rank: 1

积分
39
发表于 2020-11-16 13:18:24 | 显示全部楼层
很好用
回复

使用道具 举报

3

主题

5

回帖

88

积分

注册会员

Rank: 2

积分
88
发表于 2021-7-20 13:27:35 | 显示全部楼层
用C51读写数据通过串口来的?
回复

使用道具 举报

0

主题

932

回帖

6182

积分

论坛元老

Rank: 8Rank: 8

积分
6182
发表于 2021-7-20 13:34:32 | 显示全部楼层
dongnz33 发表于 2021-7-20 13:27
用C51读写数据通过串口来的?

是的呢,您可以用这个参考一下这个链接的读取http://inforum.dwin.com.cn:20080 ... amp;_dsign=ef00bd0a
回复

使用道具 举报

0

主题

1

回帖

33

积分

新手上路

Rank: 1

积分
33
发表于 2022-5-19 20:46:47 | 显示全部楼层
优秀!!!!!!!!!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-22 02:51 , Processed in 0.071388 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表