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

📄 display_board4.0.s

📁 一个LED特效显示程序
💻 S
📖 第 1 页 / 共 5 页
字号:
	.module display_board4.0.c
	.area lit(rom, con, rel)
_DISCODE::
	.byte 63,6
	.byte 91,'O
	.byte 'f,'m
	.byte 125,7
	.byte 127,'o
	.byte 'w,124
	.byte 57,94
	.byte 'y,'q
	.byte 0,64
	.byte 'c
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e DISCODE _DISCODE A[19:19]kc
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
_Disp_Buff::
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e Disp_Buff _Disp_Buff A[8:8]c
_disp_key_count::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e disp_key_count _disp_key_count c
_disp_code::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e disp_code _disp_code I
_time_count_sys::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e time_count_sys _time_count_sys i
_key_num::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e key_num _key_num c
_old_key_num::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e old_key_num _old_key_num c
_new_key_num::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e new_key_num _new_key_num c
_key_buff::
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e key_buff _key_buff A[8:8]c
_key_down_time::
	.blkb 2
	.area idata
	.word 1
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e key_down_time _key_down_time I
_key_delay::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e key_delay _key_delay c
_delay_time_count::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbsym e delay_time_count _delay_time_count i
	.area text(rom, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbfunc e delay _delay fV
;              n -> R16,R17
	.even
_delay::
	.dbline -1
	.dbline 47
; /*器件:AVR ATMEGA16、373缩存器、62256K扩展RAM
; I/O定义:
; SPI接口显示键盘:
;          PB0:    键盘	  
;          PB1:    RCK
; 		 PB2:    SCK
; 		 PB3:    DATA
; SPI屏幕接口& 下载口:
;          PB4:    SS
; 		 PB5:    DI
; 		 PD7:    SCK
; RAM:	
;          PA0~7:  PC0~7   A0~A15地址线
; 		 PC0~6:  DATA总线复用
; 		 PD7:    ALE
; 		 PD6:    WE
; 		 PD5:    RE
; 下载:		   
; 		 PB4~7:  SPI通讯和下载端口
;          PD0~1:  UART通讯口
; 电机:
; 		 PD2:  外中断,电机脉冲
; */
; 
; /********************************************************
;     广告屏程序第二次改版----主显示控制模块程序4.0
;                
; 			   1、程序采用模块化构架,提高了可读性
;                2、此程序支持第二套广告屏硬件
; 			   3、改动:显示屏部分用硬件SPI传输,大大的提高了系统传输速率.
;                创建时间:2004年11月23日
; 			   作者:西南科技大学 电子设计大赛第8大组
;                注意:需要包括 :<disp_key.h>
; 							   
; ********************************************************/
; 
; 
; 
; /***************************************************
;             头文件申明
; ****************************************************/
; 
; #include<iom16v.h>
; #include<macros.h>
; #include"disp_key.h"
; #include"LED_buff1.0.h"
; 
	.dbline 48
; /************************************************
	sts _delay_time_count+1,R17
	sts _delay_time_count,R16
L2:
	.dbline 49
L3:
	.dbline 49
;             宏定义
	lds R2,_delay_time_count
	lds R3,_delay_time_count+1
	tst R2
	brne L2
	tst R3
	brne L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r n 16 i
	.dbend
	.dbfunc e disp_bit _disp_bit fV
;      bitChoose -> R22
;   disCodeIndex -> R20
	.even
_disp_bit::
	xcall push_gset2
	mov R22,R18
	mov R20,R16
	.dbline -1
	.dbline 53
; **************************************************/
; //RAM
; #define ALE  7                   //定义锁存脚
; #define WE   6                   //定义写允许位
	.dbline 54
; #define RE   5                   //定义读允许位
	in R24,0x18
	andi R24,253
	out 0x18,R24
	.dbline 55
; 
	mov R16,R22
	xcall _send_data_disp
	.dbline 56
; 
	ldi R24,<_DISCODE
	ldi R25,>_DISCODE
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	lpm R16,Z
	xcall _send_data_disp
	.dbline 57
; #pragma interrupt_handler exi_int0:2   	//外部中断
	sbi 0x18,1
	.dbline -2
L5:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r bitChoose 22 c
	.dbsym r disCodeIndex 20 c
	.dbend
	.dbfunc e send_data_disp _send_data_disp fV
;          count -> R20
;      send_data -> R22
	.even
_send_data_disp::
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 60
; #pragma interrupt_handler timer1_vof:9   	//定时器1中断
; #pragma  interrupt_handler usart_rcx:12   //USART接受中断
; /************************************************
	.dbline 62
;             全局变量申明
; **************************************************/
	clr R20
	xjmp L10
L7:
	.dbline 63
; //基本全局变量
	.dbline 64
; int sys_cont =0;
	mov R16,R22
	mov R17,R20
	xcall lsl8
	mov R24,R16
	andi R24,128
	brne L11
	.dbline 65
; //显示缓冲区
	in R24,0x18
	andi R24,247
	out 0x18,R24
	xjmp L12
L11:
	.dbline 67
; char DispTemp[8];
; 
	sbi 0x18,3
L12:
	.dbline 68
	sbi 0x18,2
	.dbline 69
	in R24,0x18
	andi R24,251
	out 0x18,R24
	.dbline 70
L8:
	.dbline 62
	inc R20
L10:
	.dbline 62
	cpi R20,8
	brlo L7
	.dbline -2
L6:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r count 20 c
	.dbsym r send_data 22 c
	.dbend
	.dbfunc e Disp_key_group _Disp_key_group fV
	.even
_Disp_key_group::
	.dbline -1
	.dbline 74
; //按键处理
; 
; //数脉冲
; int PDataY =0;
; int PDataYMax =152;
; int PDataYMin =2;
; 
	.dbline 75
; //UART接收数据
	lds R24,_disp_key_count
	subi R24,255    ; addi 1
	sts _disp_key_count,R24
	.dbline 76
; char FileEnd =1;
	ldi R24,7
	lds R2,_disp_key_count
	cp R24,R2
	brsh L14
	.dbline 77
; char HeadLoad =0;
	clr R2
	sts _disp_key_count,R2
L14:
	.dbline 78
; char HeadEN =1;
	lds R17,_disp_key_count
	ldi R16,1
	xcall lsl8
	mov R18,R16
	ldi R24,<_Disp_Buff
	ldi R25,>_Disp_Buff
	lds R30,_disp_key_count
	clr R31
	add R30,R24
	adc R31,R25
	ldd R16,z+0
	xcall _disp_bit
	.dbline 79
; int  DataIndex =0;
	sbic 0x16,0
	rjmp L16
	.dbline 80
; int  FileLength =0;
	ldi R24,<_key_buff
	ldi R25,>_key_buff
	lds R30,_disp_key_count
	clr R31
	add R30,R24
	adc R31,R25
	ldi R24,1
	std z+0,R24
	xjmp L17
L16:
	.dbline 82
	ldi R24,<_key_buff
	ldi R25,>_key_buff
	lds R30,_disp_key_count
	clr R31
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
L17:
	.dbline -2
L13:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e dec_hex_disp _dec_hex_disp fV
;           temp -> R20,R21
;              i -> R22
	.even
_dec_hex_disp::
	xcall push_gset2
	.dbline -1
	.dbline 85
; char Head[3];                        //头文件"LED"存储
; unsigned int time_out_ms=1; 		 //接收数据时限
; unsigned char time_out_s=0; 		 //试图通讯重新时限
; 
; //特效处理
	.dbline 88
; char DispModel =0;
; int  ModelDelayTime =0;
; char ModelContJuge=0;
	lds R20,_disp_code
	lds R21,_disp_code+1
	.dbline 89
; /************************************************
	clr R22
	xjmp L22
L19:
	.dbline 90
	ldi R24,4
	mul R24,R22
	movw R18,R0
	movw R16,R20
	xcall asr16
	movw R24,R16
	andi R24,15
	andi R25,0
	ldi R30,<_Disp_Buff
	ldi R31,>_Disp_Buff
	mov R26,R22
	clr R27
	add R26,R30
	adc R27,R31
	st x,R24
L20:
	.dbline 89
	inc R22
L22:
	.dbline 89
	cpi R22,7
	brlo L19
	.dbline -2
L18:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 I
	.dbsym r i 22 c
	.dbend
	.dbfunc e Key_num _Key_num fV
;              j -> R16
;              i -> R18
	.even
_Key_num::
	.dbline -1
	.dbline 94
;              函数申明
; **************************************************/
; //基本初始化
; void port_int(void);
; void timer_int(void);
	.dbline 96
; void uart_int(void);
; void device_int(void);
	clr R16
	.dbline 97
; 
	clr R2
	lds R3,_key_delay
	cp R2,R3
	brsh L24
	.dbline 98
; //按键显示事件处理
	mov R24,R3
	subi R24,1
	sts _key_delay,R24
L24:
	.dbline 99
; void Display_event(void);        //显示事件
	clr R18
	xjmp L29
L26:
	.dbline 100
; void KEY_event(void);            //按键事件处理
	.dbline 101
; 
	ldi R24,<_key_buff
	ldi R25,>_key_buff
	mov R30,R18
	clr R31
	add R30,R24
	adc R31,R25
	ldd R24,z+0

⌨️ 快捷键说明

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