⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 organ.lst

📁 holtek的按键模块, asm编程
💻 LST
字号:
File: ORGAN.ASM     Holtek Cross-Assembler  Version 2.86      Page 1


   1  0000              ;第十三章中断及定时/计数器应用
   2  0000              ;PA0~PA7 设置为输入同时用电阻接电源使其电位为High 当按键按下时其电位为Low
   3  0000              ;此一设计只是为了程序编写容易PB0 设置为输出来驱动喇叭在作High/Low 转换时形
   4  0000              ;成声音脉波使喇叭发出声音如图12.1 所示
   5  0000              
   6  0000              #include ht48c50-1.inc


   7  0000              #include macro.inc


   8  0000              ;----------------------------------------------------------
   9  0000              data .section 'data' 			;== 数据节区==
  10  0000  00          	R8 	db ?			;
  11  0001  00          	R9 	db ? 			;
  12  0002  00          	r10	db ?
  13  0003  00          	temp	db ?
  14  0004              ;----------------------------------------------------------
  15  0000              code .section at 0 'code' 		;== 程序节区==
  16  0000              	org 	00h 			;
  17  0000  280D        	jmp 	start 			;
  18  0001              	org 	04h 			;外部中断入口地址
  19  0004  0004        	reti 				;
  20  0005              	org 	08h 			;定时计数器0 中断入口地址
  21  0008  0004        	reti 				;
  22  0009              	org 	0ch 			;定时计数器1 中断入口地址
  23  000C  0004        	reti 				;
  24  000D              start: 					;程序一开始执行时先
  25  000D  1F0B        	clr 	intc 			;设定暂存器启始值
  26  000E  1F0D        	clr 	tmr0 			;以确保程序可以正确执行
  27  000F  1F0E        	clr 	tmr0c 			;
  28  0010  1F0F        	clr 	tmr1H 			;
  29  0011  1F10        	clr 	tmr1L 			;
  30  0012  1F11        	clr 	tmr1c
  31  0013              	 			;
  32  0013  1F93        	set 	pac 			;I/O Port 设定为输入模式
  33  0014  1F95        	set 	pbc 			;
  34  0015  1F97        	set 	pcc 			;
  35  0016  1F99        	set 	pdc 			;
  36  0017              main:
  37  0017  1F93        	set 	pac 			;(1) ;设定port A 为输入口
  38  0018  1F15        	clr 	pbc 			;设定port B 为输出口
  39  0019  1F14        	clr 	pb 			;
  40  001A  1F17        	clr		pcc
  41  001B  1F16        	clr		pc
  42  001C  1F19        	clr		pdc
  43  001D  1F18        	clr		pd
  44  001E              keyloop: 				;(2) ;
  45  001E  0712        	mov 	a,pa 			;测试是否按下输入键
  46  001F  0185        	cpl 	acc 			;
  47  0020  1085        	sz 	acc 			;
  48  0021  2023        	call 	whichkey 		;若是则找出按下那一个输入键
  49  0022  281E        	jmp 	keyloop 		;若否则重测是否按下输入键
  50  0023              
  51  0023              whichkey proc 				;(3) ;找出按下的输入键
  52  0023              ;	mov 	temp,a 			;保留Acc 值
  53  0023  0494        	xorm	a,pb
  54  0024              
  55  0024              
File: ORGAN.ASM     Holtek Cross-Assembler  Version 2.86      Page 2

  56  0024              keynext:
  57  0024              
  58  0024  1F98        	set	pd
  59  0025  0F00        	mov	a,0
  60  0026  0087        	mov	tblp,a
  61  0027              
  62  0027  3418        	clr	bpd0
  63  0028  1D85        	tabrdl	acc
  64  0029  0185        	cpl		acc
  65  002A  0496        	xorm	a,pc
  66  002B  206F        	call	Delay
  67  002C  1487        	inc	tblp
  68  002D  1F16        	clr	pc
  69  002E  1F98        	set	pd
  70  002F              
  71  002F  3498        	clr	bpd1
  72  0030  1D85        	tabrdl	acc
  73  0031  0185        	cpl		acc
  74  0032  0496        	xorm	a,pc
  75  0033  206F        	call	Delay
  76  0034  1487        	inc	tblp
  77  0035  1F16        	clr	pc
  78  0036  1F98        	set	pd
  79  0037              
  80  0037  3518        	clr	bpd2
  81  0038  1D85        	tabrdl	acc
  82  0039  0185        	cpl		acc
  83  003A  0496        	xorm	a,pc
  84  003B  206F        	call	Delay
  85  003C  1487        	inc	tblp
  86  003D  1F16        	clr	pc
  87  003E  1F98        	set	pd
  88  003F              
  89  003F  3598        	clr	bpd3
  90  0040  1D85        	tabrdl	acc
  91  0041  0185        	cpl		acc
  92  0042  0496        	xorm	a,pc
  93  0043  206F        	call	Delay
  94  0044  1487        	inc	tblp
  95  0045  1F16        	clr	pc
  96  0046  1F98        	set	pd
  97  0047              
  98  0047  3618        	clr	bpd4
  99  0048  1D85        	tabrdl	acc
 100  0049  0185        	cpl		acc
 101  004A  0496        	xorm	a,pc
 102  004B  206F        	call	Delay
 103  004C  1487        	inc	tblp
 104  004D  1F16        	clr	pc
 105  004E  1F98        	set	pd
 106  004F              
 107  004F  3698        	clr	bpd5
 108  0050  1D85        	tabrdl	acc
 109  0051  0185        	cpl		acc
 110  0052  0496        	xorm	a,pc
 111  0053  206F        	call	Delay
 112  0054  1487        	inc	tblp
 113  0055  1F16        	clr	pc
 114  0056  1F98        	set	pd
 115  0057              
File: ORGAN.ASM     Holtek Cross-Assembler  Version 2.86      Page 3

 116  0057  3718        	clr	bpd6
 117  0058  1D85        	tabrdl	acc
 118  0059  0185        	cpl		acc
 119  005A  0496        	xorm	a,pc
 120  005B  206F        	call	Delay
 121  005C  1487        	inc	tblp
 122  005D  1F16        	clr	pc
 123  005E  1F98        	set	pd
 124  005F              
 125  005F  3798        	clr	bpd7
 126  0060  1D85        	tabrdl	acc
 127  0061  0185        	cpl		acc
 128  0062  0496        	xorm	a,pc
 129  0063  206F        	call	Delay
 130  0064  1487        	inc	tblp
 131  0065  1F16        	clr	pc
 132  0066  1F98        	set	pd
 133  0067              
 134  0067  0712        	mov 	a,pa 			;读取Port A
 135  0068  0185        	cpl 	acc 			;
 136  0069  1085        	sz 	acc 			;输入键是否按着的?
 137  006A  2824        	jmp 	keynext 		;是再检查
 138  006B  1F14        	clr 	pb 			;
 139  006C  1F16        	clr		pc
 140  006D  1F18        	clr		pd
 141  006E  0003        	ret 				;
 142  006F              whichkey endp 				;
 143  006F              
 144  006F              Delay:
 145  006F              ;	mov	A,1
 146  006F              Delay10ms:
 147  006F              ;	mov	R10,A
 148  006F              Delay10:
 149  006F              ;	store	20,R8
 150  006F              DeLay1ms:
 151  006F              	store	149,R9		       ;149*3*4/3.579545=499.5us
 152  0071  0001        	clr	WDT
 153  0072              Delay05:
 154  0072              	djnz	R9,Delay05
 155  0074              ;	djnz	R8,Delay1ms
 156  0074              ;	djnz	R10,Delay10
 157  0074  0003        	ret
 158  0075              
 159  0075              	org 0f00h 			;字表
 160  0F00  0018 0024   	dc 18h,24h,24h,42h,7eh,42h,42h,00h	;
            0024 0042 007E 0042 0042 0000
 161  0F08  003C        	dw 00111100b
 162  0F09  0022        	dw 00100010b
 163  0F0A  0022        	dw 00100010b
 164  0F0B  003C        	dw 00111100b
 165  0F0C  0022        	dw 00100010b
 166  0F0D  0022        	dw 00100010b
 167  0F0E  003C        	dw 00111100b
 168  0F0F  0000        	dw 00000000b
 169  0F10              	end


        0 Errors

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -