📄 温湿度.lis
字号:
0426 .dbline 239
0426 ;
0426 ; }
0426 ;
0426 ; /*
0426 ; 串口初始化函数
0426 ; 系统频率:2MHz
0426 ; 停止位:1
0426 ; 波特率:9600
0426 ; 数据长度:8
0426 ; */
0426 ; void Uart_Init(void) {
0426 .dbline 240
0426 ; UCSRA = 0x02; /*2倍速 */
0426 82E0 ldi R24,2
0428 8BB9 out 0xb,R24
042A .dbline 241
042A ; UCSRB = 0x18; /*允许接收和发送*/
042A 88E1 ldi R24,24
042C 8AB9 out 0xa,R24
042E .dbline 242
042E ; UCSRC = 0x06; /*8位数据 */
042E 86E0 ldi R24,6
0430 80BD out 0x20,R24
0432 .dbline 243
0432 ; UBRRH = 0x00;
0432 2224 clr R2
0434 20BC out 0x20,R2
0436 .dbline 246
0436 ; //UBRRL = 47; /*9600 3.6864M */
0436 ; //UBRRL = 95; /*9600 7.3728M */
0436 ; UBRRL = 103; /*9600 8.0000M */
0436 87E6 ldi R24,103
0438 89B9 out 0x9,R24
043A .dbline -2
043A L104:
043A .dbline 0 ; func end
043A 0895 ret
043C .dbend
043C .dbfunc e Uart_Transmit _Uart_Transmit fV
043C ; i -> R16
.even
043C _Uart_Transmit::
043C .dbline -1
043C .dbline 253
043C ; }
043C ;
043C ; /*
043C ; 串数据发送
043C ; 查询方式发送
043C ; */
043C ; void Uart_Transmit(unsigned char i) {
043C L106:
043C .dbline 256
043C ;
043C ; /* 等待发送缓冲器为空*/
043C ; while (!(UCSRA & (1<<UDRE)));
043C L107:
043C .dbline 256
043C 5D9B sbis 0xb,5
043E FECF rjmp L106
0440 X37:
0440 .dbline 258
0440 ; /* 将数据放入缓冲器,发送数据*/
0440 ; UDR = i;
0440 0CB9 out 0xc,R16
0442 .dbline -2
0442 L105:
0442 .dbline 0 ; func end
0442 0895 ret
0444 .dbsym r i 16 c
0444 .dbend
0444 .dbfunc e Uart_Receive _Uart_Receive fc
.even
0444 _Uart_Receive::
0444 .dbline -1
0444 .dbline 265
0444 ; }
0444 ;
0444 ; /*
0444 ; 串数据接收
0444 ; 查询方式接收
0444 ; */
0444 ; unsigned char Uart_Receive( void ) {
0444 L110:
0444 .dbline 268
0444 ;
0444 ; /* 等待接收数据*/
0444 ; while (!(UCSRA & (1<<RXC)));
0444 L111:
0444 .dbline 268
0444 5F9B sbis 0xb,7
0446 FECF rjmp L110
0448 X38:
0448 .dbline 271
0448 ; /* 从缓冲器中获取并返回数据*/
0448 ; // Uart_Transmit(UDR);
0448 ; return UDR;
0448 0CB1 in R16,0xc
044A .dbline -2
044A L109:
044A .dbline 0 ; func end
044A 0895 ret
044C .dbend
044C .dbfunc e init_devices _init_devices fV
044C ; i -> <dead>
.even
044C _init_devices::
044C .dbline -1
044C .dbline 275
044C ; }
044C ;
044C ; void init_devices(void)
044C ; {
044C .dbline 277
044C ; unsigned char i;
044C ; CLI();
044C F894 cli
044E .dbline 278
044E ; port_init();
044E 9DDE xcall _port_init
0450 .dbline 279
0450 ; watchdog_init();
0450 A8DE xcall _watchdog_init
0452 .dbline 280
0452 ; Uart_Init();
0452 E9DF xcall _Uart_Init
0454 .dbline 281
0454 ; MCUCR = 0x03;
0454 83E0 ldi R24,3
0456 85BF out 0x35,R24
0458 .dbline 282
0458 ; GICR = 0x00; //关外部中断0
0458 2224 clr R2
045A 2BBE out 0x3b,R2
045C .dbline 283
045C ; TIMSK = 0x00; //关定时器1中断
045C 29BE out 0x39,R2
045E .dbline 284
045E ; SEI(); //re-enable interrupts
045E 7894 sei
0460 .dbline -2
0460 L113:
0460 .dbline 0 ; func end
0460 0895 ret
0462 .dbsym l i 1 c
0462 .dbend
0462 .dbfunc e main _main fV
.even
0462 _main::
0462 .dbline -1
0462 .dbline 300
0462 ;
0462 ; }
0462 ; /**************************************************************************
0462 ;
0462 ;
0462 ;
0462 ; 主函数
0462 ;
0462 ;
0462 ;
0462 ;
0462 ; **************************************************************************/
0462 ;
0462 ;
0462 ; void main(void)
0462 ; {
0462 .dbline 302
0462 ;
0462 ; init_devices() ;
0462 F4DF xcall _init_devices
0464 .dbline 303
0464 ; COM_IN;
0464 A498 cbi 0x14,4
0466 .dbline 304
0466 ; COM_SET;
0466 AC9A sbi 0x15,4
0468 23C0 xjmp L116
046A L115:
046A .dbline 307
046A ;
046A ; while(1)
046A ; {
046A .dbline 310
046A ;
046A ; //读DHT21
046A ; RH();
046A 47DF xcall _RH
046C .dbline 313
046C ;
046C ; //由串口发送数据
046C ; Uart_Transmit(U8RH_data_H);
046C 00910C00 lds R16,_U8RH_data_H
0470 E5DF xcall _Uart_Transmit
0472 .dbline 314
0472 ; Uart_Transmit(U8RH_data_L);
0472 00910B00 lds R16,_U8RH_data_L
0476 E2DF xcall _Uart_Transmit
0478 .dbline 315
0478 ; Uart_Transmit(U8T_data_H);
0478 00910E00 lds R16,_U8T_data_H
047C DFDF xcall _Uart_Transmit
047E .dbline 316
047E ; Uart_Transmit(U8T_data_L);
047E 00910D00 lds R16,_U8T_data_L
0482 DCDF xcall _Uart_Transmit
0484 .dbline 317
0484 ; Uart_Transmit(U8checkdata);
0484 00910A00 lds R16,_U8checkdata
0488 D9DF xcall _Uart_Transmit
048A .dbline 320
048A ;
048A ;
048A ; Uart_Transmit(U8checkdata);
048A 00910A00 lds R16,_U8checkdata
048E D6DF xcall _Uart_Transmit
0490 .dbline 322
0490 ; //延时2S
0490 ; for(U8temp=0;U8temp<200;U8temp++)
0490 2224 clr R2
0492 20920F00 sts _U8temp,R2
0496 08C0 xjmp L121
0498 L118:
0498 .dbline 323
0498 ; {
0498 .dbline 324
0498 ; DelaymS(10);
0498 0AE0 ldi R16,10
049A 10E0 ldi R17,0
049C 8BDE xcall _DelaymS
049E .dbline 326
049E ;
049E ; }//rof
049E L119:
049E .dbline 322
049E 80910F00 lds R24,_U8temp
04A2 8F5F subi R24,255 ; addi 1
04A4 80930F00 sts _U8temp,R24
04A8 L121:
04A8 .dbline 322
04A8 80910F00 lds R24,_U8temp
04AC 883C cpi R24,200
04AE A0F3 brlo L118
04B0 X39:
04B0 .dbline 328
04B0 ;
04B0 ; }
04B0 L116:
04B0 .dbline 306
04B0 DCCF xjmp L115
04B2 X40:
04B2 .dbline -2
04B2 L114:
04B2 .dbline 0 ; func end
04B2 0895 ret
04B4 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\AVR自编程序\11avr实验板\21温湿~1\温湿度.c
0000 _ReceiveLowByte::
0000 .blkb 2
0002 .dbsym e ReceiveLowByte _ReceiveLowByte i
0002 _ReceiveHighByte::
0002 .blkb 2
0004 .dbsym e ReceiveHighByte _ReceiveHighByte i
0004 _U8comdata::
0004 .blkb 1
0005 .dbsym e U8comdata _U8comdata c
0005 _U8checkdata_temp::
0005 .blkb 1
0006 .dbsym e U8checkdata_temp _U8checkdata_temp c
0006 _U8RH_data_L_temp::
0006 .blkb 1
0007 .dbsym e U8RH_data_L_temp _U8RH_data_L_temp c
0007 _U8RH_data_H_temp::
0007 .blkb 1
0008 .dbsym e U8RH_data_H_temp _U8RH_data_H_temp c
0008 _U8T_data_L_temp::
0008 .blkb 1
0009 .dbsym e U8T_data_L_temp _U8T_data_L_temp c
0009 _U8T_data_H_temp::
0009 .blkb 1
000A .dbsym e U8T_data_H_temp _U8T_data_H_temp c
000A _U8checkdata::
000A .blkb 1
000B .dbsym e U8checkdata _U8checkdata c
000B _U8RH_data_L::
000B .blkb 1
000C .dbsym e U8RH_data_L _U8RH_data_L c
000C _U8RH_data_H::
000C .blkb 1
000D .dbsym e U8RH_data_H _U8RH_data_H c
000D _U8T_data_L::
000D .blkb 1
000E .dbsym e U8T_data_L _U8T_data_L c
000E _U8T_data_H::
000E .blkb 1
000F .dbsym e U8T_data_H _U8T_data_H c
000F _U8temp::
000F .blkb 1
0010 .dbsym e U8temp _U8temp c
0010 _U8count::
0010 .blkb 1
0011 .dbsym e U8count _U8count c
0011 _k::
0011 .blkb 1
0012 .dbsym e k _k c
0012 _U8FLAG::
0012 .blkb 1
0013 .dbsym e U8FLAG _U8FLAG c
0013 _i::
0013 .blkb 1
0014 .dbsym e i _i c
0014 ;
0014 ; }
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
0014 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -