ORG 00H
ORG 008H
bcr intflag,0
movia 250
movar TMR0
movia 0x1F
movar inten
retfie //返回后地址在哪?
clrr fsr
clrr TMR0
clrr STATUS // 给status状态清零,默认为00011100b;
clrr WUCON // pb有输入中断/唤醒的功能,位1为使能,反之是不能。
clrr PDCON // pb0:2,pa0:3内部若下拉disable;(pb4:7没有弱下拉功能);
clrr ODCON // pb内部开漏disable;pa无开漏;
clrr PHCON // pb内部弱上拉disable; (pb3只能作为输入);
clrr INTEN //中断使能位清零
clrr INTFLAG //中断标志位清零
clrr PCHBUF //Program_count 高两位清零
clrwdt //看门口定时器清零
movia D0H //DFH->ACC //OPTION配置;
OPTION
goto START
START:
movia 00H //给端口A/B设置电平状态;
movar PORTA
movia FCH
movar PORTB
movia 00H //给端口A/B配置为输入/输出模式;
IOST PORTA
movia 08H
IOST PORTB
movia 81H //给中断使能位设置为1 0 0 0 0 0 0 1 B// GIE,T0IE置一。
movar inten
movia 1FH //power control register lvdte,wdte,eis清零;
movar pcon
goto main
main:
//点亮第一排两灯
movia 0x0c //给A_pin配置0 0 0 0 1 1 0 0 B
movar PORTA
movia 0xE0 //给B脚配置1 1 1 0 0 0 0 0 B
movar PORTB
movia 250
movar TMR0 //给TMR0写数据后,定时器的分频器数被清零;PS2:PS0 0 0 0
movia D0H
OPTION
loop:
btrss intflag,0
goto loop
我这个loop里面一直检测intflag的中断溢出标志位,如果为1,那么应该去008h里面执行?
|