View previous topic :: View next topic |
Author |
Message |
horkesley
Joined: 20 Feb 2007 Posts: 48 Location: Essex UK
|
16 bit i/o |
Posted: Tue Nov 06, 2007 1:32 pm |
|
|
Hi,
I want to output a 16 bit address to access a LCD graphics controller.
If I create a int16 how do I output this on two ports as a 16 bit?
I may need to increase this to a 20 bit address.
Comments please.
Regards,
Stefan _________________ Horkesley Electronics Limited |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Tue Nov 06, 2007 2:05 pm |
|
|
Here is one way to do it:
Code: |
#include <16F877.H>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)
int16 LCD_data;
#locate LCD_data = 0x06 // LSB on Port B. MSB on Port C.
//======================================
void main()
{
LCD_data = 0x1234;
while(1);
} |
Here's the .LST file:
Code: |
..... LCD_data = 0x1234;
0017: MOVLW 12 // MSB
0018: MOVWF 07 // Port C
0019: MOVLW 34 // LSB
001A: MOVWF 06 // Port B
|
|
|
|
horkesley
Joined: 20 Feb 2007 Posts: 48 Location: Essex UK
|
|
Posted: Wed Nov 07, 2007 8:35 am |
|
|
Many thanks PCM Programmer
Horkesley _________________ Horkesley Electronics Limited |
|
|
|