搜索
bottom↓
回复: 85

计划用7135做个多用表,画了表头PCB部分,想用S52+1602显示,可是不会编程。。。。

[复制链接]

出0入0汤圆

发表于 2009-12-16 16:32:20 | 显示全部楼层 |阅读模式
常用的DT9103A挂了,计划用7135做个多用表,画了表头PCB部分,想用S52+1602显示,可是不会编程。。。。,想做成自动量程的,1602第一行显示测量的数值和类别,第二行显示别的参数,带串口和PC通讯,能把测量的电压、电流、电阻等在PC上记录。

(原文件名:7135PCB.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2009-12-16 16:35:26 | 显示全部楼层
busy一根线给单片机就行了

出0入0汤圆

 楼主| 发表于 2009-12-16 16:50:10 | 显示全部楼层
哦,知道这个方法,可是不会写程序,基准电压用的MC1403,COCLK用的4060+4M晶振分频为125KH,或选择板上提供—5V电压的7404的约125KH的时钟。

出0入42汤圆

发表于 2009-12-16 17:26:44 | 显示全部楼层
我能提供程序,51/AVR都有

出0入0汤圆

 楼主| 发表于 2009-12-16 21:33:59 | 显示全部楼层
哦?收费的还是.....?

出0入0汤圆

 楼主| 发表于 2009-12-16 21:38:50 | 显示全部楼层
有时间把全部电路图画一下传上来.请高手指点。

出0入42汤圆

发表于 2009-12-16 21:49:07 | 显示全部楼层
学生用于学习免费提供,用于商业不提供或收费

出0入0汤圆

 楼主| 发表于 2009-12-16 22:16:24 | 显示全部楼层
当然是自用,顺便学习,望能指导,硬件能自己搞定.程序不行,买了套51学习板一直没时间学,

出0入0汤圆

发表于 2009-12-16 22:16:46 | 显示全部楼层
自动量程还要加档位切换吧。

出0入0汤圆

 楼主| 发表于 2009-12-16 22:25:48 | 显示全部楼层
是呀,计划用继电器切换量程,S52+1602显示,显示5 1/2.精度4 1/2,带串口通讯,测量的结果能上传到电脑,用简单的串口调试程序就能接收。

出0入0汤圆

发表于 2009-12-16 22:30:48 | 显示全部楼层
自己做吧,多简单的事啊,

年轻人,多练习。

出0入0汤圆

 楼主| 发表于 2009-12-16 22:43:10 | 显示全部楼层
呵呵,对于你来说很简单,我连简单的流水灯的汇编都不会,更别说1602了。

出0入42汤圆

发表于 2009-12-16 23:00:16 | 显示全部楼层
在公司电脑,明天传上来。
如果连流水灯都不会,传上来作用也不大。

出0入0汤圆

 楼主| 发表于 2009-12-16 23:09:25 | 显示全部楼层
多谢了,十分感激,改改程序的引脚定义还会的,仿制成功过杜样的12864的万年历,M8数控电源都为了画PCB方便简单的改过引脚。

出0入42汤圆

发表于 2009-12-16 23:15:12 | 显示全部楼层
我的程序没有用1602,我传上ICL7135的读取代码,其它的你得自己改。

出0入0汤圆

 楼主| 发表于 2009-12-17 17:20:09 | 显示全部楼层
整了个程序,可是编译不了,高手给帮忙看看:
/*           SVM1601A (16x1)接线图
=================================================================
连接线图:   MCU-----89S52
            DB0-----P2.0     DB4-----P2.4     RS-------P0_1
            DB1-----P2.1     DB5-----P2.5     RW-------P0_2
            DB2-----P2.2     DB6-----P2.6     E--------P0_3
            DB3-----P2.3     DB7-----P2.7     
            
            VLCD接1K电阻到GND

=================================================================*/
/*           ICL7135接线图
=================================================================
连接线图:   MCU-----89S52
            /STR----P3.2(/INT0)
            B1-----P0.4      R/H------P0.0     BUSY----P3.6
            B2-----P0.5      POL------P1.5
            B4-----P0.6      OVER-----P1.6
            B8-----P0.7      UNDER----P1.7   

================================================================*/

DARPOLE  EQU  60H           ;正负号地址
DARSTART EQU  61H           ;第一数位
DAREND   EQU  67H           ;结束位
INTNUM   EQU  68H           ;用于判断中断次数的寄存器
VGRADE   EQU  69H           ;档位值
DPOINT   EQU  6AH           ;小数点位
BEGIN    EQU  6BH           ;显示数据标志位
ADSTART  BIT  P0.0          ;A/D转换使能

RS BIT P0.1
RW BIT P0.2
E  BIT P0.3

ORG 0000H
SJMP START
ORG 0003H
LJMP INTUSE

START: SETB ADSTART          ;单片机电压表
       MOV INTNUM,#00H       ;清中断次数
       MOV SCON,#50H         ;UART工作在MODE1
       MOV TMOD,#20H         ;TIMER1工作在MODE2
       MOV TH1,#0A0H         ;波特率300
       SETB TR1              ;启动记时器1
       MOV IE,#10000001B     ;中断EA使能,EX0使能       
       MOV SP,#70H           ;设置堆栈
       MOV BEGIN,#00H
       MOV P2,#01H             ;清屏
       CALL ENABLE                ;写到指令寄存器
       MOV P2,#38H             ;功能设定(8位,2行,5*7点阵)智表设计P236
       CALL ENABLE      
       MOV P2,#00001100B     ;显示器ON,光标OFF,闪烁OFF
       CALL ENABLE      
       MOV P2,#06H             ;I/D=1,DDRAM地址加1,显示器OFF
       CALL ENABLE      
  S1 : MOV P2,#80H           ;第一行字符起始地址
       CALL ENABLE
       JNB P1.6,S2
       MOV DPTR,#TABLE0
       AJMP S3
  S2 : MOV DPTR,#TABLE1      ;显示'Voltage'字符
  S3 : CALL WRITE1   
       MOV A,BEGIN
       CJNE A,#01H,S1
       MOV P2,#0C0H          ;第二行字符起始地址
       CALL ENABLE           
       CALL WRITE2           ;显示A/D采样的数据
       CALL SERCOM           ;串行通讯
       AJMP S1     
         
ENABLE:CLR RS                ;RS=0,写到指令寄存器
       CLR RW                ;R/W=0
       SETB E                ;E  1→0 使能
       CALL DELAY            ;延时2.5ms
       CLR E                 ;禁止
       RET

WRITE1:MOV R1,#00H           ;输出字符的子程序
   A1: MOV A,R1
       MOVC A,@A+DPTR
       CJNE A,#00H,A2
       RET
   A2: CALL WRITE3           ;写到LCD ROM的子程序
       INC R1
       AJMP A1

WRITE2:MOV R0,#60H           ;输出数据的子程序,数据区地址  
   A3: MOV A,@R0
       CALL WRITE3           ;写到LCD ROM的子程序   
       INC R0
       CJNE R0,#DAREND,A3
       MOV R0,#60H
       RET

WRITE3:MOV P2,A              ;写到LCD ROM的子程序
       SETB RS
       CLR RW
       SETB E
       CALL DELAY            ;延时2.5ms
       CLR E
       RET

SERCOM:MOV R1,#00H           ;输出字符的子程序
  A11: MOV A,R1
       MOVC A,@A+DPTR
       CJNE A,#00H,A12
       AJMP A14
  A12: MOV SBUF,A            ;写到LCD ROM的子程序
  A16: JBC TI,A15
       AJMP A16           
  A15: INC R1
       AJMP A11
  A14: MOV R0,#60H           ;输出数据的子程序,数据区地址  
  A4:  MOV A,@R0
       MOV SBUF,A
  A6:  JBC TI,A5
       AJMP A6
  A5:  INC R0
       CJNE R0,#DAREND,A4
       RET

DELAY:MOV R4,#05H           ;延时2.5ms子程序              
   D1: MOV R5,#0FFH
       DJNZ R5,$
       DJNZ R4,D1
       RET

/*             中断寄存器使用情况
=================================================================
            MCU-----89S52
            R0 ----- 存数首地址         P1.0 = 0 ----- 2V档位
            R2 ----- 档位值             P1.1 = 0 ----- 20V档位
            R3 ----- 定义小数点位       P1.2 = 0 ----- 200V档位
            R4 ----- 消隐标志位         P1.3 = 0 ----- 2000V档位

=================================================================*/
INTUSE:                         ;中断子程序
       CLR EA
       PUSH ACC                 
       PUSH PSW   
       SETB PSW.3               ;切换寄存器组1
       MOV A,#00H               ;#00H,判断是否首次!
       CJNE A,INTNUM,NEXT       ;是首次中断吗?非则转NEXT
       MOV R0,#DARSTART         ;数据区首地址  
       MOV R2,#00H              ;清档位值
       MOV R3,#00H              ;清小数点位
       MOV R4,#01H              ;置消隐标志位
       JNB P1.6,K0
       SETB P1.4
       AJMP K1
  K0:  CLR P1.4
  K1:  JB P1.5,POL              ;置正负号  
       MOV DARPOLE,#2DH         ;负显示负号
       AJMP K2
  POL: MOV DARPOLE,#20H         ;正则不显示
  K2:  MOV A,P0                 ;读P0口,读7135输出的BCD码
       ANL A,#0F0H              ;取高四位
       SWAP A
       ADD A,#30H   
       SETB P1.0                ;判档位
       SETB P1.1
       SETB P1.2
       SETB P1.3
       JNB P1.0,IA1             ;是2V档吗?
       INC R2
       JNB P1.1,IA1             ;是20V档吗?
       INC R2
       JNB P1.2,IA1             ;是200V档吗?
       INC R2  
IA1:  XCH A,R3                 ;定义小数点位
       MOV A,R2
       ADD A,#62H
       XCH A,R3
       MOV DPOINT,R3
       CJNE R2,#00H,IB0         ;是2V档位
       AJMP IB1
  IB0: CJNE A,#30H,IB1          ;A是零吗?
       AJMP IB2
  IB1: MOV R4,#00H              ;清消隐标志位
       AJMP IB3
  IB2: MOV R4,#01H              ;置标志位
       ADD A,#70H      
  IB3: MOV @R0,A
       INC R0               
       INC INTNUM               ;中断次数加1
RETN: POP PSW
       POP ACC
       SETB EA
       RETI
NEXT: MOV A,R0
       CJNE A,DPOINT,NEXT3      ;置小数点
       MOV @R0,#2EH
       INC R0
NEXT3:MOV A,P0                 
       ANL A,#0F0H
       SWAP A
       ADD A,#30H
       CJNE A,#30H,IC1
       CJNE R4,#01H,IC2
       CALL REMOVE
       AJMP IC2
  IC1: MOV R4,#00H   
  IC2: MOV @R0,A               ;送到数据区
       INC R0
       INC INTNUM
       MOV A,R0
       CJNE A,#DAREND,RETN     ;够五次了吗?
       MOV INTNUM,#00H         ;清中断次数
       MOV BEGIN,#01H
       SJMP RETN

REMOVE:MOV R1,INTNUM           ;消隐子程序
       CJNE R1,#01H,IEE1       ;是第二次中断吗?
       CJNE R2,#01H,IEE2       ;是20V档吗?
       MOV R4,#00H
       RET
  IEE2:ADD A,#70H   
       RET
  IEE1:CJNE R1,#02H,RETN2      ;是第三次中断吗?
       CJNE R2,#03H,RETN2      ;是2000V档吗?
       ADD A,#70H
       MOV R4,#00H
RETN2:RET  
TABLE0:DB 'Over!!!:',00H       ;显示字符,00H结束位
TABLE1:DB 'Voltage:',00H       ;显示字符,00H结束位
END

出10入0汤圆

发表于 2009-12-17 18:39:06 | 显示全部楼层
【6楼】 huwuzhao 前方

如何证明是学生呢?

出0入0汤圆

 楼主| 发表于 2009-12-18 00:05:53 | 显示全部楼层
我不是学生,也不是搞设计的,只是业余爱好。对了网上公开的7135读取码很多........

出0入0汤圆

发表于 2009-12-18 15:23:08 | 显示全部楼层
既然连流水灯都不会还用啥单片机呢。用7211(驱动LCD)或者直接驱动LED就好了嘛。网上例子遍地,不想自己搞,我印象中taobao上也有现成的散件呀

出0入42汤圆

发表于 2009-12-18 15:52:39 | 显示全部楼层
我有C的,要我就上传。

出0入0汤圆

发表于 2009-12-18 15:57:53 | 显示全部楼层
现在电流表电压表拆开来看大都用这些没有单片机的东西,性能还稳定!

出0入42汤圆

发表于 2009-12-18 16:08:07 | 显示全部楼层
以前同事给的。汇编代码
                ;*********************************************
                ;原有电压表应用在胡工手工焊板上
        ;************************************
                RS    EQU    P2.5
                RW    EQU    P2.6
                E     EQU    P2.7
                DAT   EQU    P0

       ORG 0000H
           JMP START
           ORG 30H

START: NOP
       MOV P0,#00001111B
       MOV TMOD,#00000001B
LOOP:
      LCALL ADC
           MOV R6,TH0
           MOV R7,TL0

          ;把数据减去20002
           CLR C
       MOV A,R7
           SUBB A,#22H
           MOV R7,A

           MOV A,R6
           SUBB A,#4EH
           MOV R6,A


    ;把结果右移一位

       CLR C
   
       MOV A,R6
       RRC A
           MOV R6,A

           MOV A,R7
           RRC A
           MOV R7,A

LOOP_1:LCALL HB2        ;二进制数转化为BCD码

           MOV A,R3
           ANL A,#00001111B
           MOV 40H,A
           MOV A,R4
           ANL A,#11110000B
           SWAP A
           MOV 41H,A
           MOV A,R4
           ANL A,#00001111B
           MOV 42H,A
           MOV A,R5
           ANL A,#11110000B
           SWAP A
           MOV 43H,A
           MOV A,R5
           ANL A,#00001111B           ;44H这位数丢失
           MOV 44H,A

LOOP_2:LCALL DISP
           JMP LOOP
                               

ADC:    JNB P3.2,ADC
        MOV TL0,#0
                MOV TH0,#0
                SETB TR0
WH:     JB P3.2,WH
        CLR TR0

                RET

        ;双字节二进制数转化为双字节BCD码整数
HB2:CLR        A       ;        ;BCD码初始化
        MOV        R3,A
        MOV        R4,A
        MOV        R5,A
        MOV        R2,#10H     ;        ;转换双字节十六进制整数
HB3:        MOV        A,R7    ;        ;从高端移出待转换数的一位到CY中
        RLC        A
        MOV        R7,A
        MOV        A,R6
        RLC        A
        MOV        R6,A
        MOV        A,R5          ;        ;BCD码带进位自身相加,相当于乘2
        ADDC        A,R5
        DA        A             ;        ;十进制调整
        MOV        R5,A
        MOV        A,R4
        ADDC        A,R4
        DA        A
        MOV        R4,A
        MOV        A,R3
        ADDC        A,R3
        MOV        R3,A           ;        ;双字节十六进制数的万位数不超过6,不用调整
        DJNZ        R2,HB3     ;        ;处理完16bit
        RET        
                   
                ;显示实际电压
DISP:   NOP
        MOV DAT,#01H ;清屏
        CALL ENABLE
        MOV DAT,#38H ;显示功能
        CALL ENABLE
        MOV DAT,#0FH ;显示开关控制
        CALL ENABLE
        MOV DAT,#06H ;+1
        CALL ENABLE

        MOV DAT,#81H;第一行的位置
        CALL ENABLE
        MOV R1,#17
                CALL WRITE1
                MOV DAT,#83H
                CALL ENABLE

        MOV R1,33H
        CALL WRITE1;到TABLE1取码

        MOV R1,#10
        CALL WRITE1
        MOV R1,32H
        CALL WRITE1

                MOV R1,31H
                CALL WRITE1

        MOV  R1,30H
        CALL WRITE1

                MOV DAT,#89H
                CALL ENABLE
                MOV R1,#20
                CALL WRITE1

        MOV R1,37H
        CALL WRITE1;到TABLE1取码

        MOV R1,#10
        CALL WRITE1
        MOV R1,36H
        CALL WRITE1

                MOV R1,35H
                CALL WRITE1

        MOV  R1,34H
        CALL WRITE1

                MOV DAT,#0C6H
                CALL ENABLE

        MOV R1,40H
        CALL WRITE1
                MOV R1,#10
                CALL WRITE1
        MOV R1,41H
        CALL WRITE1
                MOV R1,42H
                CALL WRITE1
        MOV  R1,43H
        CALL WRITE1                 
                MOV R1,44H
                CALL WRITE1
                                                                                                               
                MOV R1,#22
                CALL WRITE1
                MOV R1,#33
                CALL WRITE1

                MOV DAT,#8FH
                CALL ENABLE
                MOV R1,#22
                CALL WRITE1
                RET

                ;显示最大参数子程序
DISP_0:  NOP
        MOV DAT,#01H ;清屏
        CALL ENABLE
        MOV DAT,#38H ;显示功能
        CALL ENABLE
        MOV DAT,#0FH ;显示开关控制
        CALL ENABLE
        MOV DAT,#06H ;+1
        CALL ENABLE

        MOV DAT,#83H;第一行的位置
        CALL ENABLE
        MOV R1,#17
                CALL WRITE1
                MOV DAT,#86H
                CALL ENABLE

        MOV R1,33H
        CALL WRITE1;到TABLE1取码

        MOV R1,#10
        CALL WRITE1
        MOV R1,32H
        CALL WRITE1

                MOV R1,31H
                CALL WRITE1

        MOV  R1,30H
        CALL WRITE1

                MOV DAT,#0C3H
                CALL ENABLE
                MOV R1,#20
                CALL WRITE1

                MOV DAT,#0C6H
                CALL ENABLE

        MOV R1,37H
       CALL WRITE1;到TABLE1取码

        MOV R1,#10
        CALL WRITE1

        MOV R1,36H
        CALL WRITE1

                MOV R1,35H
                CALL WRITE1
        MOV  R1,34H
        CALL WRITE1
      
           CJNE R0,#33H,DISP_01
           MOV DAT,#86H
           CALL ENABLE
           JMP DISP_03
DISP_01:CJNE R0,#32H,DISP_02
       MOV DAT,#88H
           CALL ENABLE
           JMP DISP_03
DISP_02:CJNE R0,#31H,DISP_04
        MOV DAT,#89H
        CALL ENABLE
                JMP DISP_03
DISP_04:CJNE R0,#30H,DISP_05
        MOV DAT,#8AH
        CALL ENABLE
                JMP DISP_03

DISP_05:CJNE R0,#37H,DISP_06
           MOV DAT,#0C6H
           CALL ENABLE
           JMP DISP_03
DISP_06:CJNE R0,#36H,DISP_07
       MOV DAT,#0C8H
           CALL ENABLE
           JMP DISP_03
DISP_07:CJNE R0,#35H,DISP_08
        MOV DAT,#0C9H
        CALL ENABLE
                JMP DISP_03
DISP_08:NOP
        MOV DAT,#0CAH
        CALL ENABLE
       
DISP_03:NOP
                RET

ENABLE:CLR RS ;送命令
       CLR RW
       CLR E
       CALL DELAY_3
       SETB E
       RET
WRITE1:MOV DPTR,#TABLE1
       MOV A,R1
       MOVC A,@A+DPTR
       CALL WRITE2 ;显示到lcd
       RET

WRITE2:MOV DAT,A ;显示
       SETB RS
       CLR RW
       CLR E
       CALL DELAY_3
       SETB E
       RET

DELAY_3: MOV R4,#1
D1:    MOV R5,#80H
       DJNZ R5,$
       DJNZ R4,D1
       RET

DELAY:  MOV     R6,#0FFH
        DJNZ    R6,$
        DJNZ    R7,DELAY
        RET

TABLE1:DB"0123456789.gZJL:MHXMLN NOSIGNALABV"

       END

出0入0汤圆

 楼主| 发表于 2009-12-18 19:20:06 | 显示全部楼层
谢谢了,慢慢研究,等做好了传上资料,虽然淘宝有套件,但是还是喜欢自己动手,没有单片机也很稳定,有单片机更灵活.

出0入0汤圆

发表于 2009-12-18 19:31:48 | 显示全部楼层
其实DIY万用表继电器切换是很好的选择,绝对有最好的开关特性,就是做8位半的表都没问题,我也一直想自己做个万用表,就是用继电器切换档位。
继电器切换档位不好做,质量好的体积小的继电器价格很贵,都得5块钱以上,尤其有些干簧管继电器就非常好,体积小噪音小,如果想少花钱就用常用的继电器,宏发的乔乐的都有1块多钱的,电流倒是很大,就是噪音很大,换挡时吸合声音大,不过不嫌弃吵也可以,我就想用这种继电器做,还有体积自然会很大,就得做成台式的,体积得有HP34401一样大。

出0入0汤圆

 楼主| 发表于 2009-12-24 17:10:46 | 显示全部楼层
把7135的热转印热转印打印ourdev_518270.rar(文件大小:34K) (原文件名:7135.rar)

7135热转印 (原文件名:7135热转印.JPG)

出0入0汤圆

发表于 2009-12-24 17:36:00 | 显示全部楼层
用并行口太占IO了,

利用busy和7135的CLK做最简单了。busy接单片机外部中断,clk接定时器外部时钟输入。 高电平期间开始计数。 最终结果减一个常数就可以了。 不过会有一个count的误差。

出0入0汤圆

 楼主| 发表于 2009-12-24 20:11:29 | 显示全部楼层
呵呵,谢谢老许,可以开源,彻底都没问题,只能完成硬件部分,水平有限,只能东拼西凑的,让高手见笑了.纯属业余爱好.目前只完成了自动电压测量,显示部分还没做,用数码管太麻烦.1602还不会写程序,时间也比较少,抽时间把电路图和程序流程图画一下传上来.

出0入0汤圆

发表于 2009-12-24 22:33:38 | 显示全部楼层
我也上传个1602的测试程序,有空你自己改成自己要用的东西
//*********------09.03.01--wlt-------******
//**********Character LCM screen test******
//*****************************************
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define Data_Port P0
uchar code DATA[]={0xff,0xff,0x00,0x00,0xff,0x00,0x00,0xff,
                   0x55,0x55,0xaa,0xaa,0x55,0xaa,0xaa,0x55};

sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;

sbit NEXT=P1^3;
sbit LAST=P1^4;
sbit AUTO=P1^5;

uchar num,k;
uchar i,j;

void init();
void delay1ms(uint z);
void write_com(uchar com);
void write_data(uchar date);
void show();
void displaydata();
void key();

void main()
{
        init();
        show();
        displaydata();// written characters Library function
        while(1)
        {       
                key();       
        }
}

void key()
{
    if(NEXT==0) //The next screen               
        {
                  delay1ms(30);
                if(NEXT==0)
                {
                      k++;
                        if(k>9)
                                k=1;
                        while(!NEXT);
                        write_com(0x01);//Clean screen
                        show();
                }
        }
    if(LAST==0) //The last screen               
        {
                  delay1ms(30);
                if(LAST==0)
                {
                      k--;
                        if(k<1)
                                k=9;
                        while(!LAST);
                        write_com(0x01);//Clean screen
                        show();
                }
        }
    if(AUTO==0) //Automatically switch the screen       
        {
                  delay1ms(30);
                if(AUTO==0)
                {
                        delay1ms(30);
                        while(!AUTO);
                        write_com(0x01);//Clean screen
                        for(k=1;k<11;k++)
                        {
                                show();
                                delay1ms(2000);       
                        }
                }
        }       
}

void show()
{
        switch(k)
        {
                case 1://Special characters
                        write_com(0x80);
                        for(num=0;num<40;num++)
                                write_data(0x41+num);
                        write_com(0x80+0x40);
                        for(num=0;num<40;num++)          
                                write_data(0x61+num);
                        break;
                case 2://All black
                        write_com(0x80);//display first line
                        for(i=0;i<40;i++) write_data(0x00);
                        write_com(0xc0);//display scecond line
                        for(i=0;i<40;i++) write_data(0x00);
                        break;
                case 3://All white
                        write_com(0x80);
                        for(i=0;i<40;i++) write_data(0x01);
                        write_com(0xc0);
                        for(i=0;i<40;i++) write_data(0x01);
                        break;
                case 4://Single Common line
                        write_com(0x80);
                        for(i=0;i<40;i++) write_data(0x02);
                        write_com(0xc0);
                        for(i=0;i<40;i++) write_data(0x02);
                        break;
                case 5://Double Common line
                        write_com(0x80);
                        for(i=0;i<40;i++) write_data(0x03);
                        write_com(0xc0);
                        for(i=0;i<40;i++) write_data(0x03);
                        break;
                case 6://Single Segment lines
                        write_com(0x80);
                        for(i=0;i<40;i++) write_data(0x04);
                        write_com(0xc0);
                        for(i=0;i<40;i++) write_data(0x04);
                        break;
                case 7://Double Segment lines
                        write_com(0x80);
                        for(i=0;i<40;i++) write_data(0x05);
                        write_com(0xc0);
                        for(i=0;i<40;i++) write_data(0x05);
                        break;
                case 8://Snowflake 1
                        write_com(0x80);
                        for(i=0;i<40;i++) write_data(0x06);
                        write_com(0xc0);
                        for(i=0;i<40;i++) write_data(0x06);
                        break;
                case 9://Snowflake 2
                        write_com(0x80);
                        for(i=0;i<40;i++) write_data(0x07);
                        write_com(0xc0);
                        for(i=0;i<40;i++) write_data(0x07);
                        break;
                case 10://Special characters
                        write_com(0x80);
                        for(num=0;num<40;num++)
                                write_data(0xa1+num);
                        write_com(0x80+0x40);
                        for(num=0;num<40;num++)
                                write_data(0xc9+num);
                        break;
        }
}
void displaydata()
{
        uchar i,j;
        write_com(0x40);//set cgram
        for(i=0;i<16;i+=2)
        {
                for(j=0;j<4;j++)
                {
                        write_data(DATA);               
                        write_data(DATA[i+1]);
                }   
        }
}

void init()//Initialization Functions
{
        EN=0;
        k=1;
        write_com(0x38);//Set16*2,5*7,8-bit data interface
        write_com(0x0c);//Open show,Don't show Cursor and Blinking cursor
        write_com(0x06);//Automatic cursor 1,All screen display will not move
        write_com(0x01);//Clean screen                       
}
void delay1ms(uint z)//delay 1ms Functions
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=50;y>0;y--);       
}
void write_com(uchar com)//Writing directive Functions
{
        RS=0;
        RW=0;
        Data_Port=com;
        delay1ms(1);
        EN=1;//Give EN a high pulse
        delay1ms(1);
        EN=0;
}
void write_data(uchar date)//Write date function
{
        RS=1;
        RW=0;
        Data_Port=date;
        delay1ms(1);
        EN=1;//Give EN a high pulse
        delay1ms(1);
        EN=0;
}

出0入0汤圆

发表于 2009-12-24 22:49:52 | 显示全部楼层
【26楼】 bozai 章其波
利用busy和7135的CLK做最简单了。busy接单片机外部中断,clk接定时器外部时钟输入。 高电平期间开始计数。 最终结果减一个常数就可以了。 不过会有一个count的误差。


------------

我试过用 BUSY 读 7135,和利用 STR 读 7135 的 D0-D3,结果不稳定,有时和后者一致,有时比后者多一个计数。后者读出值和数码管上完全一致。你说的是不是这个现象?




(原文件名:PICT1835.jpg)

出0入0汤圆

 楼主| 发表于 2009-12-25 08:01:47 | 显示全部楼层
用单片机做7135的转换和显示,BCD要比BUSY的稳定,精确.

出0入0汤圆

发表于 2009-12-25 09:19:46 | 显示全部楼层
【30楼】 lilith
  是的,我用ATmega8 外部中断+Timer1外部输入。 发现提高AVR工作频率会稳定些(应该跟Timer1 外部输入采样有关)。 另外需要减得那个常数并不是手册上的10000

不晓得是7135的问题,还是程序的问题。 不过还好,跟LED的显示也就是一个字的误差。 这样省IO口啊。

出0入0汤圆

 楼主| 发表于 2009-12-25 13:17:50 | 显示全部楼层
杰龙电子的把7135做成5 1/2的.不知道有没有意义.从他们网站给的数据还可以.用的就是直接读取busy.

出0入663汤圆

发表于 2009-12-25 14:20:52 | 显示全部楼层
lilith 的电路有个与门在BUSY低电平的时候把CLK截了,这样按道理中断响应时间不会影响计数值。

出0入0汤圆

发表于 2009-12-25 18:45:35 | 显示全部楼层
用8952的ALE脚脉冲分频作CLK,只要BUSY脚就行了,同步运行不知能消除尾数一字的误差

出0入0汤圆

发表于 2009-12-25 20:26:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-25 20:58:50 | 显示全部楼层
7135采集还是不要用单线采集,同意老许说的不稳定因素,一定要采集BCD码才最可靠,其他控制功能如果IO不够可以想办法扩展,一定有办法的。

出0入0汤圆

发表于 2009-12-26 01:37:25 | 显示全部楼层
关注一下,程序方面也许能帮点忙。

IO口紧张的话 1602数据 DB0~DB3 可不接

出0入0汤圆

 楼主| 发表于 2009-12-26 16:05:33 | 显示全部楼层
本人水平有限,恐怕实现不了.现在表头部分基本完成,手里只有编译通过的读取BCD的,busy的不会改程序.暂时无法实现,实际用BCD的稳定,准确,busy更能发挥7135的极限.

出0入0汤圆

发表于 2009-12-27 13:28:45 | 显示全部楼层
busy信号在CLK上升沿还是下降沿改变,又或者是比较器翻转就改变
有条件的测下就能知道一个字的误差是那里产生的

出0入0汤圆

发表于 2009-12-28 17:46:53 | 显示全部楼层
杰龙电子的把7135做成5 1/2的.不知道有没有意义.从他们网站给的数据还可以.用的就是直接读取busy.

******************************
用这种方法出5位分辨率是没问题的,但第5位是没有价值的,我接触7135时间不长,但感觉要把7135做好4位已经不容易了.如果积分电容差点,全程非线性影响到3位,如果这样,最后一位就没有价值了,就变成3位半精度了.很多人只是搭出了电路,出了数据以为表就做好了,其实不然.最好能有5位半或者更高位的表来对比测试才行.

关于这个问题有个很好的例子,HP34401万用表可以出7位甚至8位数据,但还是把它称为6位半表,原因是7位数据不稳定没有价值.

出0入0汤圆

发表于 2009-12-28 20:35:19 | 显示全部楼层
5位半的双积分ADC有,intersil的HI-7159,这个片子工作原理比7135复杂,积分完成后还加反压测了积分电容上的残余电压。

出0入0汤圆

发表于 2009-12-28 20:58:09 | 显示全部楼层
Sprint Layout 画的

这软件太强了   请问LZ怎么做封装

出0入0汤圆

发表于 2009-12-28 21:33:09 | 显示全部楼层
【46楼】 xuyiyi 许意义
7135的精度能到4 1/2吗?那可是0.005%

出0入0汤圆

发表于 2009-12-29 09:37:43 | 显示全部楼层
纯理论分析7135不能到4位半,数据手册上
  Linearity Over ± Full Scale                                      1个字,
  Scale Factor Temperature Coefficient, TC (Notes 5 and 7)          5PPM/℃

而实际应用上不可能配好的基准,能在15-30℃、一年内保证5个字的精度就很不错了

出0入0汤圆

发表于 2009-12-29 11:05:21 | 显示全部楼层
如 35 楼所说,我用了一个与门,因为 7135 的手册上就是这样写的,而网络上其它人并不用这个与门。

我想了一下,7135 或者说别的什么双斜 AD,其去积分时间和被积分的输入电压成正比,那么那些没有用这个与门或者说试图提高 7135 的分辨率(不是精度)的人似乎就是想要绕过 7135 自己的时钟和计数器,用频率更高的时钟去测量这个去积分时间。理论上如果忽略 7135 的线性度和噪声,这个方法是可能的 ---前提是 BUSY 脉冲的宽度和 7135 的去积分时间一致的话。

我没有很好的数字存储示波器去记录和分析这个问题,从目前的一个字的跳动看来,除了时钟的相位差之外,就可能是 7135 的 BUSY 脉冲宽度在很大程度上确实与其去积分时间一致,就手册之后对其微分线性的阐述看来,比较器的延时导致 BUSY 的宽度比 BCD 码反映的宽度大一点是合理的,当系统噪声叠加在输入的信号上,这个稍多出来一点的宽度可能就会让外部计数器多记录一个字,这里指的是使用了与门的情况下。

如果不使用这个与门,用更高频率的时钟和外部计数器进行计数,我觉得此时得到的数据更多的是噪声叠加在上面,当然过采样提高 AD 分辨率的方法也就是这样,所以这样去提高 7135 的分辨率理论上说是可行的,实际上我曾经在一个实验中发现得到的计数是按倍数增加的,不清楚是别的问题还是什么。


(原文件名:ICL7135_DS1.png)

出0入0汤圆

 楼主| 发表于 2009-12-29 12:31:16 | 显示全部楼层
各位都是高手呀,我没考虑那么多.都是按手册参数做的.只是自己做着玩,事情多时间少到现在还没什么进展,我没有基准源也没高精度表.个人观点7135达不到真正的4 1/2.

出0入0汤圆

发表于 2009-12-29 13:32:00 | 显示全部楼层
达不到 4.5 位精度是肯定的,但 4.5 位分辨率是实实在在的 :) 要达到 4.5 位精度,一般的 6 位半表才达到而已,比如 34401A 是 0.0035% 的基本直流精度,5 位半的表好像就没有什么可以达到 0.005% 的了,看了一下 HP 的老 5 位半大多是 0.006% 的基本直流精度而已,很低的。

出0入0汤圆

发表于 2009-12-29 14:01:37 | 显示全部楼层
回复【52楼】lilith
实际上我曾经在一个实验中发现得到的计数是按倍数增加的,不清楚是别的问题还是什么。
-----------------------------------------------------------------------

丛某个中文手册上看到BUSY在积分翻转后由CLK触发,这样丛BUSY脚扩51/2貌似行不通,而市面上有好几个人说成功扩到51/2分辨力,难道不同厂家的7135时序不一样?

今年比较忙,明年也测下看看,建议出个公板的PCB,方便对比

出0入0汤圆

发表于 2009-12-29 19:12:12 | 显示全部楼层
元旦过后我先着手设计7135的试验板,到时考虑引出BUSY和CLK线,便于实验

出0入0汤圆

 楼主| 发表于 2009-12-29 19:25:55 | 显示全部楼层
我做的pcb上面都引出了,CLK通过跳线可以选7404和4060或者外部输入CLK.所有外部接口都已引出.如果可以用需要原理图我可以抽时间画一下传上来,单面板跳线多了点.适合热转印.

出0入0汤圆

 楼主| 发表于 2009-12-29 19:49:07 | 显示全部楼层
手里还有两片7129性能要比7135好.可就是不能接数码管.接单片机和数码管太麻烦.

出0入0汤圆

发表于 2009-12-29 23:38:42 | 显示全部楼层
回复【56楼】jj3055
元旦过后我先着手设计7135的试验板,到时考虑引出BUSY和CLK线,便于实验
-----------------------------------------------------------------------

我也是,图已经化好并提交给帮我画 PCB 的同学了 :) 分为模拟部分(7135 ADC + MAX541 DAC);数字部分(单片机和接口);电源与显示部分三块,仅用于 7135 的实验和测试,不具备实用意义和价值。


(原文件名:ICL7135_Slot3bb.png)

出0入0汤圆

发表于 2009-12-30 00:24:18 | 显示全部楼层
看样子实验板还是有
【57楼】 xin12345
【60楼】 lilith
推出吧,最好是单面可以热转印的.

我还是把精力放在实用板上吧,实用板需要两块板,迫于安装的需要.

出0入0汤圆

发表于 2009-12-30 00:54:10 | 显示全部楼层
出于实验方便,我会(让他)做成单面的,实际上如果不考虑这个问题而做成双面的,就没有必要做成 3 块独立的板了。不过这个只是用于测试 7135 的线性和一些功能与证实一些想法,实用的意义,是不大的。对于我来说另一个意义就是对比手头上美信,凌特的其它 16bit ADC,看谁“使用简单成本低效果好”而已 :)

由于自制双面板困难,有的时候为了布单面板实在是太费心思了,最近(让他)布的一个板,想了半天还是飞了一条线才能搞定,没办法阿,厂家 Datasheet 都要求了用双面的,现在用单面做出来,VDrop 居然也很小,不容易了。


(原文件名:ATX_PCB_S01.png)


(原文件名:PICT2018.jpg)

出0入0汤圆

发表于 2009-12-30 09:05:06 | 显示全部楼层
回复【60楼】lilith

我也是,图已经化好并提交给帮我画 PCB 的同学了 :) 分为模拟部分(7135 ADC + MAX541 DAC);数字部分(单片机和接口);电源与显示部分三块,仅用于 7135 的实验和测试,不具备实用意义和价值。
========================================================================

M8改成8952的话我去做双面板
负电压的CD4069可省掉,直接接道变压器上就行了,或者MAX232上也有负电源

出0入0汤圆

 楼主| 发表于 2010-1-4 15:22:34 | 显示全部楼层
过节搭了了个电路,用B1~B8+ST选通5线连89S52,串口和电脑连接采集的数据,
2010年01月02日13时05分05秒
0.9910 V : 0.9913 V : 0.9907 V : 0.9907 V : 0.9908 V : 0.9908 V : 0.9913 V : 0.9917 V : 0.9910 V : 0.9916 V : 0.9921 V : 0.9917 V : 0.9922 V : 0.9921 V : 0.9924 V : 0.9919 V : 0.9930 V : 0.9939 V : 0.9936 V : 0.9940 V : 0.9939 V : 0.9943 V : 0.9938 V : 0.9941 V : 0.9944 V : 0.9948 V : 0.9952 V : 0.9961 V : 0.9977 V : 0.9987 V : 1.0001 V : 0.9998 V : 1.0001 V : 0.9998 V : 1.0005 V : 1.0015 V : 1.0015 V : 1.0023 V : 1.0036 V : 1.0035 V : 1.0041 V : 1.0035 V : 1.0039 V : 1.0037 V : 1.0041 V : 1.0035 V : 1.0039 V : 1.0030 V : 1.0035 V : 1.0038 V : 1.0037 V : 1.0029 V : 1.0027 V : 1.0028 V : 1.0024 V : 1.0024 V : 1.0033 V : 1.0025 V : 1.0013 V : 1.0021 V : 1.0016 V : 1.0016 V : 1.0007 V : 1.0007 V : 1.0007 V : 1.0014 V : 1.0006 V : 1.0007 V : 1.0016 V : 1.0009 V : 1.0004 V : 1.0006 V : 1.0007 V : 1.0005 V : 0.0003 V : 1.0002 V : 1.0001 V : 1.9999 V : 0.9997 V : 1.0005 V : 1.0018 V : 1.0026 V : 1.0028 V : 1.0026 V : 1.0031 V : 1.0029 V : 1.0035 V : 1.0029 V : 1.0010 V : 1.0020 V : 1.0030 V : 1.0053 V : 0.0039 V : 1.0020 V : 1.0059 V : 1.0109 V : 1.0115 V : 1.0000 V : 1.0015 V : 1.0070 V : 1.0000 V : 1.0104 V : 1.0099 V : 1.0003 V : 1.0100 V : 1.0100 V : 1.0060 V : 0.0036 V : 1.0060 V : 1.0052 V : 1.0048 V : 1.0041 V : 1.0051 V : 1.0047 V : 1.0063 V : 1.0066 V : 1.0070 V : 1.0069 V : 1.0018 V : 1.9941 V : 0.9901 V : 0.9980 V : 0.9916 V : 0.9977 V : 1.0002 V : 0.9985 V : 0.9970 V : 0.9962 V : 0.9959 V : 0.9967 V : 0.9943 V : 0.9942 V : 0.9925 V : 0.9927 V : 0.9925 V : 0.9923 V : 0.9925 V : 0.9927 V : 0.9919 V : 0.9924 V : 0.9935 V : 0.9924 V : 0.9921 V : 0.9927 V : 0.9920 V : 0.9906 V : 0.9907 V : 0.9906 V : 0.9904 V : 0.9905 V : 0.9909 V : 0.9921 V : 0.9931 V : 0.9933 V : 0.9924 V : 0.9924 V : 0.9924 V : 0.9914 V : 0.9916 V : 0.9902 V : 0.9908 V : 0.9911 V : 0.9908 V : 0.9916 V : 0.9922 V : 0.9922 V : 0.9931 V : 0.9932 V : 0.9920 V : 0.9913 V : 0.9912 V : 0.9917 V : 0.9913 V : 0.9911 V : 0.9919 V : 0.9922 V : 0.9917 V : 0.9929 V : 0.9933 V : 0.9918 V : 0.9923 V : 0.9913 V : 0.9912 V : 0.9905 V : 0.9912 V : 0.9908 V : 0.9912 V : 0.9922 V : 0.9913 V : 0.9928 V : 0.9932 V : 0.9920 V : 0.9928 V : 0.9911 V : 0.9905 V : 0.9900 V : 0.9905 V : 0.9916 V : 0.9913 V : 0.9922 V : 0.9919 V : 0.9921 V : 0.9926 V : 0.9924 V : 0.9907 V : 0.9895 V : 0.9915 V : 0.9910 V : 0.9909 V : 0.9919 V : 0.9930 V : 0.9916 V : 0.9917 V : 0.9913 V : 0.9904 V : 0.9905 V : 0.9904 V : 0.9898 V : 0.9909 V : 0.9916 V : 0.9922 V : 0.9922 V : 0.9923 V : 0.9917 V : 0.9921 V : 0.9909 V : 0.9905 V : 0.9905 V : 0.9911 V : 0.9910 V : 0.9921 V : 0.9924 V : 0.9922 V : 0.9925 V : 0.9916 V : 0.9911 V : 0.9907 V : 0.9899 V : 0.9898 V : 0.9902 V : 0.9911 V : 0.9911 V : 0.9918 V : 0.9924 V : 0.9926 V : 0.9919 V : 0.9907 V : 0.9901 V : 0.9903 V : 0.9906 V : 0.9906 V : 0.9909 V : 0.9915 V : 0.9921 V : 0.9922 V : 0.9915 V : 0.9923 V : 0.9913 V : 0.9899 V : 0.9900 V : 0.9900 V : 0.9910 V : 0.9919 V : 0.9914 V : 0.9918 V : 0.9921 V : 0.9919 V : 0.9911 V : 0.9898 V : 0.9899 V : 0.9907 V : 0.9910 V : 0.9915 V : 0.9928 V : 0.9929 V : 0.9926 V : 0.9911 V : 0.9917 V : 0.9910 V : 0.9898 V : 0.9899 V : 0.9904 V : 0.9918 V : 0.9936 V : 0.9942 V : 0.9938 V : 0.9907 V : 0.9922 V : 0.9911 V : 0.9908 V : 0.9995 V : 0.9897 V : 0.9908 V : 0.9913 V : 0.9918 V : 0.9934 V : 0.9924 V : 0.9913 V : 0.9896 V : 0.9880 V : 0.9877 V : 0.9875 V : 0.9901 V : 0.9915 V : 0.9912 V : 0.9935 V : 0.9936 V : 0.9933 V : 0.9895 V : 0.9888 V : 0.9873 V : 0.9876 V : 0.9888 V : 0.9907 V : 0.9908 V : 0.9912 V : 0.9920 V : 0.9918 V : 0.9908 V : 0.9906 V : 0.9887 V : 0.9890 V : 0.9882 V : 0.9894 V : 0.9959 V : 0.9992 V : 1.0021 V : 1.0020 V : 1.0001 V

