Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
I tried that. Actually the article in EPE was about T6963C LCD interface with a PIC16F877. All code in asm, so the code size is really small. The sine curve part is nice, and the scope does work. However, it is far away from commerical product quality. For pet project is nice.
Hi guys, i will try to realize similar project, a Graphic LCD Electrocardiograph device. Electrocardiogram is similar to a oscilloscope I use a Graphic 128x64 LCD KS0108B based, and a 16F876 PIC with a biological differential amplifier that i have already realized. A prototype based on velleman VPS10:
Here a link to a oscilloscope LCD project (with code). **broken link removed**
Added after 4 minutes:
Now i must realize a PIC based LCD monitor for electrocardiogram. I use PICBasic compiler, i u want i can post code...
Yes i know this links, but my amplifier and software are different. In ECG biosignals there are ultra low frequencys that will be plotted very slowly, around 0.5sec x 10 pixel. Software must have also a heart rate meter. Thanks.
TRISA = %00000001 ' Configure AN0 (PORTA.0) as an input
ADCON1 = %10000000 ' Set analogue input on PORTA.0
DIM VAR1 as WORD
DIM VAR2 as WORD
DIM VARD as BYTE
DIM FREQ as BYTE
DIM XPOS as BYTE
DIM XNEW as BYTE
DIM XOLD as BYTE
DIM XDIF as BYTE
XNEW = 0
CLS
PRINT AT 4,6, "Biomonitor"
DELAYMS 1000 ' Wait for PICmicro to stabilise
CLS
LOOP:
FOR XPOS = 0 TO 127 STEP 1
VAR1 = ADIN 0 ' Place the conversion into variable VAR1
VAR1 = VAR1/200
LINE 0, XPOS, 0, XPOS, 63
LINE 1, XPOS-1, -VAR2, XPOS, -VAR1
IF VAR1 > VAR2 THEN VARD = VAR1-VAR2 : ELSEIF VARD > 4 THEN XOLD = XNEW : XNEW = XPOS : SOUND PORTB.5, [127,1]
IF XNEW > XOLD THEN XDIF = XNEW - XOLD : ELSEIF XDIF > 25 THEN FREQ = 2980 / XDIF : PRINT AT 0,20, INVERSE 0, "*" 'caracter * is modifield to a heart icon
PRINT AT 0,17, DEC FREQ
VAR2 = VAR1
NEXT
GOTO LOOP
FONT:- CData $00,$00,$00,$00,$00,$00 'Graphic character 0
CData $FF,$FF,$FF,$FF,$FF,$FF 'Graphic character 1
CData $07,$07,$07,$00,$00,$00 'Graphic character 2
CData $00,$00,$00,$07,$07,$07 'Graphic character 3
CData $E0,$E0,$E0,$00,$00,$00 'Graphic character 4
CData $00,$00,$00,$E0,$E0,$E0 'Graphic character 5
CData $FF,$FF,$FF,$00,$00,$00 'Graphic character 6
CData $00,$00,$00,$FF,$FF,$FF 'Graphic character 7
CData $07,$07,$07,$07,$07,$07 'Graphic character 8
CData $E0,$E0,$E0,$E0,$E0,$E0 'Graphic character 9
CData $E0,$E0,$E0,$07,$07,$07 'Graphic character 10
CData $07,$07,$07,$E0,$E0,$E0 'Graphic character 11
CData $FF,$FF,$FF,$E0,$E0,$E0 'Graphic character 12
CData $E0,$E0,$E0,$FF,$FF,$FF 'Graphic character 13
CData $07,$07,$07,$FF,$FF,$FF 'Graphic character 14
CData $FF,$FF,$FF,$07,$07,$07 'Graphic character 15
CData $55,$AA,$55,$AA,$55,$AA 'Graphic character 16
CData $AA,$55,$AA,$55,$AA,$55 'Graphic character 17
CData $01,$01,$01,$01,$01,$01 'Graphic character 18
CData $80,$80,$80,$80,$80,$80 'Graphic character 19
CData $FF,$00,$00,$00,$00,$00 'Graphic character 20
CData $00,$00,$00,$00,$00,$FF 'Graphic character 21
CData $FF,$01,$01,$01,$01,$01 'Graphic character 22
CData $01,$01,$01,$01,$01,$FF 'Graphic character 23
CData $FF,$80,$80,$80,$80,$80 'Graphic character 24
CData $80,$80,$80,$80,$80,$FF 'Graphic character 25
CData $00,$00,$00,$00,$00,$00 'User defined character 26
CData $00,$00,$00,$00,$00,$00 'User defined character 27
CData $00,$00,$00,$00,$00,$00 'User defined character 28
CData $00,$00,$00,$00,$00,$00 'User defined character 29
CData $00,$00,$00,$00,$00,$00 'User defined character 30
CData $00,$00,$00,$00,$00,$00 'User defined character 31
CData $00,$00,$00,$00,$00,$00 'User defined character 32
CData $00,$00,$4F,$00,$00,$00 '33 - ! - 21
CData $00,$07,$00,$07,$00,$00 '34 - " - 22
CData $14,$7F,$14,$7F,$14,$00 '35 - # - 23
CData $24,$2A,$7F,$2A,$12,$00 '36 - $ - 24
CData $23,$13,$08,$64,$62,$00 '37 - % - 25
CData $36,$49,$55,$22,$50,$00 '38 - & - 26
CData $00,$05,$03,$00,$00,$00 '39 - ' - 27
CData $1C,$22,$41,$00,$00,$00 '40 - ( - 28
CData $00,$00,$41,$22,$1C,$00 '41 - ) - 29
CData $0E,$1E,$7C,$7C,$1E,$0E '42 - * - 2A
CData $08,$08,$3E,$08,$08,$00 '43 - + - 2B
CData $00,$50,$30,$00,$00,$00 '44 - , - 2C
CData $08,$08,$08,$08,$08,$00 '45 - - - 2D
CData $00,$60,$60,$00,$00,$00 '46 - . - 2E
CData $20,$10,$08,$04,$02,$00 '47 - / - 2F
CData $3E,$51,$49,$45,$3E,$00 '48 - 0 - 30
CData $00,$42,$7F,$40,$00,$00 '49 - 1 - 31
CData $42,$61,$51,$49,$46,$00 '50 - 2 - 32
CData $21,$41,$45,$4B,$31,$00 '51 - 3 - 33
CData $18,$14,$12,$7F,$10,$00 '52 - 4 - 34
CData $27,$45,$45,$45,$39,$00 '53 - 5 - 35
CData $3C,$4A,$49,$49,$30,$00 '54 - 6 - 36
CData $01,$71,$09,$05,$03,$00 '55 - 7 - 37
CData $36,$49,$49,$49,$36,$00 '56 - 8 - 38
CData $06,$49,$49,$49,$3E,$00 '57 - 9 - 39
CData $00,$36,$36,$00,$00,$00 '58 - : - 3A
CData $00,$56,$36,$00,$00,$00 '59 - ; - 3B
CData $08,$14,$22,$41,$00,$00 '60 - < - 3C
CData $14,$14,$14,$14,$14,$00 '61 - = - 3D
CData $00,$41,$22,$14,$08,$00 '62 - > - 3E
CData $02,$01,$51,$09,$06,$00 '63 - ? - 3F
CData $32,$49,$79,$41,$3E,$00 '64 - @ - 40
CData $7E,$11,$11,$11,$7E,$00 '65 - A - 41
CData $7F,$49,$49,$49,$36,$00 '66 - B - 42
CData $3E,$41,$41,$41,$22,$00 '67 - C - 43
CData $7F,$41,$41,$22,$1C,$00 '68 - D - 44
CData $7F,$49,$49,$49,$41,$00 '69 - E - 45
CData $7F,$09,$09,$09,$01,$00 '70 - F - 46
CData $3E,$41,$49,$49,$7A,$00 '71 - G - 47
CData $7F,$08,$08,$08,$7F,$00 '72 - H - 48
CData $00,$41,$7F,$41,$00,$00 '73 - I - 49
CData $20,$40,$41,$3F,$01,$00 '74 - J - 4A
CData $7F,$08,$14,$22,$41,$00 '75 - K - 4B
CData $7F,$40,$40,$40,$40,$00 '76 - L - 4C
CData $7F,$02,$0C,$02,$7F,$00 '77 - M - 4D
CData $7F,$04,$08,$10,$7F,$00 '78 - N - 4E
CData $3E,$41,$41,$41,$3E,$00 '79 - O - 4F
CData $7F,$09,$09,$09,$06,$00 '80 - P - 50
CData $3E,$41,$51,$21,$5E,$00 '81 - Q - 51
CData $7F,$09,$19,$29,$46,$00 '82 - R - 52
CData $46,$49,$49,$49,$31,$00 '83 - S - 53
CData $01,$01,$7F,$01,$01,$00 '84 - T - 54
CData $3F,$40,$40,$40,$3F,$00 '85 - U - 55
CData $1F,$20,$40,$20,$1F,$00 '86 - V - 56
CData $3F,$40,$38,$40,$3F,$00 '87 - W - 57
CData $63,$14,$08,$14,$63,$00 '88 - X - 58
CData $07,$08,$70,$08,$07,$00 '89 - Y - 59
CData $61,$51,$49,$45,$43,$00 '90 - Z - 5A
CData $7F,$41,$41,$00,$00,$00 '91 - [ - 5B
CData $02,$04,$08,$10,$20,$00 '92 - \ - 5C
CData $00,$00,$41,$41,$7F,$00 '93 - ] - 5D
CData $04,$02,$01,$02,$04,$00 '94 - ^ - 5E
CData $40,$40,$40,$40,$40,$00 '95 - _ - 5F
CData $00,$01,$02,$04,$00,$00 '96 - ` - 60
CData $20,$54,$54,$54,$78,$00 '97 - a - 61
CData $7F,$48,$44,$44,$38,$00 '98 - b - 62
CData $38,$44,$44,$44,$20,$00 '99 - c - 63
CData $38,$44,$44,$48,$7F,$00 '100 d - 64
CData $38,$54,$54,$54,$18,$00 '101 e - 65
CData $08,$7E,$09,$01,$02,$00 '102 f - 66
CData $0C,$52,$52,$52,$3E,$00 '103 g - 67
CData $7F,$08,$04,$04,$78,$00 '104 h - 68
CData $00,$44,$7D,$40,$00,$00 '105 i - 69
CData $00,$20,$40,$44,$3D,$00 '106 j - 6A
CData $7F,$10,$28,$44,$00,$00 '107 k - 6B
CData $00,$41,$7F,$40,$00,$00 '108 l - 6C
CData $7C,$04,$18,$04,$78,$00 '109 m - 6D
CData $7C,$08,$04,$04,$78,$00 '110 n - 6E
CData $38,$44,$44,$44,$38,$00 '111 o - 6F
CData $7C,$14,$14,$14,$08,$00 '112 p - 70
CData $08,$14,$14,$18,$7C,$00 '113 q - 71
CData $7C,$08,$04,$04,$08,$00 '114 r - 72
CData $48,$54,$54,$54,$20,$00 '115 s - 73
CData $04,$3F,$44,$40,$20,$00 '116 t - 74
CData $3C,$40,$40,$20,$7C,$00 '117 u - 75
CData $1C,$20,$40,$20,$1C,$00 '118 v - 76
CData $3C,$40,$30,$40,$3C,$00 '119 w - 77
CData $44,$28,$10,$28,$44,$00 '120 x - 78
CData $0C,$50,$50,$50,$3C,$00 '121 y - 79
CData $44,$64,$54,$4C,$44,$00 '122 z - 7A
CData $08,$36,$41,$00,$00,$00 '123 { - 7B
CData $00,$00,$7F,$00,$00,$00 '124 | - 7C
CData $00,$00,$41,$36,$08,$00 '125 } - 7D
CData $00,$08,$04,$08,$04,$00 '126 ~ - 7E
Added after 16 minutes:
This is the amplifier, simplified design with minimal number of parts, single op-amp right leg drive, high common mode rejection ratio (>120dB), 0,3Hz high pass filter (remove electrodes noise) and low pass filter 108Hz (for electromiogram noise).
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.