亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? drivers.asm

?? 基于凌陽61和pwm電機實現(xiàn)的智能車總程序
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
.INCLUDE HARDWARE.ASM


SET_IOA_IN: .MACRO  //USING R1 FOR TEMP
  R1 = 0x00ff
  [P_IOA_Dir] = R1
  R1 = 0xFFFF
  [P_IOA_Attrib] = R1 
.ENDM

SET_IOA_OUT: .MACRO //USE R1 FOR TEMP
  R1 = 0xFFFF
  [P_IOA_Attrib] = R1
  [P_IOA_Dir] = R1
.ENDM

RD_8279_FIFORAM: .MACRO //改變了 R1,R2的值,使用 R1 返回函數(shù)值
  SET_IOA_IN;
  R2 = C_RD_FIFORAM
  [P_IOB_Data] = R2;
//  R1 = 0x0000
//  [P_IOA_Data] = R1;
  R1 = [P_IOA_Data];
  R2 = C_IOB_DEFAULT & ~C_8279_A0
  [P_IOB_Data] = R2
.ENDM 

RD_8279_STATUS: .MACRO //改變了 R1,R2的值,使用 R1 返回函數(shù)值
  SET_IOA_IN;
  R2 = C_RD_STATUS 
  [P_IOB_Data] = R2;
//  R1 = 0x0000
//  [P_IOA_Data] = R1;
  R1 = [P_IOA_Data];
  R2 = C_IOB_DEFAULT 
  [P_IOB_Data] = R2
.ENDM 

WR_8279_DISPLAYRAM: .MACRO DATA  //改變了 R1,R2 的值
//  .IFMA 0
//    .MACEXIT
//  .ENDIF
  SET_IOA_OUT;
  R2 = C_WR_RAM
  [P_IOB_Data] = R2;
  R1 = DATA;
  R2 = [P_IOA_Data]
  R2 = R2 & 0x00FF
  R1 = R1 | R2
  [P_IOA_Data] = R1;
  R2 =  C_IOB_DEFAULT & ~C_8279_A0
  [P_IOB_Data] = R2;
.ENDM

WR_8279_CONTROL: .MACRO DATA  //改變了 R1,R2 的值
//  .IFMA 0
//    .MACEXIT
//  .ENDIF
  SET_IOA_OUT;
  R2 = C_WR_CONTROL
  [P_IOB_Data] = R2;
  R1 = DATA;
  R2 = [P_IOA_Data]
  R2 = R2 & 0x00FF
  R1 = R1 | R2
  [P_IOA_Data] = R1;
  R2 =  C_IOB_DEFAULT ;
  [P_IOB_Data] = R2;
.ENDM

EXCHANGER4: .MACRO
  BP = discode;
  R4 = R4 LSR 4
  R4 = R4 LSR 4
  r4 =r4 + bp
  R4 = [R4]
.ENDM

EXCHANGER3: .MACRO
  bp = discode;
  r3 = r3 + bp
  R3 = [R3]
.ENDM

CLEAR_WATCHDOG: .MACRO  //USE R1
  R1 = 0x0001
  [P_Watchdog_Clear] = R1
.ENDM        


.external CPointFlag,TurnLeftNoPwm,ForwardNoPwm
.external Time
.iRAM
.VAR counter = 4;
.VAR LastState = 0;
.var Total = 0
.var B2C = 0
.public TestObjectFlag
.var TestObjectFlag = 0  //一左\二右\三雙\零無障
.public TimeB2C
.var TimeB2C=0
.public Time5Sec
.var Time5Sec=0
.public Time5SecFlag
.var Time5SecFlag=0
.public LastIntCtrlStatus
.var LastIntCtrlStatus

.DATA
.public discode
discode:
.DW 0x3F00,0x0600,0x5b00,0x4f00,0x6600,0x6d00,0x7d00,0x0700,0x7f00,0x6f00;

//==============================================================================
//==============================================================================

.CODE
//////////////////////////
//  SP061 INITIAL       //
//----------------------//
.PUBLIC _SP061_INIT
_SP061_INIT: .PROC
       INT OFF
       R1 = 0x0008
       [P_SystemClock] = R1 
       BP = discode;
/////////////////////
//P_IOA Initial
/////////////////////
     //A口全部做為帶下拉電阻的輸入口
     R1=0xFFFF;               //A口輸入
     [P_IOA_Dir]=R1;
     [P_IOA_Attrib]=R1;
     
     //P_IOB Initial
     //IOB2--->EXT1; IOB3--->EXT2
     R1 = 0x01F3;	                 //設置IOB2,IOB3為輸入
	 [P_IOB_Dir] = R1;               //
	 R1 = 0xFFF3;                    //IOB2,IOB3設置為輸入,高8位輸入
	 [P_IOB_Attrib] = R1;            //
	 R1 = 0xFFFF	
	 [P_IOB_Data] = R1;  
	   
	 //中斷控制寄存器設置
	 R1 = 0xFFFF
	 [P_INT_Clear] = R1
	 R1 = 0x020C; 				     //開中斷IRQ3_EXT1
	 [P_INT_Ctrl] = R1
	 [P_INT_New] = R1
	 
	 r1 = 0x0001
	 [P_Watchdog_Clear] = R1
	 
	 //Timer initial
	 r1 = 0x0007
	 [P_TimerB_Ctrl] = r1
	 r1 = 0x0000
	 [P_TimerB_Data] = r1
	 
//	 r1 = 0x0000
//	 [P_TimeBase_Setup] = r1
	 
	 CALL INIT_8279

	 INT IRQ;                        //開中斷
RETF
.ENDP

//**********************************************//
//Function Name : INIT_8279                     //
//Function : none                               //
//Input    : R1, R2                             //
//Output   : initial 8279,display GOOD on leds  //
//Destroy  : R1,R2                              //
.PUBLIC INIT_8279
INIT_8279: .PROC
  WR_8279_CONTROL 0x0100  //鍵盤/顯示方式命令字
                          //8個字符顯示左入口,編碼掃描鍵盤雙鍵鎖定
  WR_8279_CONTROL 0x3800  //8279掃描頻率設定
  WR_8279_CONTROL 0xD300  //清顯示、FIFO RAM
?LOP:
  nop
  RD_8279_STATUS          //讀狀態(tài)REG,比較是否清除完成
  TEST R1,0x8000
  JNZ ?LOP
  WR_8279_CONTROL 0x8000  //地址非自動增加,顯示RAM 0x00
  WR_8279_DISPLAYRAM C_SEG_g  //顯示 g
  WR_8279_CONTROL 0x8100  //地址非自動增加,顯示RAM 0x01
  WR_8279_DISPLAYRAM C_SEG_o  //顯示 o
  WR_8279_CONTROL 0x8200  //地址非自動增加,顯示RAM 0x02
  WR_8279_DISPLAYRAM C_SEG_o  //顯示 o
  WR_8279_CONTROL 0x8300  //地址非自動增加,顯示RAM 0x03
  WR_8279_DISPLAYRAM C_SEG_d  //顯示 d
  RETF
.ENDP

.PUBLIC DisplayKey
DisplayKey: .proc
  push r2,r4 to [sp]
  R3 = [counter]
  cmp r3,0x0
  jne ?next
  r3 = 4
  [counter] = r3
?next:
  R3 = [counter]
  R3 = R3 LSL 4
  R2 = R3 LSL 4
  R3 = 0x8400
  R3 = R3 - R2
  EXCHANGER4
  WR_8279_CONTROL R3
  WR_8279_DISPLAYRAM R4
  R3 = [counter]
  r3 -=1
  [counter]= r3
  pop r2,r4 from [sp] 
retf
.endp

//*************************************//
//          計算速度函數(shù)               //
// 參數(shù): R1 為計數(shù)值                  //
// 返回:R3中為速度值,R4中為方向狀態(tài)  //
//       R4     |      方向            //
//       ------------------            //
//        0     |       正             //
//        1     |       反             //     
.public CalV
CalV: .proc
  r2 = 8          //  單位長度/一秒鐘
  mr = r1 * r2,us
  r1 = r3
//  r2 = 10
//  call F_Divider
  SET_IOA_IN
  R1 = [P_IOA_Data]
  test r1,C_CAR_Dir
  JZ BACKWARD
FORWARD:
  R4 = 0;
  JMP EXIT
BACKWARD:
  R4 = 1;
EXIT:
retf
.endp

