📄 counter.lst
字号:
000210 5384 MOVF 0x84,0x1,0x1 movf curr_byte + 1, 1, 1 C:\mcc18\src\startup\c018i.c
000212 e007 BZ 0x222 bz 7 // done_copying C:\mcc18\src\startup\c018i.c
C:\mcc18\src\startup\c018i.c
copy_one_byte: C:\mcc18\src\startup\c018i.c
000214 0009 TBLRDPOSTINC tblrdpostinc C:\mcc18\src\startup\c018i.c
000216 50f5 MOVF 0xf5,0x0,0x0 movf TABLAT, 0, 0 C:\mcc18\src\startup\c018i.c
000218 6eee MOVWF 0xee,0x0 movwf POSTINC0, 0 C:\mcc18\src\startup\c018i.c
C:\mcc18\src\startup\c018i.c
// decrement byte counter C:\mcc18\src\startup\c018i.c
00021a 0783 DECF 0x83,0x1,0x1 decf curr_byte, 1, 1 C:\mcc18\src\startup\c018i.c
00021c e2f8 BC 0x20e bc -8 // copy_loop C:\mcc18\src\startup\c018i.c
00021e 0784 DECF 0x84,0x1,0x1 decf curr_byte + 1, 1, 1 C:\mcc18\src\startup\c018i.c
000220 d7f9 BRA 0x214 bra -7 // copy_one_byte C:\mcc18\src\startup\c018i.c
C:\mcc18\src\startup\c018i.c
done_copying: C:\mcc18\src\startup\c018i.c
C:\mcc18\src\startup\c018i.c
_endasm C:\mcc18\src\startup\c018i.c
/* restore the table pointer for the next entry */ C:\mcc18\src\startup\c018i.c
000222 c087 MOVFF 0x87,0xff6 TBLPTR = data_ptr; C:\mcc18\src\startup\c018i.c
000224 fff6
000226 c088 MOVFF 0x88,0xff7
000228 fff7
00022a c089 MOVFF 0x89,0xff8
00022c fff8
/* next entry... */ C:\mcc18\src\startup\c018i.c
00022e 0100 MOVLB 0x0 curr_entry--; C:\mcc18\src\startup\c018i.c
000230 0785 DECF 0x85,0x1,0x1
000232 0e00 MOVLW 0x0
000234 5b86 SUBWFB 0x86,0x1,0x1
000236 d7bf BRA 0x1b6 goto test; C:\mcc18\src\startup\c018i.c
done: C:\mcc18\src\startup\c018i.c
; C:\mcc18\src\startup\c018i.c
000238 0012 RETURN 0x0 } C:\mcc18\src\startup\c018i.c
D:\counter\counter.c
//**************************************************************/ D:\counter\counter.c
/*计数器实验源程序,源文件名counter.c。使用MPLAB C18 D:\counter\counter.c
编译器。*/ D:\counter\counter.c
//使用PIC18F452高性能单片机,RA1输入脉冲信号,RB口输出BCD码, D:\counter\counter.c
//由LED数码管显示RB口输出的两位十进制数。 D:\counter\counter.c
//使用AW-2型实验板。 D:\counter\counter.c
//**************************************************************/ D:\counter\counter.c
D:\counter\counter.c
/* D:\counter\counter.c
*PICC编译器源程序注释也可以使用“//“符号。 D:\counter\counter.c
*/ D:\counter\counter.c
D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
#include <p18cxxx.h> /* head file*/ D:\counter\counter.c
#include <p18f452.h> //PIC18F452 head file。 D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
#define uchar unsigned char D:\counter\counter.c
#define uint unsigned int D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
void initPORTB(); D:\counter\counter.c
void initPORTA(); D:\counter\counter.c
void uinttouchar(uchar x); //hex to BCD D:\counter\counter.c
uchar connectbyte(uchar y1,uchar y2); //合并BCD字节。 D:\counter\counter.c
void delayx1ms(uchar count); // 声明按键延迟函数。 D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
uchar counter; //按键计数。 D:\counter\counter.c
D:\counter\counter.c
uchar x1,x2; //x1是BCD高4位,x2是BCD低4位。 D:\counter\counter.c
//--------------------------------------------------------------- D:\counter\counter.c
D:\counter\counter.c
void main (void) D:\counter\counter.c
{ D:\counter\counter.c
000050 d828 RCALL 0xa2 initPORTB(); D:\counter\counter.c
000052 d82b RCALL 0xaa initPORTA(); D:\counter\counter.c
D:\counter\counter.c
000054 0100 MOVLB 0x0 counter = 0; //设置初值。 D:\counter\counter.c
000056 6b8a CLRF 0x8a,0x1
D:\counter\counter.c
00009e d7dc BRA 0x58 while (1) //永久循环扫描键盘。 D:\counter\counter.c
{ D:\counter\counter.c
000058 6a92 CLRF 0x92,0x0 TRISA=0x00; D:\counter\counter.c
00005a 9280 BCF 0x80,0x1,0x0 PORTAbits.RA1=0; D:\counter\counter.c
D:\counter\counter.c
00005c b280 BTFSC 0x80,0x1,0x0 if(PORTAbits.RA1==0) /* have key down*/ D:\counter\counter.c
00005e d01f BRA 0x9e
{ D:\counter\counter.c
000060 0e0a MOVLW 0xa delayx1ms(10); /*delay 10ms*/ D:\counter\counter.c
000062 6ee6 MOVWF 0xe6,0x0
000064 d827 RCALL 0xb4
000066 52e5 MOVF 0xe5,0x1,0x0
000068 b280 BTFSC 0x80,0x1,0x0 if(PORTAbits.RA1==0) D:\counter\counter.c
00006a d019 BRA 0x9e
{ D:\counter\counter.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -