$regfile = "m16def.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 9600
Config Portc.0 = Output 'Strobe '
Config Portc.1 = Output 'Clock
Config Portc.2 = Output 'Data input / output
Config Portb.0 = Output ' Extra Test LED
Strobe Alias Portc.0
Clk Alias Portc.1
Dio Alias Portc.2
Led Alias Portb.0
Config strobe = Output
Config Dio = Output
Dim command_1 As Byte
Dim command_2 As Byte
Dim command_3 As Byte
Dim command_4 As Byte
Dim D0 As Byte
Dim D1 As Byte
Dim D2 As Byte
Dim D3 As Byte
Dim D4 As Byte
Dim D5 As Byte
Dim D6 As Byte
Dim D7 As Byte
Dim D8 As Byte
Dim D9 As Byte
Dim Dm As Byte
Dim Readkey As Byte
Dim Rd As Byte
Dim Scankey As Byte
Dim I As Byte
Command_1 = &B00000011 'Display Mode setting 7 digit 10 Segment
Command_2 = &B01000000 'data setting in write data & Inr display address
Readkey = &B01000010 'Data setting in read key
Command_3 = &B11000000 'Address setting 00H
Command_4 = &B10001000 'display control pulse 1/16 & Display On
Scankey = &B10000000 ' Display Controler Display off & key scan
Dm = &B00000000 ' dummy data to blank the display
' Display code for 7 segment
D0 = &B00111111 ' =0
D1 = &B00000110 ' =1
D2 = &B01011011 ' =2
D3 = &B01001111 ' =3
D4 = &B01100110 ' =4 **
D5 = &B01101101 ' =5
D6 = &B01111101 ' =6
D7 = &B00000111 ' =7
D8 = &B01111111 ' =8
D9 = &B01101111 ' =9
' init TM 1628
Gosub Tm1628_init
Waitms 5
' Blank TM 1628
Gosub Tm1628_blank
Waitms 5
Do
Set Strobe
Reset Strobe
Shiftout Dio , Clk , command_3 , 2
Set strobe
Reset strobe
Shiftout Dio , Clk , command_2 , 2
'send 0 to 6 for display
'need to send dummy blank data after every valid data for using 7 segment
Shiftout Dio , Clk , D0 , 2
Shiftout Dio , Clk , Dm , 2
Shiftout Dio , Clk , D1 , 2
Shiftout Dio , Clk , Dm , 2
Shiftout Dio , Clk , D2 , 2
Shiftout Dio , Clk , Dm , 2
Shiftout Dio , Clk , D3 , 2
Shiftout Dio , Clk , Dm , 2
Shiftout Dio , Clk , D4 , 2
Shiftout Dio , Clk , Dm , 2
Shiftout Dio , Clk , D5 , 2
Shiftout Dio , Clk , Dm , 2
Shiftout Dio , Clk , D6 , 2
Shiftout Dio , Clk , Dm , 2
Set Strobe
Wait 2
' Read key & display on first segment
Gosub Tm1628_blank
Waitms 5
Gosub Tm1628_key
Gosub Tm1628_display
Wait 2
Loop
Tm1628_init:
Set Strobe
Reset Strobe
Shiftout Dio , Clk , Command_2 , 2
Set Strobe
Waitms 3
Reset Strobe
Shiftout Dio , Clk , Command_3 , 2
Set Strobe
Waitms 3
Reset Strobe
Shiftout Dio , Clk , Command_1 , 2
Set Strobe
Waitms 3
Reset Strobe
Shiftout Dio , Clk , command_4 , 2
Set Strobe
Return
Tm1628_blank:
Set Strobe
Reset Strobe
Shiftout Dio , Clk , command_2 , 2
'send Blank data to TM 1828
For I = 1 To 14
Shiftout Dio , Clk , Dm , 2
Next I
Set strobe
Return
Tm1628_key:
' enable scan key & disable display
Set Strobe
Reset Strobe
Shiftout Dio , Clk , Scankey , 2
Set Strobe
' start read key
Waitms 3
Reset Strobe
Shiftout Dio , Clk , Readkey , 2
Waitms 200
' read key
Shiftin Dio , Clk , Rd , 2
Set Strobe
' disable key scan & enable display
Reset strobe
Shiftout Dio , Clk , Command_4 , 2
Set strobe
Return
Tm1628_display:
Set strobe
Reset strobe
Shiftout Dio , Clk , Command_2 , 2
Reset Strobe
Shiftout Dio , Clk , Command_3 , 2
Set Strobe
Shiftout Dio , Clk , Rd , 2
Set Strobe
Return
End
|