89c51 Raining Cou > Week7

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 89c51 Raining Cou > Week7 as PDF for free.

More details

  • Words: 307
  • Pages: 15
Multitasking Programming task1=Display clock on screen task2=onboard LED blinks task3=set hour/min while clock running RS232C Cable

17:59:50

8051SBC

1

One CPU: Time slice

10ms

10ms

10ms

10ms

10ms

10ms

2

One CPU: 10ms Time slice

task1 task2 task3

10ms

3

MAIN Program: 10ms loop ; main 10ms loop LOOP: CALL WAIT_TICK CALL TICK_LED CALL UPDATE_CLOCK CALL GETCHAR CALL PRINT_TIME CALL HOUR_KEY CALL MIN_KEY JMP LOOP 4

MAIN Program: WAIT_TICK ; ____|____|____|____|____ WAIT_TICK: JNB TF0,$ CLR TF0 ORL TH0,#0DCH INC TICK RET

5

MAIN Program: TICK_LED LED= on

50ms(=5ticks)

1000ms (=100ticks)

Flag1.1 = 1 Timer1++

Flag1.1 = 1 Flag1.1 = 0

= 5ticks

6

Print time to terminal ; PRINT TIME EVERY SECOND PRINT_TIME: JNB FLAG1.0,EXIT_PRINT_TIME CLR FLAG1.0 PRINT_TIME1: MOV A,#CR CALL COUT MOV A,HOUR CALL PHEX 7

Print time to terminal MOV A,#':' CALL COUT MOV A,MIN CALL PHEX MOV A,#':' CALL COUT MOV A,SEC CALL PHEX EXIT_PRINT_TIME: RET

8

FLAG1.0 set every second

1000ms (=100ticks)

Flag1.0 = 1

Flag1.0 = 1

Flag1.0 = 0 cleared by print time

9

Check serial port every 10ms ; exit: COMMAND == -1 NO CHARACTER ; COMMAND != -1 ASCII CODE GETCHAR:JNB RI,EXIT2 CLR RI MOV A,SBUF MOV COMMAND,A RET EXIT2: MOV COMMAND,#-1 RET 10

Command ‘h’ to set HOUR HOUR_KEY: MOV A,COMMAND CJNE A,#'h',EXIT_HOUR_KEY MOV A,HOUR ADD A,#1 DA A MOV HOUR,A CJNE A,#24H,SKIP_CLEAR_HOUR

11

Command ‘h’ to set HOUR MOV HOUR,#0 SKIP_CLEAR_HOUR: CALL PRINT_TIME1 EXIT_HOUR_KEY: RET

12

Command ‘m’ to set MIN MIN_KEY:MOV A,COMMAND CJNE A,#'m',EXIT_MIN_KEY MOV A,MIN ADD A,#1 DA A MOV MIN,A CJNE A,#60H,SKIP_CLEAR_MIN MOV MIN,#0 13

Command ‘m’ to set MIN SKIP_CLEAR_MIN: CALL PRINT_TIME1 EXIT_MIN_KEY: RET

14

Summary of Multitasking concept 1. No infinite loop for each task! 2. Task communication was made with FLAG signaling! 3. Total tasks execution must be less than 10ms or one tick. 4. Round-robin scheduler. Demonstrates code running... 15

Related Documents

89c51 Raining Cou > Week7
November 2019 16
89c51 Raining Cou > Lesson3
November 2019 12
89c51 Raining Cou > Lesson9
November 2019 10
89c51 Raining Cou > Lesson6
November 2019 15
89c51 Raining Cou > Week6
November 2019 9
89c51 Raining Cou > Lesson7
November 2019 9