📄 display_dhtxx.lis
字号:
.module Display_DHTXX.c
.area lit(rom, con, rel)
0000 _LED::
0000 4079 .byte 64,'y
0002 2430 .byte 36,48
0004 1912 .byte 25,18
0006 0278 .byte 2,'x
0008 0010 .byte 0,16
000A BF39 .byte 191,57
000C 86AF .byte 134,175
000E FF .byte 255
000F .dbfile C:\DOCUME~1\Owner\桌面\产品程序文件\DHT21\新显示程序\Display_DHTXX.c
000F .dbsym e LED _LED A[15:15]kc
.area data(ram, con, rel)
0000 .dbfile C:\DOCUME~1\Owner\桌面\产品程序文件\DHT21\新显示程序\Display_DHTXX.c
0000 _PLAY::
0000 .blkb 2
.area idata
0000 0000 .byte 0,0
.area data(ram, con, rel)
0002 .dbfile C:\DOCUME~1\Owner\桌面\产品程序文件\DHT21\新显示程序\Display_DHTXX.c
0002 .blkb 2
.area idata
0002 0000 .byte 0,0
.area data(ram, con, rel)
0004 .dbfile C:\DOCUME~1\Owner\桌面\产品程序文件\DHT21\新显示程序\Display_DHTXX.c
0004 .blkb 2
.area idata
0004 0000 .byte 0,0
.area data(ram, con, rel)
0006 .dbfile C:\DOCUME~1\Owner\桌面\产品程序文件\DHT21\新显示程序\Display_DHTXX.c
0006 .dbsym e PLAY _PLAY A[6:6]c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Owner\桌面\产品程序文件\DHT21\新显示程序\Display_DHTXX.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 113
0000 ; //ICC-AVR application builder : 2008-4-28 9:22:37
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz
0000 ; /*************************************************************************
0000 ; 程序:6_LED
0000 ; 功能:湿度传感器显示板(六个数码管显示)
0000 ; 公司:奥松电子
0000 ; 芯片:M8
0000 ; 晶振:内部 2.0000Mhz
0000 ; 创建人:木工
0000 ; 创建时间:08.05.05
0000 ; 修改人:
0000 ; 修改时间:
0000 ; 修改原因:
0000 ; **************************************************************************/
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ; #include <eeprom.h>
0000 ; #include "mu_io.h"
0000 ; typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */
0000 ; typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */
0000 ; typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */
0000 ; typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
0000 ; typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */
0000 ; typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
0000 ; typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
0000 ; typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
0000 ;
0000 ; /**************************************************************************
0000 ; 数码管显示赋值区
0000 ; ***************************************************************************/
0000 ; #define _a 0x01
0000 ; #define _b 0x02
0000 ; #define _c 0x04
0000 ; #define _d 0x08
0000 ; #define _e 0x10
0000 ; #define _f 0x20
0000 ; #define _g 0x40
0000 ; #define _dp 0x80
0000 ;
0000 ; #define num0 _g //灭的数码管
0000 ; #define num1 _a|_d|_e|_f|_g
0000 ; #define num2 _c|_f
0000 ; #define num3 _e|_f
0000 ; #define num4 _a|_d|_e
0000 ; #define num5 _b|_e
0000 ; #define num6 _b
0000 ; #define num7 _d|_e|_f|_g
0000 ; #define num8 0x00
0000 ; #define num9 _e
0000 ; #define num_ _a|_b|_c|_d|_e|_f|_dp
0000 ; #define num_11 _a|_d|_e|_f
0000 ; #define num_E _b|_c|_dp //13
0000 ; #define num_r _a|_b|_c|_d|_f|_dp //14
0000 ; #define num_N _a|_b|_c|_d|_e|_f|_g|_dp //15
0000 ;
0000 ;
0000 ;
0000 ;
0000 ;
0000 ; #define dc2 0x04
0000 ; #define dc3 0x08
0000 ; #define dd 0x03 //数码管控制端口
0000 ; #define dd4 0x10
0000 ; #define dd5 0x20
0000 ; #define dd6 0x40
0000 ; #define dd7 0x80
0000 ; #define dd2 0x04
0000 ; #define dd3 0x08
0000 ;
0000 ; #define led1 dc3 //使用时要先将数码管全熄灭掉
0000 ; #define led2 dd5
0000 ; #define led3 dd4
0000 ; #define led4 dd7
0000 ; #define led5 dd6
0000 ; #define led6 dd2
0000 ; /**************************************************************************
0000 ; I/O空间定义
0000 ; ***************************************************************************/
0000 ; // B0_IN DDRB &= ~(1 << PB0) /*设置输入*/
0000 ; // B0_OUT DDRB |= (1 << PB0) /*设置输出*/
0000 ; // B0_CLR PORTB &= ~(1 << PB0) /*置低电平*/
0000 ; // B0_SET PORTB |= (1 << PB0) /*置高电平*/
0000 ; // B0_R PINB & (1 <<PB0) /*读了电平*/
0000 ; /**************************************************************************
0000 ; 通讯I/O空间定义
0000 ; ***************************************************************************/
0000 ; #define COM_IN C5_IN
0000 ; #define COM_OUT C5_OUT
0000 ; #define COM_CLR C5_CLR
0000 ; #define COM_SET C5_SET
0000 ; #define COM_R C5_R
0000 ;
0000 ; /**************************************************************************
0000 ; 全局变量定义区
0000 ; ***************************************************************************/
0000 ; U8 i;
0000 ; //U16
0000 ; //RM 为临时变量 在RC测电阻中使用
0000 ; const U8 LED[ ]={num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,num_,num_11,num_E,num_r,num_N }; //数码管笔形码数组
0000 ; U8 PLAY[6]={0,0,0,0,0,0}; //这个数组放在SARM里
0000 ; U8 U8FLAG,k;
0000 ; U8 U8count,U8temp;
0000 ; U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
0000 ; U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
0000 ; U8 U8comdata;
0000 ; U16 ReceiveHighByte;
0000 ; U16 ReceiveLowByte;
0000 ; /**************************************************************************
0000 ; ***************************************************************************/
0000 ; void port_init(void)
0000 ; {
0000 .dbline 114
0000 ; PORTB = 0x00;
0000 2224 clr R2
0002 28BA out 0x18,R2
0004 .dbline 115
0004 ; DDRB = 0xFF;
0004 8FEF ldi R24,255
0006 87BB out 0x17,R24
0008 .dbline 116
0008 ; PORTC = 0x03; //m103 output only
0008 83E0 ldi R24,3
000A 85BB out 0x15,R24
000C .dbline 117
000C ; DDRC = 0x0C;
000C 8CE0 ldi R24,12
000E 84BB out 0x14,R24
0010 .dbline 118
0010 ; PORTD = 0x00;
0010 22BA out 0x12,R2
0012 .dbline 119
0012 ; DDRD = 0xF0;
0012 80EF ldi R24,240
0014 81BB out 0x11,R24
0016 .dbline -2
0016 L1:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e watchdog_init _watchdog_init fV
.even
0018 _watchdog_init::
0018 .dbline -1
0018 .dbline 123
0018 ; }
0018 ;
0018 ; void watchdog_init(void)
0018 ; {
0018 .dbline -2
0018 L2:
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbend
001A .dbfunc e init_devices _init_devices fV
001A ; i -> <dead>
.even
001A _init_devices::
001A .dbline -1
001A .dbline 130
001A ; //WDR(); //this prevents a timout on enabling
001A ; //WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
001A ; }
001A ;
001A ;
001A ; void init_devices(void)
001A ; {
001A .dbline 132
001A ; unsigned char i;
001A ; CLI(); //disable all interrupts
001A F894 cli
001C .dbline 133
001C ; port_init();
001C F1DF rcall _port_init
001E .dbline 134
001E ; watchdog_init();
001E FCDF rcall _watchdog_init
0020 .dbline 136
0020 ;
0020 ; MCUCR = 0x03;
0020 83E0 ldi R24,3
0022 85BF out 0x35,R24
0024 .dbline 137
0024 ; GICR = 0x00; //关外部中断0
0024 2224 clr R2
0026 2BBE out 0x3b,R2
0028 .dbline 138
0028 ; TIMSK = 0x00; //关定时器1中断
0028 29BE out 0x39,R2
002A .dbline 139
002A ; SEI(); //re-enable interrupts
002A 7894 sei
002C .dbline -2
002C L3:
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym l i 1 c
002E .dbend
002E .dbfunc e Delay _Delay fV
002E ; i -> R16,R17
.even
002E _Delay::
002E .dbline -1
002E .dbline 144
002E ;
002E ; }
002E ;
002E ; void Delay(unsigned int i)
002E ; {
002E L5:
002E .dbline 145
002E L6:
002E .dbline 145
002E ; while(i--);
002E 1801 movw R2,R16
0030 0150 subi R16,1
0032 1040 sbci R17,0
0034 2220 tst R2
0036 D9F7 brne L5
0038 3320 tst R3
003A C9F7 brne L5
003C X0:
003C .dbline -2
003C L4:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbsym r i 16 i
003E .dbend
003E .dbfunc e DelayNS _DelayNS fV
003E ; i -> R20,R21
003E ; dly -> R16,R17
.even
003E _DelayNS::
003E 00D0 rcall push_gset1
0040 .dbline -1
0040 .dbline 148
0040 ; }
0040 ; void DelayNS (U16 dly) //延时子程序 1.010ms
0040 ; {
0040 .dbline 150
0040 03C0 rjmp L12
0042 L9:
0042 .dbline 150
0042 A895 wdr
0044 L10:
0044 .dbline 150
0044 0150 subi R16,1
0046 1040 sbci R17,0
0048 L12:
0048 .dbline 150
0048 ; U16 i;
0048 ; for ( ; dly>0; dly--)WDR();
0048 0030 cpi R16,0
004A 0107 cpc R16,R17
004C D1F7 brne L9
004E X1:
004E .dbline 151
004E 4427 clr R20
0050 5527 clr R21
0052 02C0 rjmp L16
0054 L13:
0054 .dbline 151
0054 L14:
0054 .dbline 151
0054 4F5F subi R20,255 ; offset = 1
0056 5F4F sbci R21,255
0058 L16:
0058 .dbline 151
0058 ; for (i=0; i<1131; i++); //1131
0058 4B36 cpi R20,107
005A E4E0 ldi R30,4
005C 5E07 cpc R21,R30
005E D0F3 brlo L13
0060 .dbline -2
0060 L8:
0060 00D0 rcall pop_gset1
0062 .dbline 0 ; func end
0062 0895 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -