微控制器入門匯程式設計序程式15 4 太陽跟隨系統

2022-11-21 01:57:04 字數 3804 閱讀 8238

[, , , , , , ]

ldr1 equ p3.0 ; 定義變數ldr1,光線感測器1輸入

ldr2 equ p3.5 ; 定義變數ldr2,光線感測器2輸入

lim1 equ p1.2 ; 定義變數lim1,限位開關1

lim2 equ p1.3 ; 定義變數lim2,限位開關2

sw1 equ p1.0 ; 定義變數sw1,開始跟隨開關

sw2 equ p1.1 ; 定義變數sw2,停止跟隨開關

ena equ p2.5 ; 定義變數ena,x軸電機使能

enb equ p2.6 ; 定義變數enb,y軸電機使能

mx1 equ p2.0 ; 定義變數mx1,x軸電機控制端1

mx2 equ p2.1 ; 定義變數mx2,x軸電機控制端2

my1 equ p2.2 ; 定義變數my1,y軸電機控制端1

my2 equ p2.3 ; 定義變數my2,y軸電機控制端2

mott equ 00h定義變數mott

org 00h

main:

mov p1,#0fhp1低位作輸入端

mov mott,#01hmott=01h

mmins:

call motorr調motorr子程式

jb lim2,mmins

setb ena兩個電機停止

setb enb

clr mx1

clr mx2

clr my1

clr my2

setb sw1等待開始跟隨開關被按下

jb sw1,$

nopjnb sw1,$

mmain:

setb ldr1

setb ldr2

setb lim1

setb lim2

jb ldr1,sd1如果光線感測器1為暗,則跳到sd1

jb ldr2,sd2如果光線感測器2為暗,則跳到sd2

jnb lim1,mmains

jnb sw2,stop判斷停止跟隨按鈕

jb lim2,mmain

setb ena兩個電機停止

setb enb

clr mx1

clr mx2

clr my1

clr my2

jmp start_tracking

stop:

call motorr

jb lim2,stop

jnb sw2,$

jmp main迴圈

sd1:

jb ldr2,sd3如果光線感測器2為暗,跳到sd3

sd4:

jb ldr1,sd4旋轉直到光線感測器1為亮

jb ldr2,sd2旋轉直到光線感測器2為亮

jmp start_tracking

sd2:

call motorl

jnb lim1,mmains

jb ldr2,sd2

jb ldr1,sd1

jmp start_tracking

sd3:

setb lim1

setb lim2

jnb lim1,mmains

jnb ldr1,mmain

jnb ldr2,mmain

jmp sd3

mmains:

call motorr

jb lim2,mmains

snm:

call delay

jnb ldr1,snm

call delay

jb ldr2,snm

jmp mmain

motorl:

mov a,mott

cjne a,#01h,xc1

mov mott,#04h

call motor_rotate

call delay

retxc1:

dec mott

call motor_rotate

call delay

retmotorr:

mov a,mott

cjne a,#04h,xc2

mov mott,#01h

call motor_rotate

call delay

retxc2:

inc mott

call motor_rotate

call delay

retstart_tracking:

jmp mmain

motor_rotatex軸和y軸電機組合運動

mov a,mott

cjne a,#01h,gb1

setb enax軸和y軸電機正轉

setb enb

setb mx1

clr mx2

setb my1

clr my2

retgb1:

cjne a,#02h,gb2

setb enax軸電機正轉y軸電機反轉

setb enb

setb mx1

clr mx2

clr my1

setb my2

retgb2:

cjne a,#03h,gb3

setb enax軸電機反轉y軸電機正轉

setb enb

clr mx1

setb mx2

setb my1

clr my2

retgb3:

cjne a,#04h,gb4

setb enax軸和y軸電機反轉

setb enb

clr mx1

setb mx2

clr my1

setb my2

gb4:

retdelay:

mov r0,#45h

rep2:

mov r1,#99h

rep1:

nop djnz r1,rep1

djnz r0,rep2

retend

匯程式設計序小例項

mov ah,01h系統呼叫輸入乙個字元用於功能選擇 int 21h字元預設輸入到al中 endm 巨集定義字元輸出 charout macro outchar巨集定義將字元outchar輸出 push ax push dx mov dl,outchar mov ah,02h系統呼叫輸出字元outc...

微機原理 匯程式設計序

微機原理 1陣列straing中存放著多個8位有符號數,以 結束,要求分成正陣列和負陣列分別存放,並統計兩個陣列的個數,分別存於正 負陣列的第乙個位元組 data segment dat1 db 12h,0f3h,38h,32h,0e6h,67h,0d9h,buf1 db 10 dup 00h bu...

微控制器程式詳解

微控制器程式詳解.txt 根網線 盡賺了多少人的青春 有時候感動的就是身邊微不足道的小事。破碎不是最殘酷的最殘酷的是踩著這些碎片卻假裝不疼痛固執的尋找 將來就算我遇見再怎麼完美的人,都有乙個缺點,他不是你,下輩子要做男生,娶乙個像我這樣的女生。程式詳解 程式清單 共陽數碼管加減顯示 sp1 bit ...