头文件中已经定义得很清楚所有IO口线功能精.docx
- 文档编号:2789070
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:15
- 大小:17.73KB
头文件中已经定义得很清楚所有IO口线功能精.docx
《头文件中已经定义得很清楚所有IO口线功能精.docx》由会员分享,可在线阅读,更多相关《头文件中已经定义得很清楚所有IO口线功能精.docx(15页珍藏版)》请在冰豆网上搜索。
头文件中已经定义得很清楚所有IO口线功能精
头文件中已经定义得很清楚所有IO口线功能(未加DMX控制,调试中 如果要转载请注明出处,谢谢)
;TESTTWOMOTOR20090331
;90s231310Mhz
;**********************************
.include "2313def.inc"
.def temp =r16 ;temp
.def temp0 =r0
.def temp1 =r17
.def temp2 =r18
.equ PWM_data_out =portb
.equ PH_data_out =portd
.equ PWM0_COUNT=$60 ;SRAM128*860-DF90S2313
.equ PWM1_COUNT=$61
.equ PWM2_COUNT=$62
.equ PWM3_COUNT=$63
.equ PWMA_STEP =$64
.equ PWMB_STEP =$65
.equ PWM2_STEP =$66
.equ PWM3_STEP =$67
.equ PWM0_SIN =$68
.equ PWM1_SIN =$69
.equ PWM2_SIN =$6a
.equ PWM3_SIN =$6b
.equ PWM_COUNT =$6C
.equ PWMA_COUNT=$6D
.equ PWMB_COUNT=$6E
.equ PH0_DATA =$6F
.equ PH1_DATA =$70
.equ PH2_DATA =$71
.equ PH3_DATA =$72
.equ MOTOR_SPEED=$73
.equ MOTOR_PH =$74
;**********************IO宏定义**********************************
.equ HC237A0=0 ;PB0
.equ HC237A1=0 ;PB0
.equ HC237B0=2 ;PB1
.equ HC237B1 =2 ;PB1
.equ HC237GL=2 ;PB2
.equ HC237G1H=3 ;PB3
.equ HC237G1L=3 ;PB3
.equ FSD0 =4 ;PB4
.equ FSD1 =5 ;PB5
.equ FSD2 =6 ;PB6
.equ FSD3 =7 ;PB7
.equ L6219PH0=5 ;PD5
.equ L6219PH1=4 ;PD4
.equ L6219PH2=3 ;PD3
.equ L6219PH3=2 ;PD2
.equ DMXCONTROL=6 ;PD6
.equ STEPA =16
.equ STEPB =8
;max2kword=$o3ff 4k=$07ff 8k=$fff 16k=1fff32k=3fff
.equ tableA=0x0200 //128
.equ tableB=0x0280 //128
.equ tableC=0x0300 //128
.equ tableD=0x0380 //128
.cseg
;.equ ramend=0xDF ;D0-DFH256RAMEND
;***************中断设置*********************************
.ORG$000RJMPRESET ;复位
;.ORG$001RJMPEXT_INT0;IRQ0
;.ORG$002RJMPEXT_INT1;IRQ1
;.ORG$003RJMPTIME_CAPT1;T1捕捉
;.ORG$004RJMPTIME_COMP1;T1比较匹配
.ORG$005RJMPTIME_OVF1;T1溢出
.ORG$006RJMPTIME_OVF0;T0溢出
.ORG$007RJMPUART_RXC;UART接收结束
;.ORG$008RJMPUART_DRE;UART数据空
;.ORG$009RJMPUART_TXC;UART发送结束
;.ORG$00aRJMPANA_COMP;模拟比较器
;***************初值设置*********************************
RESET:
ldi temp,0xff ;IO口设置
out ddrb,temp ;设置为输出
out DDRD,temp ;设置为输出
out portb,temp ;设置输出为高
out portd,temp ;设置输出为高
LDI TEMP,0
STS PWM_COUNT,TEMP ;设置PWM0记数器$60-DFK=0-65536
LDI TEMP,0
STS PWMA_STEP,TEMP ;设置STEP记数器
LDI TEMP,0
STS PWMB_STEP,TEMP ;设置STEP记数器
ldi temp,low(ramend);设置堆栈ramend=$df
out spl,temp
ldi temp,high(ramend)
out spl+1,temp
rcalltime1_set ;调用子time1程序
rcalltime0_set ;调用子time0程序
ldi temp,$82 ;seep44
out TIMSK,temp
sei ;打开所有中断
clr r0 ;zl=0
;*************************MAIN******************************
here:
rcall MAIN
rjmp here ;等待
;********************time1*****设置*************************
time1_set:
LDITEMP,HIGH(65536-1000) ;65450=2ms ok57724=1s
OUTTCNT1H,TEMP ;3ms 128us6s||||(65536-3200) 3.2ms
LDITEMP,LOW(65536-1000) ;(65161)
OUTTCNT1L,TEMP
LDITEMP,$05 ;对晶振1024分频 0.125x1024=128
OUTTCCR1B,TEMP ;定时模式选择详见p16
ret
;********************time0*****设置*************************10us***
time0_set:
LDItemp,255-13 ;t=10.4Us 13x0.1x8us(10M)=10.4Us
OUTTCNT0,temp ;temp=r16
LDItemp,2 ;8分频
OUTTCCR0,temp ;定时模式选择详见p16
ret
;********************UART*****设置*************************
UART_set:
;Setbaudrate250K8M2----;10M3208
LDITEMP,2
outUBRR,TEMP
;EnableReceiverandTransmitter
ldiTEMP,(1< outUCR,TEMP ;Setframeformat: 9data,2stopbit RET ;*********************定时中断1***************************100US TIME_OVF1: LDITEMP,HIGH(65536-1000) ;65450=2ms ok57724=1s8M OUTTCNT1H,TEMP ;3ms 128us6s||||(65536-3200) 3.2ms LDITEMP,LOW(65536-1000) ;(65161) OUTTCNT1L,TEMP RETI ;*********************定时中断0***************************10US TIME_OVF0: ;定时器0中断 LDItemp,255-13 ;t=10.4Us 13x0.1x8us(10M)=10.4Us OUTTCNT0,temp LDSTEMP,PWM_COUNT CPItemp,100 ;PWM_COUNT=100 BRNEINCPWM_COUNT LDITEMP,0 STSPWM_COUNT,TEMP;PWM_COUNT=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 已经 定义 得很 清楚 所有 IO 功能
![提示](https://static.bdocx.com/images/bang_tan.gif)