Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
01/08/06 12:30
Read: times


 
#106836 - PRE tag !!
Responding to: ???'s previous message
Hi Joe,
Here is your code, posted with the
 tag set.

What's attached to Port 0, generically ? 

Steve


Joseph Hebert said:
$TITLE(*****)

; This program is to test the *****
; circuit via the µ-controller circuit.

CSEG AT 0
JMP START

START:

; Define control lines specific to this project

SBIT TE = P3.2		; T**** E**** (active high)
SBIT MANW = P3.3	; Manual Write, (active low)
SBIT MR = P3.4		; Master Reset *****, (actve low)
SBIT CS = P3.5		; **** Chip Select, (active low)
SBIT ****S = P3.6	; **** Select, (~*****/*****)

; Set UART Mode and BAUD rate

	MOV SCON, #0x50	; Mode 1, 8-bit UART, enable receiver
	MOV TMOD, #0x20	; Timer 1, mode 2, 8-bit reload
	MOV TH1, #0xFD	; TH1 = 253, 9600 baud w/11.0592 MHz xtal
	SETB TR1	; Turn on Timer 1
	MOV SBUF, #'.'	; Send ACK to host
	JNB TI, $	; Wait for send
	CLR TI		; Reset flag

; Initialize µ-controller control lines

	CLR TE			; Put TE low, in-active state
	SETB MANW		; Put MANW hi, in-active state
	SETB MR			; Put MR hi, in-active state
	SETB CS			; Put CS hi, in-active state
	CLR ****S		; Put ****S low, select *****

; Body of program. Structure is a single pass loop. Program
; operation will normally idle at the instruction labeled LOOP.

LOOP:	JNB RI, $		; Wait for host command
	CLR RI			; Command received, clear flag
	MOV A, SBUF		; Move command to Accumulator
	CJNE A, #'L', RUN	; If not (L)oad, test (R)un

; Reset *****
	CLR TE			; Put TE low, in-active state
	SETB MANW		; Put MANW hi, in-active state
				; These are necessary for MR to
				; be effective.
	CLR MR			; Before loading new data,	SETB MR			; clear the old one.

LOAD:	MOV SBUF, A		; Echo 'L' command
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, reset flag
	MOV SBUF, #'.'		; Confirm command accepted
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, clear flag
	JNB RI, $		; Wait for next data byte
	CLR RI			; Data received, clear flag
	MOV A, SBUF		; Move data byte into accumulator
	CJNE A, #'.', L2	; Test for end of data
	MOV SBUF, #'x'		; Acknowledge end of data
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, reset flag
	MOV P0, #0xFF		; Set port to hi states
	JMP LOOP		; If end of data, return
L2:	MOV P0, A		; Write data byte to Port 0
	CLR MANW		; Clock into *****
	SETB MANW		; Reset MANW to non-active state
	JMP LOAD		; Go get next data byte

RUN:	CJNE A, #'R', STOP	; If not (R)un, test (S)top
	MOV SBUF, A		; Echo 'R' command
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, reset flag
	MOV SBUF, #'.'		; Confirm command accepted
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, clear flag
	CLR CS			; Enable ****
	SETB TE			; Turn on ******
	JMP LOOP		; Return to main loop

STOP:	CJNE A, #'S', GAIN	; Ifnot (S)top, test (G)ain
	MOV SBUF, A		; Echo 'S' command
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, reset flag
	MOV SBUF, #'.'		; Confirm command accepted
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, clear flag
	CLR TE			; Turn off ******
	SETB CS			; Disable ****
	JMP LOOP		; Return to main loop

GAIN:	CJNE A, #'G', OUT	; If not (G)ain, go to (O)ut
	MOV SBUF, A		; Echo 'G' command
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, reset flag
	MOV SBUF, #'.'		; Confirm command accepted
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, clear flag
	CLR TE			; Turn off ****** 
	SETB CS			; Disable ****
G2:	JNB RI, $		; Wait for gain setpoint byte
	CLR RI			; Byte received, clear flag
	MOV P0, SBUF		; Put gain byte on Port 0
	MOV SBUF, #'.'		; Confirm Data set
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, reset flag
	SETB ****S		; Select *****
	CLR CS			; Select **** for input
	CLR MANW		; Clock gain setpoint into *****
	SETB MANW		; Return MANW to in-active state
	SETB CS			; Return **** CS to in-active	CLR ****S		; Select ***** again
	MOV P0, #0xFF		; Reset the data bus
	JMP LOOP		; Return to main loop

OUT:	MOV SBUF, A		; Echo unknown command
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, clear flag
	MOV SBUF, #'x'		; Confirm command unrecognized
	JNB TI, $		; Wait for send
	CLR TI			; Send complete, reset flag
	JMP LOOP		; Go back to beginning of program

	END


List of 20 messages in thread
TopicAuthorDate
Different value in Port 0 and on Pins.            01/01/70 00:00      
   Register is not the port            01/01/70 00:00      
      similar happened here            01/01/70 00:00      
         Not pull up issue            01/01/70 00:00      
            re not pull up issue            01/01/70 00:00      
   And you use pull-ups at port 0?            01/01/70 00:00      
   Code            01/01/70 00:00      
      PRE tag !!            01/01/70 00:00      
      Just experimenting with PRE            01/01/70 00:00      
         one step forward, two back....            01/01/70 00:00      
            old code            01/01/70 00:00      
               Sorry but            01/01/70 00:00      
                  The perks, and the pull ups            01/01/70 00:00      
                     ideal system            01/01/70 00:00      
         Code            01/01/70 00:00      
            Yep. That's really what I want to do            01/01/70 00:00      
   Everybody Stop            01/01/70 00:00      
   Problem Solved            01/01/70 00:00      
      Hey Craig or Steve            01/01/70 00:00      
      Remember            01/01/70 00:00      

Back to Subject List