-
Notifications
You must be signed in to change notification settings - Fork 8
displayvalue
Anobium edited this page Oct 18, 2020
·
1 revision
Syntax:
DisplayValue (display, data, dot)
Command Availability:
Available on all microcontrollers.
Explanation:
This command will display the given value on a seven segment LED display.
display
is the number of the display to use. Up to 4 digits.
data
is the value between 0 and F to be shown.
dot
is an optional parameter. When it is 1 then the decimal point for
that digit is turned on.
The command also support HEX characters in the range between 0x00 and 0x0F (0 to 15). See example two below for usage.
Example 1:
'This program will count from 0 to 99 on two LED displays
#chip 16F819, 8
'See 7 Segment Display Overview for alternate ways of defining Ports
#define DISP_SEG_A PORTB.0
#define DISP_SEG_B PORTB.1
#define DISP_SEG_C PORTB.2
#define DISP_SEG_D PORTB.3
#define DISP_SEG_E PORTB.4
#define DISP_SEG_F PORTB.5
#define DISP_SEG_G PORTB.6
'#define DISP_SEG_DOT PORTB.7 ' Optional DP
#define DISP_SEL_1 PORTA.0
#define DISP_SEL_2 PORTA.1
Do
For Counter = 0 To 99
'Get the 2 digits
Number = Counter
Num1 = 0
If Number >= 10 Then
Num1 = Number / 10
'SysCalcTempX stores remainder after division
Number = SysCalcTempX
End If
Num2 = Number
'Show the digits
'Each DisplayValue will erase the other (multiplexing)
'So they must be called often enough that the flickering
'cannot be seen.
Repeat 500
DisplayValue 1, Num1
Wait 1 ms
DisplayValue 2, Num2
Wait 1 ms
End Repeat
Next
Loop
Example 2:
'This program will count from 0 to 0xff on two LED displays
#chip 16F819, 8
#define DISP_SEG_A PORTB.0
#define DISP_SEG_B PORTB.1
#define DISP_SEG_C PORTB.2
#define DISP_SEG_D PORTB.3
#define DISP_SEG_E PORTB.4
#define DISP_SEG_F PORTB.5
#define DISP_SEG_G PORTB.6
#define DISP_SEL_1 PORTA.0
#define DISP_SEL_2 PORTA.1
#define DISP_SEL_4 PORTA.2
#define DISP_SEL_3 PORTA.3
Do
For Counter = 0 To 0xff
'Get the 2 digits
Number = Counter
Num1 = 0
If Number >= 0x10 Then
Num1 = Number / 0x10
'SysCalcTempX stores remainder after division
Number = SysCalcTempX
End If
Num2 = Number
'Show the digits
'Each DisplayValue will erase the other (multiplexing)
'So they must be called often enough that the flickering
'cannot be seen.
Repeat 500
DisplayValue 1, Num1
Wait 1 ms
DisplayValue 2, Num2
Wait 1 ms
End Repeat
Next
Loop
Also, see 7 Segment Display Overview, DisplayChar, DisplaySegment