//*************************************//
//          計算路程函數(shù)               //
// 參數(shù): R1 為計數(shù)值                  //
// 返回:R3中為總路程                  //
//                 //
//                 //
//                   //
//                   //  
.public CalLong
CalLong: .proc
  r2 =  4         //  單位長度/一個脈沖
  mr = r1 * r2,us
  cmp r3,140
  jbe next1
GoToC:
  r1 = 1
  [B2C] = r1  
next1:  
  r1 = [CPointFlag]
  test r1,0
  jne quit
  cmp r3,260
//  CMP R3,300
  jbe quit
  
setCPointFlag:
  r1 = 1
  [CPointFlag] = r1
  
quit:   
retf
.endp

//**********************************************//
//Function Name : F_Divder                      //
//Function : R1/R2                              //
//Input    : R1, R2                             //
//Output   : R3; Integer value                  //
//Destroy  : All                                //
//                                                                             
.PUBLIC F_Divider
F_Divider: .proc

         R4 = R1;
         R3 = 0;
         R5 = 0;
Loop_1:
         CMP  R4,R2;
         JB   Loop_2;
         R4 -= R2;
         R3 += 1;
         JMP  Loop_1;
Loop_2:
         R5 += 1;
         CMP  R5,8;                     //Scale : 1/(2^8) = 1/256
         JG   EndDivide;
         R3 = R3 LSL 1;
         R4 = R4 LSL 1;
         JMP Loop_1;
EndDivide:
         R3 = R3 LSR 4;                 //R3/(2^8)
         R3 = R3 LSR 4;
         RETF;
.ENDP

//**********************************************//
//Function Name : Hex2Dec                       //
//Function : Hex2Dec void                       //
//Input    : R3                                 //
//Output   : R3; display on LED                 //
//Destroy  : All                                //
.PUBLIC Hex2Dec
Hex2Dec: .PROC
  push r3 to [sp]
  push r3 to [sp]
  r1 = r3
  R2 = 100  //轉(zhuǎn)換百位
  CALL F_Divider
  PUSH R3 TO [SP]
  WR_8279_CONTROL 0x8100  //將百位顯示在數(shù)碼管上
  EXCHANGER3  //換碼
  WR_8279_DISPLAYRAM R3
  POP R3 FROM [SP]
  r2 = 100
  mr = R3*r2,us  //恢復
  r1 = r3
  pop r3 from [sp]
  r3 = r3 -r1  //求第一次余數(shù)
  push r3 to [sp]
  R1 = R3
  r2 = 10  //在余數(shù)中轉(zhuǎn)換十位
  call F_Divider
  PUSH R3 TO [SP]
  WR_8279_CONTROL 0x8200  //將十位顯示在數(shù)碼管上
  EXCHANGER3  //換碼
  WR_8279_DISPLAYRAM R3
  POP R3 FROM [SP]
  r2 = 10
  mr = r2*r3,us  //恢復
  r1 = r3
  pop r3 from [sp]
  r3 = r3 - r1  //求第二次余數(shù)即個位
  WR_8279_CONTROL 0x8300  //將個位顯示在數(shù)碼管上
  EXCHANGER3  //換碼
  WR_8279_DISPLAYRAM R3  
  pop r3 from [sp]
RETF
.ENDP

//**********************************************//
//Function Name : TurnLeft                      //
//Function :  TurnLeft (void)                   //
//Input    : none                               //
//Output   : car turn left                      //
//Destroy  : none                               //
.public TurnLeft
TurnLeft: .proc
  push r1,r2 to [sp]
  SET_IOA_IN;
//  r2 = C_CAR_TurnLeft2
//  r1 = [P_IOA_Data]
  r1 = 0x000f
  r2 = [P_IOA_Data]
  r1 = r1 | r2
//  r2 = 0xfffA
  R2 = r1 & 0xFFF5
//  r2 = r2 & r1
  SET_IOA_OUT
  [P_IOA_Data] = R2
  
  r1 = [B2C]
  test r1,1
  jz ?straight
?round:
  r1 = 0x0500
  r2 = 0x0300
  call F_Pwm
  pc = ?go  
?straight:  
  r1 = 0x0500
  r2 = 0x0230
  call F_Pwm
  call delay_1

?go:
  pop r1,r2 from [sp]
retf
.endp

