一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: jbzzz
收起左侧

[其他综合] 晶体管测试器AVR-Transistortester

  [复制链接]
发表于 2012-8-20 06:43 | 显示全部楼层
回复 370# fat


    已经很仔细了,非常感谢!昨天晚上一直都没有睡好,一早就醒了,呵呵看到FAT都回复了,真的很感谢!
发表于 2012-8-20 07:28 | 显示全部楼层
回复 370# fat


    FAT还有一个问题请教你一下。lcd-routines.h文件里面有三节这样的,我一直没有想通后面的数值是什么意思?

//Eigene Zeichen
#define LCD_CHAR_OMEGA  244 //Omega-Zeichen
#define LCD_CHAR_U  228  //?Zeichen
#define LCD_CHAR_DIODE  0 //Dioden-Icon; wird als Custom-Characte

我把源文件上传了
AVR-Transistortester_neu.zip (59.87 KB, 下载次数: 358)
发表于 2012-8-20 09:31 | 显示全部楼层
回复  fat


    FAT还有一个问题请教你一下。lcd-routines.h文件里面有三节这样的,我一直没有想通后面 ...
38293312 发表于 2012-8-20 07:28 https://www.yleee.com.cn/images/common/back.gif


这三行是宏定义,将特殊字符在LCD1602的CGROM字符代码定义成助记字符,比如看作者的意思第一句就是将Ω字符的ASCII码244,定义成助记符LCD_CHAR_OMEGA,下同。
注:这要取决于你用的1602,CGROM的字符排列要参考手册上的说明,这个作者用的1602似乎与我们平时见到的内部字符集不同,常见的1602内部CGROM的字模是按照ASCII安排的,请参考下面的ASCII扩展码表,Ω符号码应该是234,若按作者的这个定义,会显示“怪字符”,所以我猜想作者用的屏与常见的不同。如果用我们常用的屏,这里改成234即可,第二行的μ字符,对应的是230,后面的二极管符号,就只能自定义了
ascii.gif
发表于 2012-8-20 12:00 | 显示全部楼层
本帖最后由 38293312 于 2012-8-20 15:02 编辑

回复 373# fat

第三个问题解决,可以显示两排文字了。
第二个问题解决。可以正常显示UF了
//Eigene Zeichen
#define LCD_CHAR_OMEGA 234   //Omega-Zeichen
#define LCD_CHAR_U 117  //?Zeichen
#define LCD_CHAR_DIODE  0 //Dioden-Icon; wird als Custom-Character erstellt

   用了最笨的方法 #define LCD_CHAR_OMEGA 130    128-255都试了,就是没有Ω符号。哎。累


#define LCD_CHAR_OMEGA 234

1.jpg
发表于 2012-8-20 17:22 | 显示全部楼层
回复  fat

第三个问题解决,可以显示两排文字了。
第二个问题解决。可以正常显示UF了
//Eigene Zeich ...
38293312 发表于 2012-8-20 12:00 https://www.yleee.com.cn/images/common/back.gif


恭喜解决了两个问题了, 真佩服您的毅力,128-255都试了
我当初是试了几个没找到,干脆就自定义一个算了,反正已经有一定自定义的二极管符号了,不在乎多一个
Ω的点阵数据在上面370楼已经发过了:
unsigned char OhmIcon[] EEMEM={14,17,17,17,27,10,10,27,0};    //Ω
在调用自定义二极管符号的地方顺便再写一句,把这个Ω符号也定义了就行。
发表于 2012-8-20 17:29 | 显示全部楼层
本帖最后由 38293312 于 2012-8-20 17:39 编辑

回复 375# fat

都慢慢试了一天了,呵呵!
    按以上方法定义了,但是程序里面这句如何掉用自定义点阵呢?
else
        {
            lcd_string(outval);
        }
        lcd_data(LCD_CHAR_OMEGA); //Omega f黵 Ohm
        goto end;


还有lcd-routines.h文件里面这句还须要吗?
#define LCD_CHAR_OMEGA 234 //Omega-Zeichen
发表于 2012-8-20 17:44 | 显示全部楼层
回复 375# fat


unsigned char vt[] EEMEM = "Vt=";
unsigned char mV[] EEMEM = "mV";
unsigned char Anode[] EEMEM = "A=";
unsigned char Gate[] EEMEM = "G=";
unsigned char TestTimedOut[] EEMEM = "Time out!";
unsigned char DiodeIcon[] EEMEM = {4,31,31,14,14,4,31,4,0}; //Dioden-Icon
unsigned char OhmIcon[] EEMEM= {14,17,17,17,27,10,10,27,0};    //Ω 自定义在最后这项。


else
        {
            lcd_string(outval);
        }
        lcd_eep_string(OhmIcon); //Omega f黵 Ohm
        goto end;



结果显示为:
1.jpg
发表于 2012-8-21 07:39 | 显示全部楼层
回复  fat


unsigned char vt[] EEMEM = "Vt=";
unsigned char mV[] EEMEM = "mV";
unsigned char A ...
38293312 发表于 2012-8-20 17:44 https://www.yleee.com.cn/images/common/back.gif


在lcd-routines.h中将这一句中的234改为1
#define LCD_CHAR_OMEGA 234
改为
#define LCD_CHAR_OMEGA 1   

然后在main.c中定义二极管符号下面添加Ω的点阵数据:
unsigned char OhmIcon[] EEMEM={14,17,17,17,27,10,10,27,0};    //Ω

然后在主程序中下面的位置添加红色的语句:
LCDLoadCustomChar();
lcd_eep_string(DiodeIcon);
lcd_command(0x48);
lcd_eep_string(OhmIcon);


应该就OK了。
发表于 2012-8-21 18:51 | 显示全部楼层
回复 378# fat


    非常感谢FAT老师安你的方法,现在都能正常显示欧姆标示了。
发表于 2012-8-21 19:39 | 显示全部楼层
能不能提供一下修改后的程序?

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-10 11:53 , Processed in 0.055131 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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