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 14:49
Read: times


 
#106844 - Just experimenting with PRE
Responding to: ???'s previous message
Hi Again,

I'm reposting the code just so I can try out the PRE tag.

I don't want to say what is attached to Port 0 except to say that it is not pulling the pins low, and that this circuit has worked in a previous test. Obviously I could be wrong since I don't know what is causing this, but I really believe it is in the software.

So how can one disassociate the pins from the port register? If I wanted the µ-controller to work this way, I don't know how I could cause it? Is it possible that I left out a definition or something?

Joe



$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