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

📄 display_board2.1.s

📁 一个LED特效显示程序
💻 S
📖 第 1 页 / 共 3 页
字号:
	.module display_board2.1.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屏幕接口:
;          PC7:    DATA
; 		 PD3:    SCK
; 		 PD4:    RCK
; RAM:	
;          PA0~7:  PC0~7   A0~A15地址线
; 		 PC0~6:  DATA总线复用
; 		 PD7:    ALE
; 		 PD6:    WE
; 		 PD5:    RE
; 下载:		   
; 		 PB4~7:  SPI通讯和下载端口
;          PD0~1:  UART通讯口
; 电机:
; 		 PD2:  外中断,电机脉冲
; */
; 
; /********************************************************
;     广告屏程序第二次改版----主显示控制模块程序2.0
;                
; 			   1、程序采用模块化构架,提高了可读性
;                2、此程序支持第二套广告屏硬件
;                3、创建时间:2004年11月23日
; 			   4、作者:西南科技大学 电子设计大赛第8大组
;                注意:需要包括 :<disp_key.h>
; 							   
; ********************************************************/
; 
; 
; 
; /***************************************************
;             头文件申明
; ****************************************************/
; 
; #include<iom16v.h>
; #include <macros.h>
; #include "disp_key.h"
; /************************************************
;             宏定义
; **************************************************/
	.dbline 48
; //RAM
	sts _delay_time_count+1,R17
	sts _delay_time_count,R16
L2:
	.dbline 49
L3:
	.dbline 49
; #define ALE  7                   //定义锁存脚
	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
; #define WE   6                   //定义写允许位
; #define RE   5                   //定义读允许位
; 
; 
	.dbline 54
; #pragma interrupt_handler exi_int0:2   	//外部中断
	in R24,0x18
	andi R24,253
	out 0x18,R24
	.dbline 55
; #pragma interrupt_handler timer1_vof:9   	//定时器1中断
	mov R16,R22
	xcall _send_data_disp
	.dbline 56
; #pragma  interrupt_handler usart_rcx:12   //USART接受中断
	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
; /************************************************
	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
;             全局变量申明
; **************************************************/
; //基本全局变量
	.dbline 62
; int sys_cont =0;
; //显示缓冲区
	clr R20
	xjmp L10
L7:
	.dbline 63
; char DispTemp[8];
	.dbline 64
; 
	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
; 
; //数脉冲
	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 =154;
; int PDataYMin =4;
; 
; //UART接收数据
; char FileEnd =1;
; char HeadLoad =0;
	.dbline 75
; char HeadEN =1;
	lds R24,_disp_key_count
	subi R24,255    ; addi 1
	sts _disp_key_count,R24
	.dbline 76
; int  DataIndex =0;
	ldi R24,7
	lds R2,_disp_key_count
	cp R24,R2
	brsh L14
	.dbline 77
; int  FileLength =0;
	clr R2
	sts _disp_key_count,R2
L14:
	.dbline 78
; char Head[3];                        //头文件"LED"存储
	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
; unsigned int time_out_ms=1; 		 //接收数据时限
	sbic 0x16,0
	rjmp L16
	.dbline 80
; unsigned char time_out_s=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 DispModel =0;
; int  ModelDelayTime =0;
; char ModelContJuge=0;
	.dbline 88
; /************************************************
;              函数申明
; **************************************************/
	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);
; void uart_int(void);
; void device_int(void);
; 
	.dbline 96
; //按键显示事件处理
; void Display_event(void);        //显示事件
	clr R16
	.dbline 97
; void KEY_event(void);            //按键事件处理
	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
; //特效处理
	clr R18
	xjmp L29
L26:
	.dbline 100
