โปรแกรมการทำงาน      
st7/ ;เป็นส่วนหัวโปรแกรมกำหนดว่ากำลังทำงานกับไมโครคอนโทรเลอร์เบอร์ ST7
TITLE "robot.ASM" ;การเขียนโปรแกรมลงบนไฟล์ชื่อ robot.asm
MOTOROLA ;การคอมพายใช้มาตฐานของMotorola
#INCLUDE "ST72FLT0.INC" ;เรียกใช้งานการกำหนดค่าต่างของหน่วยความจำบนST7
;******** เริ่มการเขียนโปรแกรม
.R0 EQU $80 ;กำหนดค่าตัวแปรให้เป็นตัวเก็บข้อมูล Ram
.R1 EQU $81 ;
.R2 EQU $82 ;
.R3 EQU $83 ;
.R4 EQU $84 ;

WORDS
segment 'rom' ;กำหนดตำแหน่งการเขียนข้อมูลในหน่วยความจำ
.MAIN CALL INIT ;กำหนดการทำงานต่างๆของพอร์ต
;*************************START PROGRAM
CALL TDELAY ; หน่วงเวลา
.START ;เริ่มการต้นการทำงาน หน้าหลัก
BRES PADR,#6 ;หยุดการทำงานมอเตอร์
BRES PADR,#7 ;หยุดการทำงานมอเตอร์
BRES PBDR,#3 ;หยุดการทำงานมอเตอร์
BRES PBDR,#4 ;หยุดการทำงานมอเตอร์
BRES PADR,#0 ;ให้LED 1 หยุดการทำงาน ดับ
BRES PADR,#1 ;ให้LED 2 หยุดการทำงาน ดับ
BTJT PBDR,#2,AFORW ;ตรวจสอบการกดปุ่มเดินหน้าที่เครื่องส่ง
BTJT PBDR,#0,ALEFT ; ตรวจสอบการกดปุ่มเลี้ยวขวาที่เครื่องส่ง
BTJT PBDR,#1,ARIGHT ; ตรวจสอบการกดปุ่มเลี้ยวซ้ายที่เครื่องส่ง
JP START ;ถ้าไม่มีการกดปุ่มใดๆ ให้กระโดดไปจุดเริ่มต้นการทำงาน
.AFORW JP FORW ;มีการกดปุ่มเดินหน้ากระโดดไปในโปรแกรมเดินหน้า
.ALEFT JP LEFT ;มีการกดปุ่มเลี้ยวขวากระโดดไปในโปรแกรมเดินหน้า
.ARIGHT JP RIGHT ;มีการกดปุ่มเลี้ยวซ้ายกระโดดไปในโปรแกรมเดินหน้า
;********************************************
.FORW ;โปรแกรมย่อย เดินหน้า
CALL DELAY
.FOR1
BSET PBDR,#3 ;เซตให้มอเตอร์หลังหมุนตามเข็มนาฬิกา
BRES PBDR,#4 ;เซตให้มอเตอร์หลังหมุนตามเข็มนาฬิกา
BTJT PADR,#3,FOR1 ;ขาซ้ายหลังแตะสวิตช์ S3 หรือไม่ ถ้าไม่กระโดดไปที่ for1
BRES PBDR,#3 ;หยุดการทำงานของมอเตอร์
BRES PBDR,#4 ;หยุดการทำงานของมอเตอร์
CALL DELAY ;หน่วงเวลา
.FOR2
BRES PADR,#6 ;
BSET PADR,#7
BSET PADR,#0 ; LED1 ON
BRES PADR,#1 ; LED2 OFF
BTJT PADR,#4,FOR2

BRES PADR,#6 ;
BRES PADR,#7 ;
CALL DELAY
.FOR3
BRES PBDR,#3 ; R
BSET PBDR,#4 ; R
BTJT PADR,#2,FOR3

BRES PBDR,#3 ; STOP R
BRES PBDR,#4 ; STOP R
CALL DELAY

 
     มีต่อ...      

             ออกแบบและจัดทำโดย :: BASICLITE.COM
  Email: basic@basiclite.com   
   สายตรง