//**********************************************//
//Function Name : TurnRight                     //
//Function :  TurnRight (void)                  //
//Input    : none                               //
//Output   : car turn right                     //
//Destroy  : none                               //
.PUBLIC TurnRight
TurnRight: .proc
  push r1,r2 to [sp]
  SET_IOA_IN;
//  r2 = C_CAR_TurnRight1
//  r2 = 0xfff5
  r1 = 0x000f
  r2 = [P_IOA_Data]
  r1 = r1 | r2
  R2 = r1 & 0xFFFA
//  r2 = r2 & r1
  SET_IOA_OUT
  [P_IOA_Data] = R2
  r1 = [B2C]
  test r1,1
  jz ?straight
?round:
  r1 = 0x0fff
  r2 = 0x0150
  call F_Pwm
  pc = ?go  
?straight:  
  r1 = 0x0fff
  r2 = 0x0180
  call F_Pwm
?go:
//  call delay_1
  pop r1,r2 from [sp]
retf
.endp


.public LastTurnRight
LastTurnRight: .proc
  SET_IOA_IN
  R1 =[P_IOA_Data]
  R1 = R1 & 0xfff0
  R1= R1|0x000a          //////////右轉(zhuǎn)控制邏輯////////
  R2 = R1
  SET_IOA_OUT
  [P_IOA_Data] = R2
  R1 = 0x0500
  R2 = 0x0300
  CALL F_Pwm

  R1 = 0x0150          //////右轉(zhuǎn)時間
  LOP:
R1 -=1
PUSH R1,R5 TO [SP]
NOP
POP R1,R5 FROM [SP]
CMP R1,0
JNE LOP
Retf
.endp

