16
Dot Matrix Printer Head Values 1 Programmer: Kiran P DOT MARTIX PRINTER HEAD VALUES This is the Visual Basic 6.0 program to create a simple application that helps you to find out Dot Matrix printer’s print head Hex values. Where I have used this program? I am an Embedded System Programmer and was working on Printer Mechanism. Once a situation occurred that I have to do some paper work regarding Dot Matrix printer head hex values. I try to explain you what exactly was the requirement. Normal dot matrix printer prints a 9X5 (9 by 5) matrix of dots to resemble a character, as illustrated below for character A, Above 9X5 matrix with black dots represent a character A. Thus in a 9X5 dot matrix you need to activate set of dots to print a particular character on paper. For that you have to do lot of paper work. Some times you may have to discard the shape which you have created and may have to do it again, which will result into lot of “NRE Paper cost”. It is not over if you have created a character on paper, you need to send the Hexadecimal code of that matrix to printer ports to print that character. How to get Hex values from above matrix? Explained for character A. 1. Start with column number 1 and get the binary values of the dots. 2. In column number 1 starting from MSB, the binary value we get as 111111100 3. Same for other columns, we get 000010010, 000010001, 000010010 and 111111100 for columns 2, 3, 4 and 5 respectively. 4. Now get the hex values of these binary numbers, using scientific calculator provided in Windows. 5. And then you have to send that hex value to printer port to print A. 6. Hex value came as {0x1FC, 0x012, 0x011, 0x012, 0x1FC}. MSB LSB Column Number 1 to 5 (L to R)

Find Dot Matrix Printer Head Values in VB6 programming

  • Upload
    kiran

  • View
    435

  • Download
    3

Embed Size (px)

DESCRIPTION

This is the Visual Basic 6.0 programming to create a simple application that helps you to find out the dot matrix printer head hex values.

Citation preview

Page 1: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 1 

 

Programmer: Kiran P

DOT MARTIX PRINTER HEAD VALUES This is the Visual Basic 6.0 program to create a simple application that helps you to find out Dot Matrix printer’s print head Hex values.

Where I have used this program? I am an Embedded System Programmer and was working on Printer Mechanism. Once a situation occurred that I have to do some paper work regarding Dot Matrix printer head hex values. I try to explain you what exactly was the requirement. Normal dot matrix printer prints a 9X5 (9 by 5) matrix of dots to resemble a character, as illustrated below for character A,

Above 9X5 matrix with black dots represent a character A. Thus in a 9X5 dot matrix you need to activate set of dots to print a particular character on paper. For that you have to do lot of paper work. Some times you may have to discard the shape which you have created and may have to do it again, which will result into lot of “NRE Paper cost”. It is not over if you have created a character on paper, you need to send the Hexadecimal code of that matrix to printer ports to print that character.

How to get Hex values from above matrix?

Explained for character A.

1. Start with column number 1 and get the binary values of the dots. 2. In column number 1 starting from MSB, the binary value we get as 111111100 3. Same for other columns, we get 000010010, 000010001, 000010010 and 111111100 for columns

2, 3, 4 and 5 respectively. 4. Now get the hex values of these binary numbers, using scientific calculator provided in Windows. 5. And then you have to send that hex value to printer port to print A. 6. Hex value came as {0x1FC, 0x012, 0x011, 0x012, 0x1FC}.

MSB   

LSB   

Column Number 1 to 5 (L to R)

Page 2: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 2 

 

Programmer: Kiran P

It was really a head ache for me to do that much paper work and R&D on Printer Values. So I have designed a GUI in Visual Basic which helped me to get the value easily and made my work simple. I have provided the complete VB code here for your reference. Enjoy.

Starting with GUI. I will not explain you how to program in VB. I will consider that you know at least basic programming in VB6.0. I have provided my GUI design here, check it out.

1. Button “Clear All” will clear all the check marks on check box. 2. Button “Preview” will show the character format you have designed on preview box. 3. Button “GET VALUE” will provide Binary, corresponding Decimal and Hex values on Text Box

provided for each column check marks on check boxes.

Page 3: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 3 

 

Programmer: Kiran P

Below is the value for character A.

Now you might have clearly understood.

Page 4: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 4 

 

Programmer: Kiran P

Below is the VB code.

'************************************************

' (C) Kiran P

' Programmer: Kiran P

'************************************************

Option Explicit

Dim i As Integer

'Bit value Holder

'This starts with 0 to 8 total it can hold 9 values.

Dim bit(8) As Integer

'Temp Decimal Value Holder

Dim temp1 As Integer

Dim temp2 As Integer

Dim temp3 As Integer

Dim temp4 As Integer

Dim temp5 As Integer

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

Private Sub cmd_clear_Click()

For i = 0 To 8

chk_bx(i).Value = 0

chk_bx2(i).Value = 0

chk_bx3(i).Value = 0

Page 5: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 5 

 

Programmer: Kiran P

chk_bx4(i).Value = 0

chk_bx5(i).Value = 0

Next

End Sub

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

Private Sub cmd_getVal_Click()

Call funct1

Call funct2

Call funct3

Call funct4

Call funct5

End Sub

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

Private Sub funct1()

Text1.Text = ""

For i = 0 To 8

If (chk_bx(i).Value = 1) Then

bit(i) = 1

Text1.Text = Text1.Text & bit(i)

Else

Page 6: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 6 

 

Programmer: Kiran P

bit(i) = 0

Text1.Text = Text1.Text & bit(i)

End If

Next

'Reverse the string to display MSB first

Text1.Text = StrReverse(Text1.Text)

'get decimal value

temp1 = 256 * bit(8) + 128 * bit(7) + 64 * bit(6) + 32 * bit(5) + 16 * bit(4) + 8 * bit(3) + 4 * bit(2) + 2 * bit(1) + bit(0)

'display decimal value

Text11.Text = temp1

'get hex value

Text6.Text = Hex$(temp1)

End Sub

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

Private Sub funct2()

Text2.Text = ""

For i = 0 To 8

If (chk_bx2(i).Value = 1) Then

bit(i) = 1

Text2.Text = Text2.Text & bit(i)

Else

bit(i) = 0

Text2.Text = Text2.Text & bit(i)

End If

Page 7: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 7 

 

Programmer: Kiran P

Next

Text2.Text = StrReverse(Text2.Text)

temp2 = 256 * bit(8) + 128 * bit(7) + 64 * bit(6) + 32 * bit(5) + 16 * bit(4) + 8 * bit(3) + 4 * bit(2) + 2 * bit(1) + bit(0)

Text12.Text = temp2

Text7.Text = Hex$(temp2)

End Sub

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

Private Sub funct3()

Text3.Text = ""

For i = 0 To 8

If (chk_bx3(i).Value = 1) Then

bit(i) = 1

Text3.Text = Text3.Text & bit(i)

Else

bit(i) = 0

Text3.Text = Text3.Text & bit(i)

End If

Next

Text3.Text = StrReverse(Text3.Text)

temp3 = 256 * bit(8) + 128 * bit(7) + 64 * bit(6) + 32 * bit(5) + 16 * bit(4) + 8 * bit(3) + 4 * bit(2) + 2 * bit(1) + bit(0)

Text13.Text = temp3

Text8.Text = Hex$(temp3)

End Sub

Page 8: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 8 

 

Programmer: Kiran P

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

Private Sub funct4()

Text4.Text = ""

For i = 0 To 8

If (chk_bx4(i).Value = 1) Then

bit(i) = 1

Text4.Text = Text4.Text & bit(i)

Else

bit(i) = 0

Text4.Text = Text4.Text & bit(i)

End If

Next

Text4.Text = StrReverse(Text4.Text)

temp4 = 256 * bit(8) + 128 * bit(7) + 64 * bit(6) + 32 * bit(5) + 16 * bit(4) + 8 * bit(3) + 4 * bit(2) + 2 * bit(1) + bit(0)

Text14.Text = temp4

Text9.Text = Hex$(temp4)

End Sub

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

Private Sub funct5()

Text5.Text = ""

For i = 0 To 8

If (chk_bx5(i).Value = 1) Then

bit(i) = 1

Page 9: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 9 

 

Programmer: Kiran P

Text5.Text = Text5.Text & bit(i)

Else

bit(i) = 0

Text5.Text = Text5.Text & bit(i)

End If

Next

Text5.Text = StrReverse(Text5.Text)

temp5 = 256 * bit(8) + 128 * bit(7) + 64 * bit(6) + 32 * bit(5) + 16 * bit(4) + 8 * bit(3) + 4 * bit(2) + 2 * bit(1) + bit(0)

Text15.Text = temp5

Text10.Text = Hex$(temp5)

End Sub

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

Private Sub cmd_priew_Click()

Call disp1

Call disp2

Call disp3

Call disp4

Call disp5

End Sub

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

Private Sub disp1()

For i = 0 To 8

If (chk_bx(i).Value = 1) Then

Page 10: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 10 

 

Programmer: Kiran P

lb1(i).BackColor = vbYellow

Else

lb1(i).BackColor = vbBlack

End If

Next

End Sub

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

Private Sub disp2()

For i = 0 To 8

If (chk_bx2(i).Value = 1) Then

lb2(i).BackColor = vbYellow

Else

lb2(i).BackColor = vbBlack

End If

Next

End Sub

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

Private Sub disp3()

For i = 0 To 8

If (chk_bx3(i).Value = 1) Then

lb3(i).BackColor = vbYellow

Else

lb3(i).BackColor = vbBlack

End If

Page 11: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 11 

 

Programmer: Kiran P

Next

End Sub

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

Private Sub disp4()

For i = 0 To 8

If (chk_bx4(i).Value = 1) Then

lb4(i).BackColor = vbYellow

Else

lb4(i).BackColor = vbBlack

End If

Next

End Sub

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

Private Sub disp5()

For i = 0 To 8

If (chk_bx5(i).Value = 1) Then

lb5(i).BackColor = vbYellow

Else

lb5(i).BackColor = vbBlack

End If

Next

End Sub

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

Page 12: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 12 

 

Programmer: Kiran P

Hope you have understood the program. I have declared 5 Check Boxes each with array of 9 (0 to 8). For preview option I have used 5 Labels each with array of 9. These each array of Labels and Check Boxes resemble each column of the matrix. I did this because if I have declare a single check box of arrays 45 then I need to declare 45 integers, named “bit”, to hold all the check box values. So to reduce the variable I have declared them as array of 9 so that I can use “bit” variables for holding values of each column of Check Box.

If you still have any doubt regarding this program, send me a mail to [email protected] with your name and doubts.

Any suggestion to improve the program is also acceptable.

Programmer: Kiran P

E-Mail: [email protected]

Below chart gives Hexadecimal values for 9X5 dot matrix printer.

//Hex Code To Use Symbol and Code

{0x000,0X000,0X000,0X000}, //” 0

{0x13F,0X000,0X000,0X000}, //! 1

{0X001,0X002,0X001,0X002}, //" 2

{0x028,0x1FF,0x028,0x1FF,0x028}, //# 3

{0X04C,0X092,0X1FF,0X064}, //$ 4

{0x048,0x020,0x010,0x048}, //% 5

{0X0E4,0X11A,0X142,0X140}, //& 6

{0X001,0X002,0X000,0X000}, //' 7

{0X07C,0X041,0X101,0X000}, //( 8

{0X000,0X101,0X041,0X07C}, //) 9

{0x030,0x018,0x030,0x000}, //* 10

{0x010,0x010,0x0FE,0x010,0x010}, //+ 11

Page 13: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 13 

 

Programmer: Kiran P

{0x100,0x080,0x000,0x000}, //, 12

{0x010,0x010,0x010,0x010}, //- 13

{0x000,0x000,0x100,0x000}, //. 14

{0x080,0x070,0x01C,0x007}, /// 15

{0x0FE,0x101,0x101,0x0FE}, //0 16

{0x002,0x1FF,0x000,0x000}, //1 17

{0x0F2,0x111,0x111,0x10E}, //2 18

{0x082,0x111,0x111,0x0EE}, //3 19

{0x018,0x014,0x1FE,0x011}, //4 20

{0x09F,0x111,0x111,0x0E1}, //5 21

{0x0F8,0x114,0x112,0x0E1}, //6 22

{0x003,0x1C1,0x079,0x00F}, //7 23

{0x0EE,0x111,0x111,0x0EE}, //8 24

{0x10E,0x111,0x111,0x0FE}, //9 25

{0x001,0x000,0x101,0x000}, //: 26

{0X100,0X081,0X000,0X000}, //; 27

{0X010,0X028,0X044,0X082}, //< 28

{0x028,0x028,0x028,0x028}, //= 29

{0X082,0X044,0X028,0X010}, //> 30

{0X002,0X171,0X009,0X006}, //? 31

{0X0FE,0X119,0X125,0X0BE}, //@ 32

{0x1FE,0x011,0x011,0x1FE}, //A 33

{0x1FF,0x111,0x111,0x0EE}, //B 34

Page 14: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 14 

 

Programmer: Kiran P

{0x0FE,0x101,0x101,0x0C6}, //C 35

{0x1FF,0x101,0x101,0x0FE}, //D 36

{0x1FF,0x111,0x111,0x183}, //E 37

{0x1FF,0x111,0x011,0x003}, //F 38

{0x0FE,0x101,0x111,0x0F1}, //G 39

{0x1FF,0x010,0x010,0x1FF}, //H 40

{0x101,0x1FF,0x101,0x000}, //I 41

{0x081,0x101,0x101,0x0FF}, //J 42

{0x1FF,0x028,0x044,0x183,0x101}, //K 43

{0x1FF,0x100,0x100,0x180}, //L 44

{0x1FF,0x002,0x006,0x002,0x1FF}, //M 45

{0x1FF,0x00C,0x018,0x060,0x1FF}, //N 46

{0x0FE,0x101,0x101,0x0FE}, //O 47

{0x1FF,0x011,0x011,0x00E}, //P 48

{0x07E,0x181,0x181,0x17E}, //Q 49

{0x1FF,0x011,0x031,0x1CE}, //R 50

{0x08E,0x111,0x111,0x0E2}, //S 51

{0x003,0x001,0x1FF,0x001,0x003}, //T 52

{0x0FF,0x100,0x100,0x0FF}, //U 53

{0x00F,0x078,0x1C0,0x078,0x00F}, //V 54

{0x1FF,0x080,0x040,0x080,0x1FF}, //W 55

{0x101,0x0C6,0x038,0x0C6,0x101}, //X 56

{0x001,0x006,0x1F8,0x006,0x001}, //Y 57

{0x181,0x161,0x119,0x10D,0x103}, //Z 58

{0X1FF,0X101,0X101,0X000}, //[ 59

Page 15: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 15 

 

Programmer: Kiran P

{0X007,0X01C,0X070,0X080}, //\ 60

{0X000,0X101,0X101,0X1FF}, //] 61

{0X002,0X001,0X002,0X000}, //^ 62

{0x100,0x100,0x100,0x100}, //_ 63

{0x001,0x002,0x000,0x000}, //` 64

{0x0E8,0x114,0x114,0x0F8}, //a 65

{0x1FF,0x0A0,0x110,0x0E0}, //b 66

{0x0F8,0x104,0x104,0x104}, //c 67

{0x0E0,0x110,0x0A0,0x1FF}, //d 68

{0x0F8,0x114,0x114,0x118}, //e 69

{0x1FC,0x112,0x012,0x004}, //f 70

{0x138,0x144,0x144,0x1FE}, //g 71

{0x1FF,0x008,0x008,0x1F0}, //h 72

{0x104,0x1FD,0x100,0x000}, //i 73

{0x100,0x104,0x105,0x0FC}, //j 74

{0x1FF,0x028,0x044,0x082}, //k 75

{0x100,0x1FF,0x100,0x000}, //l 76

{0x1F8,0x004,0x1F8,0x004,0x1F8}, //m 77

{0x1F8,0x004,0x004,0x1F8}, //n 78

{0x0E0,0x110,0x110,0x0E0}, //o 79

{0x1FC,0x042,0x042,0x03C}, //p 80

{0x03C,0x042,0x042,0x1FC}, //q 81

{0x1FC,0x108,0x104,0x104}, //r 82

{0x098,0x124,0x124,0x0C8}, //s 83

{0x0FC,0x110,0x110,0x080}, //t 84

Page 16: Find Dot Matrix Printer Head Values in VB6 programming

Dot Matrix Printer Head Values 16 

 

Programmer: Kiran P

{0x0FC,0x100,0x100,0x0FC}, //u 85

{0x01C,0x0E0,0x100,0x0E0,0x01C}, //v 86

{0x0FC,0x100,0x0F0,0x100,0x0FC}, //w 87

{0x110,0x0A0,0x040,0x0A0,0x110}, //x 88

{0x01C,0x120,0x120,0x0FC}, //y 89

{0x110,0x190,0x150,0x130,0x110}, //z 90

{0x010,0x0EE,0x101,0x101}, //{ 91

{0x000,0x1FF,0x000,0x000}, //| 92

{0x101,0x101,0x0EE,0x010}, //} 93

{0x010,0x008,0x010,0x008}, //~ 94

In above chart, symbol represents the symbol which printer will going to print if send corresponding Hex value to the port, and code represent the code value of look up table if you declare the above chart in a 100X5 array of look up table. Some symbol uses only 4 columns in which case you can send 0x000 for 5th column.