出0入0汤圆

发表于 2010-1-4 15:41:13 | 显示全部楼层
怎么变化这么大

出0入0汤圆

 楼主| 发表于 2010-1-4 16:09:09 | 显示全部楼层
不知道,可能是采集程序的问题,1602上的后两位数字一直跳动,不会编程,不知道程序那里有问题

出0入0汤圆

发表于 2010-1-4 20:43:06 | 显示全部楼层
你可以接数码管看看是不是也跳,我觉得读 BCD 不会有问题,程序再怎么写都不会有问题的。

下面是我采集的 7135 数据,7135 每完成一个 AD 周期就向串口发送一次数据(时钟大致是 125KHZ),采样了 8 个多小时(图表只给出了最初 8 分钟的,你如果对完整的数据有兴趣可以问我要),基本上在 9998 和 9999 之间变化,没有超出这两个数的。


(原文件名:ICL_7135_T01.png)

出0入0汤圆

 楼主| 发表于 2010-1-4 22:25:49 | 显示全部楼层
数码管末位有点跳动,液晶的太严重.我换了4片7135都是那样.在成品表头上也只是一个字的变化,我用的程序就是上面我贴的,没有别的程序可实验,如果方便可以的话麻烦你传份完整的程序给我可以么?先谢谢了.邮箱:bdjxfd@yahoo.com.cn,

出0入0汤圆

发表于 2010-1-5 10:56:59 | 显示全部楼层
我是用一个 M16 实验板 + 12232 LCD 采集测试的,这个程序给你也没用吧 :) 至于 60 楼我那个图,某人还在画板中,所以也就没有写程序了,等写好了可以给你,是 M8 + 1602 LCD 的,就不知道你是否用得上?

至于程序的采集 7135 数据部分分别如下,用 BASIC 的,就不好意思了 :D

从 STR/BCD 采集
Interrupt Int1(), Save 1    ' STR 接到了外部中断 1
tData(tCount) = PINB And &b00001111   ' tData 是 Word 数组变量;7135 的 BCD 接到 PB 的低 4 位

If tCount >=4 Then
   tRead = tData(0) * 10000 + tData(1) * 1000 + tData(2) * 100 + tData(3) * 10 + tData(4)  ' tRead 是 Word 变量
   Print tRead   ' 此句要求 M16 的硬件 UART 发送 tRead 变量(有关硬件 UART 的其它代码就不列出了)
   tCount = 0
Else
   tCount = tCount + 1
End If
End Interrupt


从 BUSY 采集
Interrupt Int1(), Save 1   ' BUSY 接到了外部中断 1;CLOCK 接到了 M16 的计时器 T1
  tClock = Counter1        ' tClock 是 Word 变量;Counter1 即 M16 的计时器 T1
  Stop Counter1
       Counter1 = 0
  Start Counter1
End Interrupt

66 楼的图,是用下面 BUSY 程序采集的,所以是有 1 个字的跳动。

出0入0汤圆

 楼主| 发表于 2010-1-5 11:48:22 | 显示全部楼层
谢谢,虽然用不上,能看看15楼我贴的程序有什么问题么?能编译,能采集,我觉得是中断和定时有问题.

出0入0汤圆

 楼主| 发表于 2010-1-10 13:54:11 | 显示全部楼层
重新热转印了PCB并修改了程序,还是采用BCD+STR 5线连接,1uf电容用的250V的,0.47的用的是安规电容.时钟用4060加4M晶振分频为125K.基准用的是拆机的韩国产1403U;输入和基准短接显示9994.和7129芯片的4 1/2表对比.分别测了:0.0500、1.0000和1.9900误差分别为:3、5和8个字,4脚没接电阻,手里没有再好电容.小地方好多元件都买不到.有时间去找点好的电容.

出0入0汤圆

 楼主| 发表于 2010-1-10 14:04:22 | 显示全部楼层
对了.上次的误差原因找到了,用示波器查看7135 2脚的基准上有干扰.用4 1/2表测没问题,所以从新画了PCB.并找了个铝壳,最细线0.3mm.间距0.3mm,一次热转印成功,无断线、短路.

出0入0汤圆

发表于 2010-5-3 21:29:13 | 显示全部楼层
各位大侠
能不能将7135做的电压表发一份详细的给我啊
先谢谢啦

出0入0汤圆

发表于 2010-6-28 22:25:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-4 11:09:11 | 显示全部楼层
回复【67楼】lilith
-----------------------------------------------------------------------

这是什么软件,好像不错。

出0入0汤圆

发表于 2010-8-4 13:16:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-17 16:53:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-23 23:07:10 | 显示全部楼层
继续啊

出0入0汤圆

发表于 2011-4-18 23:50:01 | 显示全部楼层
牛人太多了

出0入0汤圆

发表于 2011-11-23 14:00:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-1 19:28:13 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-1-29 00:11:36 | 显示全部楼层
用STC89C52能接BUSY吗,中断好像处理不了啊。有人做过没?

出0入0汤圆

发表于 2012-1-29 12:56:10 | 显示全部楼层
回复【82楼】klbmw
用stc89c52能接busy吗,中断好像处理不了啊。有人做过没?
-----------------------------------------------------------------------

可以的,中断可以处理。只是不好处理

出0入0汤圆

发表于 2012-2-2 23:35:25 | 显示全部楼层
回复【83楼】zhuangchao123
-----------------------------------------------------------------------

该怎么处理啊。指教指教啊。C52的话外部中断只能触发啊计时器啊。怎么结束计时器呢

出0入0汤圆

发表于 2012-2-13 22:19:06 | 显示全部楼层
想法不错,我也很想DIY一台但苦于不会编程!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 23:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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