//**********************************************//
//Function Name : Forward                       //
//Function :  Forward  (void)                   //
//Input    : none                               //
//Output   : car go Forward                     //
//Destroy  : none                               //

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情免费电影网址| 亚洲另类春色校园小说| 免费精品视频最新在线| 欧美一个色资源| 日本伊人色综合网| 欧美成人激情免费网| 国产精品123区| 中文字幕av一区二区三区| 成人av综合在线| 亚洲乱码国产乱码精品精可以看 | 97成人超碰视| 亚洲欧美日韩在线不卡| 欧美在线播放高清精品| 午夜国产不卡在线观看视频| 日韩精品中文字幕在线不卡尤物| 久久99久久99| 国产精品天美传媒沈樵| 色综合天天综合色综合av| 天堂一区二区在线| 精品国产乱码久久久久久影片| 国产精品123区| 一区二区三区在线视频观看| 欧美一区二区视频观看视频| 国产在线精品一区二区夜色| 自拍偷拍亚洲欧美日韩| 欧美喷水一区二区| 国产经典欧美精品| 亚洲国产日韩a在线播放性色| 日韩精品自拍偷拍| 91在线小视频| 久久99精品久久久久久| 自拍偷拍欧美激情| 日韩一区二区三区四区| kk眼镜猥琐国模调教系列一区二区| 亚洲国产另类av| 国产丝袜在线精品| 欧美乱妇15p| 成人av电影免费在线播放| 天天影视涩香欲综合网| 国产女人水真多18毛片18精品视频| 欧美精品一区二区三区蜜桃| 成人精品小蝌蚪| 亚洲综合成人在线| 精品久久久三级丝袜| 91美女视频网站| 国内久久婷婷综合| 亚洲一区二区视频| 国产精品私房写真福利视频| 日韩一区二区三区av| av动漫一区二区| 激情成人综合网| 亚洲二区视频在线| 国产精品另类一区| 日韩欧美的一区二区| 欧美在线观看18| 99久久夜色精品国产网站| 久久99最新地址| 亚洲国产日韩精品| 亚洲蜜臀av乱码久久精品| 国产午夜亚洲精品不卡| 亚洲精品成a人| 欧美精品黑人性xxxx| 韩国av一区二区三区在线观看| 亚洲国产精品久久人人爱蜜臀| 国产精品每日更新| 2021国产精品久久精品| 日韩欧美一区在线观看| 欧美日韩精品一区二区三区四区| 91年精品国产| 99视频精品全部免费在线| 岛国av在线一区| 狠狠狠色丁香婷婷综合久久五月| 亚洲777理论| 性做久久久久久久免费看| 亚洲精品五月天| 一区二区欧美精品| 一区二区三区 在线观看视频| 亚洲三级小视频| 亚洲色图制服诱惑 | 夜夜嗨av一区二区三区中文字幕 | 国产精品少妇自拍| 国产亚洲短视频| 精品粉嫩超白一线天av| 日韩精品一区二区三区视频| 日韩天堂在线观看| 日韩欧美不卡一区| 欧美r级电影在线观看| 精品动漫一区二区三区在线观看| 日韩精品一区二区三区老鸭窝| 日韩视频国产视频| 久久久五月婷婷| 中文字幕 久热精品 视频在线 | 国产成人三级在线观看| 国产精品一区一区三区| 丁香桃色午夜亚洲一区二区三区| 懂色av中文一区二区三区| 国产精品日产欧美久久久久| 欧美zozozo| 久久精品亚洲麻豆av一区二区 | 国产女主播在线一区二区| 国产欧美日韩在线观看| 亚洲欧洲成人精品av97| 亚洲综合色丁香婷婷六月图片| 亚洲午夜精品17c| 日韩电影一二三区| 国产精品自拍三区| 99re热这里只有精品视频| 欧美艳星brazzers| 日韩视频在线永久播放| 中文字幕欧美区| 亚洲最大色网站| 九色|91porny| 97久久久精品综合88久久| 欧美日韩免费观看一区三区| 精品成人在线观看| 亚洲精品精品亚洲| 免费成人小视频| 成人免费高清在线观看| 欧美三级午夜理伦三级中视频| 欧美sm美女调教| 亚洲三级电影网站| 久久成人免费电影| 色综合一区二区三区| 91精品久久久久久久91蜜桃| 欧美国产日韩精品免费观看| 亚洲一区二区三区国产| 国产一区999| 欧美日韩一区二区在线观看| 久久久久久久一区| 首页综合国产亚洲丝袜| 成人福利在线看| 欧美成人免费网站| 亚洲一区在线电影| 成人国产亚洲欧美成人综合网| 91精品午夜视频| 亚洲欧美在线视频| 韩国女主播一区| 欧美乱妇一区二区三区不卡视频| 国产精品视频免费看| 麻豆国产精品一区二区三区| 91久久精品网| 国产精品你懂的| 激情综合网激情| 欧美欧美欧美欧美| 亚洲欧美国产77777| 国产乱一区二区| 欧美一级午夜免费电影| 亚洲日本一区二区| 精彩视频一区二区三区 | 99久久久久免费精品国产| 制服.丝袜.亚洲.中文.综合| 18欧美乱大交hd1984| 国产精品18久久久久久久久久久久| 欧美人狂配大交3d怪物一区| 亚洲乱码国产乱码精品精98午夜 | 欧美一区二区三区在线电影| 亚洲自拍偷拍av| 91视频观看视频| 国产精品久久毛片a| 国产精品一区二区免费不卡 | 日本精品裸体写真集在线观看 | 久久久综合网站| 麻豆91在线播放免费| 91精品国产一区二区三区蜜臀| 亚洲午夜免费电影| 欧美伊人久久大香线蕉综合69 | 久久精品99国产精品日本| 欧美日韩高清一区| 性久久久久久久| 欧美日韩aaaaaa| 亚洲高清免费观看高清完整版在线观看 | 欧美亚洲自拍偷拍| 玉米视频成人免费看| 91久久精品网| 亚洲高清在线视频| 精品视频123区在线观看| 一区二区三区欧美视频| 欧美日韩一区二区三区不卡| 亚洲一二三区不卡| 欧美日本韩国一区二区三区视频| 亚洲成人黄色小说| 在线播放视频一区| 另类人妖一区二区av| 精品盗摄一区二区三区| 国产精品中文字幕日韩精品| 久久精品视频在线免费观看 | 精品女同一区二区| 国产高清精品网站| 中文字幕亚洲欧美在线不卡| 菠萝蜜视频在线观看一区| 中文字幕字幕中文在线中不卡视频| 成人久久久精品乱码一区二区三区| 中文字幕人成不卡一区| 欧美亚洲日本国产| 免费观看一级欧美片| 久久久久国产精品麻豆ai换脸| 成人一区二区三区中文字幕| 亚洲乱码精品一二三四区日韩在线| 欧美视频完全免费看| 青青草97国产精品免费观看|