; void Disp_Model(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
	cpi R24,1
	brne L30
	.dbline 102
; //外部RAM读写操作
	.dbline 103
; void data_store(char data);
	sts _new_key_num,R18
	.dbline 104
; char RAM_Read(int adress);
	ldi R16,1
	.dbline 105
; void RAM_Write(int adress,char data);
L30:
	.dbline 106
L27:
	.dbline 99
	inc R18
L29:
	.dbline 99
	ldi R24,7
	cp R24,R18
	brsh L26
	.dbline 107
; 
; //显示屏数据发送
	tst R16
	brne L32
	.dbline 108
; void Screen_send(void);
	ldi R24,15
	sts _new_key_num,R24
L32:
	.dbline 109
; void SPI_data_send(unsigned char send_data);
	lds R24,_old_key_num
	cpi R24,15
	brne L34
	lds R24,_new_key_num
	cpi R24,15
	breq L34
	lds R2,_key_delay
	tst R2
	brne L34
	.dbline 110
; 
	mov R2,R24
	sts _key_num,R2
	xjmp L35
L34:
	.dbline 111
; //UART收发数据
	lds R24,_old_key_num
	cpi R24,15
	breq L36
	lds R3,_new_key_num
	cp R3,R24
	brne L36
	.dbline 112
; void uart_TX(unsigned char data);    
	.dbline 113
; void uart_time_out(void);
	ldi R24,15
	sts _key_num,R24
	.dbline 114
; 
	lds R24,_key_down_time
	lds R25,_key_down_time+1
	adiw R24,1
	sts _key_down_time+1,R25
	sts _key_down_time,R24
	.dbline 115
; //中断函数
	xjmp L37
L36:
	.dbline 117
; void exi_int0(void);
; void timer1_vof(void);
	.dbline 118
; void usart_rcx(void);
	lds R24,_old_key_num
	cpi R24,15
	breq L38
	lds R24,_new_key_num
	cpi R24,15
	brne L38
	.dbline 119
; /*************************************************
	.dbline 120
; *             子函数区                           *
	ldi R24,15
	sts _key_num,R24
	.dbline 121
; *                                                *
	clr R2
	clr R3
	sts _key_down_time+1,R3
	sts _key_down_time,R2
	.dbline 122
; *************************************************/
	ldi R24,100
	sts _key_delay,R24
	.dbline 123
; 
L38:
	.dbline 124
; /****************************************
L37:
L35:
	.dbline 125
;           端口定义
	lds R2,_new_key_num
	sts _old_key_num,R2
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbsym r j 16 c
	.dbsym r i 18 c
	.dbend
	.area vector(rom, abs)
	.org 4
	jmp _exi_int0
	.area text(rom, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.area vector(rom, abs)
	.org 32
	jmp _timer1_vof
	.area text(rom, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.area vector(rom, abs)
	.org 44
	jmp _usart_rcx
	.area text(rom, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
_sys_cont::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile C:\Documents and Settings\fli\桌面\广告屏程序\主板程序/disp_key.h
	.dbfile display_board2.1.c
	.dbsym e sys_cont _sys_cont I
_PDataY::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e PDataY _PDataY I
_PDataYMax::
	.blkb 2
	.area idata
	.word 154
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e PDataYMax _PDataYMax I
_PDataYMin::
	.blkb 2
	.area idata
	.word 4
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e PDataYMin _PDataYMin I
_FileEnd::
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e FileEnd _FileEnd c
_HeadLoad::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e HeadLoad _HeadLoad c
_HeadEN::
	.blkb 1
	.area idata
	.byte 1
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e HeadEN _HeadEN c
_DataIndex::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e DataIndex _DataIndex I
_FileLength::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e FileLength _FileLength I
_time_out_ms::
	.blkb 2
	.area idata
	.word 1
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e time_out_ms _time_out_ms i
_time_out_s::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e time_out_s _time_out_s c
_DispModel::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e DispModel _DispModel c
_ModelDelayTime::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e ModelDelayTime _ModelDelayTime I
_ModelContJuge::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile display_board2.1.c
	.dbsym e ModelContJuge _ModelContJuge c
	.area text(rom, con, rel)
	.dbfile display_board2.1.c
	.dbfunc e port_int _port_int fV
	.even
_port_int::
	.dbline -1

⌨️ 快捷键说明

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