矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: xjw01

适合业余爱好者DIY的高精度数字电桥

  [复制链接]
     
发表于 2011-11-4 21:28:26 | 显示全部楼层
顶!等为造福矿友的的人出套件!
回复 支持 反对

使用道具 举报

发表于 2011-11-5 11:42:06 | 显示全部楼层
是不是先统计一下有多少坛友想要?
临渊羡鱼,不如退而结网。我牵头统计吧。诸位按以下顺序填写自己的信息,好吗?
论坛ID,真实姓名,手机号码,收货地址,需要数量。各段间用逗号隔开,PM我。
我建一个Excel表,把信息导进去以免重输错误。以后有哪位坛友牵头搞套件,我把这个Excel表再交给他。

为了避免误会,先说说我的基本情况:在下福建永安人氏,退休正好两年。独女在上海工作,故经常永安上海两地跑。在下不会泄露各位的信息,请放心。
回复 支持 反对

使用道具 举报

     
发表于 2011-11-5 12:18:35 | 显示全部楼层
是不是先统计一下有多少坛友想要?
临渊羡鱼,不如退而结网。我牵头统计吧。诸位按以下顺序填写自己的信息 ...
laodd 发表于 2011-11-5 11:42



    不错的提议,建议你可以去发一个帖子
回复 支持 反对

使用道具 举报

     
发表于 2011-11-5 16:16:02 | 显示全部楼层
很好的设计,很想仿造,但有几个问题,想请教楼主:
1 下臂Ra2、Ra3、Ra4阻值分别是多少?是不是上面还分别并联一个电容?
2 OP07和TL082能不能并到TL084中?以节省器件。
3 D7、D8是不是1N4148?
4 电路图左上角有一个100u电容,又用线短路了,怎么一回事?
5 数码管显示的限流电阻Rc1阻值多少?是不是用共阳LED?阴极未加驱动,若全亮8字,单片机灌电流会不会太大?
6 电子开关CD4052、CD4053已标注为K1-K8,单片机上的按键也标注为K1-K8,有点乱。
7 我想了解一下-5V的电流有多大?可以用别的办法来得到-5V吗?否则要有9V*2的变压器,很麻烦。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-11-5 17:04:09 | 显示全部楼层
本帖最后由 xjw01 于 2011-11-5 17:12 编辑

很好的设计,很想仿造,但有几个问题,想请教楼主:
1 下臂Ra2、Ra3、Ra4阻值分别是多少?是不是上面还分别并联一个电容?
答:这几个电阻的阻值,详见电路图左下脚的CD4052的接线图,分别为20.00,1.00k,10.00k,100.0k。

2 OP07和TL082能不能并到TL084中?以节省器件。
答:
并到一个TL084,也可以工作,但是对精度略有影响。主是要影响令点漂移。
程序的菜单7,可以设置零点漂移的改正值。用OP07,改正值是-2.0
用TL084,改正值是不确定的,因为每个084的失调不同,因此得自己调试。
还有一个问题就是,要求无信号时,检波输出是15mV以上静态偏置,084的失调大,有可能不满足这个条件,所以那个10电阻(op07输出端那里)可能得加大到20欧或更大
op07的失调可以忽略,所以免调试,直接采用-2.0即可。

3 D7、D8是不是1N4148?
答:除了4个1N4007外,其它二极管都是4148

4 电路图左上角有一个100u电容,又用线短路了,怎么一回事?

100uF就不需要了。

5 数码管显示的限流电阻Rc1阻值多少?是不是用共阳LED?阴极未加驱动,若全亮8字,单片机灌电流会不会太大?
答:Rc1是8个2.2k电阻
单片机总电流小于50mA,小于手册上要求的100mA(40针单片机),是安全的。
共阳LED

6 电子开关CD4052、CD4053已标注为K1-K8,单片机上的按键也标注为K1-K8,有点乱。
答:一个是男的,一个是女的,不会乱。

7 我想了解一下-5V的电流有多大?可以用别的办法来得到-5V吗?否则要有9V*2的变压器,很麻烦。
估计是15mA以下。那个7905基本没有温度升高。
没有合适的变压器,就用9V*1的变压器吧。
如果变压器功率偏大(如800mA的变压器),用8V的就可以了。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-11-6 11:16:28 | 显示全部楼层
本帖最后由 xjw01 于 2011-11-6 11:18 编辑

LC1602驱动程序,直接在这块单机上驱动,采用7条信号线驱动。
如果有须要使用LCD1602的,可以直接使用这段程序。
  1. #include <reg52.h>
  2. //==========================================================================
  3. // 项目:LCD1602 四线驱动程序
  4. // 设计要点:
  5. //     LCD1602 的运行速度慢,而单片机运行的速度快,因此容易因为速度不
  6. //     匹配造成调试失败。因此,调试之前应准确测试lcd_delay() 延时函数
  7. //     准确的延时量,如果不能满足注释中的要求,则应调整循次数。每步操
  8. //     作所需的延时量,按照数据手册指标指行,同时留下足够的时间余量。
  9. // 硬件连接:
  10. //     至少需要9条线,电源线2条,7条信号线。信号线详见程序中的接口定义。
  11. //     清注意对LCD1602比对的调节,否则无显示。
  12. // 设计:许剑伟,于莆田,2010.12
  13. //==========================================================================
  14. #define uchar unsigned char
  15. #define uint  unsigned int
  16. #define ulong  unsigned long
  17. sbit lcd_RS = P0^6; //数据命令控制位,0命令1数据
  18. sbit lcd_RW = P0^5; //读写位,0写1读
  19. sbit lcd_EN = P0^4; //使能位,下降沿触发
  20. sbit lcd_D4 = P0^3; //数据端口D4
  21. sbit lcd_D5 = P0^2; //数据端口D5
  22. sbit lcd_D6 = P0^1; //数据端口D6
  23. sbit lcd_D7 = P0^0; //数据端口D7
  24. //==========================================================================
  25. void lcd_delay(int n){ //LCD专用延时函数
  26.   //32MHz钟频下,约循环3000次延迟1毫秒
  27.   int i,j;
  28.   if(n==-1) { for(i=0;i< 30;i++); return; } //10us
  29.   if(n== 0) { for(i=0;i<150;i++); return; } //50us
  30.   for (i=0;i<n;i++) //n毫秒
  31.    for (j=0;j<3000;j++);
  32. }
  33. //==========================================================================
  34. void lcd_B(char f, uchar c, char t){ //控制四线式接口LCD的7个脚
  35.   //f=0写命令字, f=1写RAM数据, f=2读RAM数据, f=3读RAM数据
  36.   lcd_EN = 0;
  37.   lcd_RS = f%2;
  38.   lcd_RW = f/2;
  39.   //移入高四位
  40.   lcd_D4 = c & 16;
  41.   lcd_D5 = c & 32;
  42.   lcd_D6 = c & 64;
  43.   lcd_D7 = c & 128;
  44.   lcd_EN = 1;  lcd_delay(-1);  lcd_EN = 0; //使能脉冲
  45.   //lcd_delay(0);
  46.   //移入低四位
  47.   lcd_D4 = c & 1;
  48.   lcd_D5 = c & 2;
  49.   lcd_D6 = c & 4;
  50.   lcd_D7 = c & 8;
  51.   lcd_EN = 1;  lcd_delay(-1);  lcd_EN = 0; //使能脉冲
  52.   lcd_delay(t);  //不同的命令,响应时间不同,清零命令需要2ms
  53. }
  54. //==========================================================================
  55. void lcd_init(){ //LCD1602 初始化
  56.   //启动四线模式须势行9个步骤,初始化所须耗时较长,约65ms,时限不可减
  57.   lcd_delay(20); //启动lcd之前须延时大于15ms,直到VDD大于4.5V
  58.   lcd_B(0, 0x30, 9); //置8线模式,须延时大于4.1ms
  59.   lcd_B(0, 0x30, 5); //置8线模式,须延时大于100us
  60.   lcd_B(0, 0x30, 5); //置8线模式,手册中未指定延时
  61.   lcd_B(0, 0x20, 5); //进入四线模式
  62.   lcd_B(0, 0x28, 5); //四线模式双行显示
  63.   lcd_B(0, 0x0C, 5); //打开显示器,关闭光标
  64.   lcd_B(0, 0x80, 5); //RAM指针定位
  65.   lcd_B(0, 0x01, 5); //启动清屏命初始化LCD
  66. }
  67. //==========================================================================
  68. //=========================几个功能常用函数=================================
  69. void lcd_cls()         { lcd_B(0, 0x01, 2);    } //清屏
  70. void lcd_cur0()        { lcd_B(0, 0x0C, 0);    } //隐藏光标
  71. void lcd_goto1(uchar x){ lcd_B(0, x+0x80, 0);  } //设置DDRAM地址,第1行x位
  72. void lcd_goto2(uchar x){ lcd_B(0, x+0xC0, 0);  } //设置DDRAM地址,第2行x位
  73. void lcd_putc(uchar d) { lcd_B(1, d, 0);       } //字符输出
  74. void lcd_puts(uchar *s){ for(; *s; s++) lcd_B(1,*s,0); } //字串输出
  75. //==========================================================================
  76. void main(){
  77.   char i;
  78.   lcd_init(); //初始化LCD
  79.   lcd_cur0(); //隐藏光标
  80.   while(1){
  81.     lcd_cls(); //清屏
  82.         lcd_goto1(0);
  83.         for(i=0;i<16;i++) lcd_putc(238+i); //字符输出测试
  84.         lcd_goto2(0);
  85.     lcd_puts("xjw01,PuTian"); //字串输出测试
  86.     lcd_delay(1000);
  87.   }
  88. }
  89. //==========================================================================
复制代码
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-11-6 11:32:31 | 显示全部楼层
LCD1602 的数据手册版本多,也非常乱。
查了几个pdf
其中,有个“SCM 1602A LCM 使用说明书”,指出了启动时序
还有一个微雪电子的“waveshare LCD1602”数据手册,写明了RAM、ROM地址,4线操作时序、各种操作的延时量要求。
回复 支持 反对

使用道具 举报

     
发表于 2011-11-6 20:52:59 | 显示全部楼层
有成品买吗期待。。。。。。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-11-6 22:00:17 | 显示全部楼层
样图.jpg
样图2.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-11-6 22:13:35 | 显示全部楼层
本帖最后由 xjw01 于 2011-11-6 22:15 编辑

本想把源代码发上来,不过,程序长度超过15k,论坛不准发上来。
LCD1602做的LCR表,显示效果比较糟糕,所以不打算对它做更仔细的改进。因此,我觉得没有必要发上来,如果需要的坛友多的话,就打包后贴出来,改进工作,请各自动手吧。
本想用LCD1602解决多参数同时显示问题。
等程序全部改写完后,才突然发现,2行(32字)还是不够用。用这个显示器,是治标不治本,还是无法把全部参数显示出来,得用按键分屏显示。
从显示效果来看,远不如LED效果好。LED的显示效果,比万用表显示效果好,LED响应快,字体也清晰。
LCD1602,响应慢,字体也不清晰,而且字体小,主参数显示也不突出(因为它没有字号设置功能)。好处是,单位显示比较直观。
LCD对视角敏感,当字体小时,视角也偏差,显示什么东西都看不清楚。
回复 支持 反对

使用道具 举报

发表于 2011-11-6 23:04:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2011-11-6 23:36:11 | 显示全部楼层
好极了,终于有人出来了。
建议套件分为几个档次:
1、全套散件(包括外壳、安装螺丝等等,购买这样的套件,所有的零件和材料都齐了)
2、大散件(包括印制板及板上面的元件,不包括结构件)
3、主要件(仅有印制板及IC、难以购买到的元件)
回复 支持 反对

使用道具 举报

发表于 2011-11-7 00:18:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-11-7 07:31:45 | 显示全部楼层
我不会用protel99se,所以我直接用sprint layout画图打样的。
如果改板的话,如改成小板子话,那几个要求高精度的电阻,建议还是用直插的,这样电阻的精度容易控制。
如果批量的话,单片机不要用STC12C5A60S2,那是64k闪存,远远用不完,比较浪费。
PCB板文件与程序文件,至少保留一样不公开,如果这两个东西全部公开,别人可以不费力气直接仿制,这样不小心会造成出套件的人积货。
用4LED还是8LED或是LCD1602,这个最好再考虑一下。
个人觉得4LED效果比LCD1602好,只是操作比较麻烦一点。用LCD1602,如果程序再改进一下,也可以显示大部分内容,也比较直观,这样,按键只需要3个或5个,机壳制作就更简洁,不易误操作。但显示效果不如4LED
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-11-7 07:33:17 | 显示全部楼层
不知尺寸要示是多少的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-5-8 07:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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