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

📄 led.lis

📁 一个不错的DS1820的程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A0                   .dbline 69
 00A0           ;   display_one(2,temp);
 00A0 2A2D              mov R18,R10
 00A2 02E0              ldi R16,2
 00A4 B3DF              xcall _display_one
 00A6                   .dbline 70
 00A6           ;   delay_ms(6);
 00A6 06E0              ldi R16,6
 00A8 10E0              ldi R17,0
 00AA 0E940000          xcall _delay_ms
 00AE                   .dbline 71
 00AE           ;   led_contrl_port &=~ (1<<2);
 00AE C298              cbi 0x18,2
 00B0                   .dbline 72
 00B0           ;  }
 00B0 0AC0              xjmp L9
 00B2           L8:
 00B2                   .dbline 74
 00B2           ;  else
 00B2           ;  {
 00B2                   .dbline 75
 00B2           ;   if(mode==1)
 00B2 4130              cpi R20,1
 00B4 41F4              brne L10
 00B6           X3:
 00B6                   .dbline 76
 00B6           ;   {
 00B6                   .dbline 77
 00B6           ;   display_one(2,0);
 00B6 2227              clr R18
 00B8 02E0              ldi R16,2
 00BA A8DF              xcall _display_one
 00BC                   .dbline 78
 00BC           ;   delay_ms(6);
 00BC 06E0              ldi R16,6
 00BE 10E0              ldi R17,0
 00C0 0E940000          xcall _delay_ms
 00C4                   .dbline 79
 00C4           ;   led_contrl_port &=~ (1<<2);
 00C4 C298              cbi 0x18,2
 00C6                   .dbline 80
 00C6           ;   }
 00C6           L10:
 00C6                   .dbline 81
 00C6           ;  }
 00C6           L9:
 00C6                   .dbline 83
 00C6           ;  //十位
 00C6           ;  if(data>10)
 00C6 8AE0              ldi R24,10
 00C8 90E0              ldi R25,0
 00CA 8C15              cp R24,R12
 00CC 9D05              cpc R25,R13
 00CE 98F4              brsh L12
 00D0           X4:
 00D0                   .dbline 84
 00D0           ;  {
 00D0                   .dbline 85
 00D0           ;   temp=(data%100)/10;
 00D0 24E6              ldi R18,100
 00D2 30E0              ldi R19,0
 00D4 8601              movw R16,R12
 00D6 0E940000          xcall mod16u
 00DA 2AE0              ldi R18,10
 00DC 30E0              ldi R19,0
 00DE 0E940000          xcall div16u
 00E2 5801              movw R10,R16
 00E4                   .dbline 86
 00E4           ;   display_one(1,temp);
 00E4 2A2D              mov R18,R10
 00E6 01E0              ldi R16,1
 00E8 91DF              xcall _display_one
 00EA                   .dbline 87
 00EA           ;   delay_ms(6);
 00EA 06E0              ldi R16,6
 00EC 10E0              ldi R17,0
 00EE 0E940000          xcall _delay_ms
 00F2                   .dbline 88
 00F2           ;   led_contrl_port &=~ (1<<1);
 00F2 C198              cbi 0x18,1
 00F4                   .dbline 89
 00F4           ;  }
 00F4 0AC0              xjmp L13
 00F6           L12:
 00F6                   .dbline 91
 00F6           ;  else
 00F6           ;  {
 00F6                   .dbline 92
 00F6           ;   if(mode==1)
 00F6 4130              cpi R20,1
 00F8 41F4              brne L14
 00FA           X5:
 00FA                   .dbline 93
 00FA           ;   {
 00FA                   .dbline 94
 00FA           ;   display_one(1,0);
 00FA 2227              clr R18
 00FC 01E0              ldi R16,1
 00FE 86DF              xcall _display_one
 0100                   .dbline 95
 0100           ;   delay_ms(6);
 0100 06E0              ldi R16,6
 0102 10E0              ldi R17,0
 0104 0E940000          xcall _delay_ms
 0108                   .dbline 96
 0108           ;   led_contrl_port &=~ (1<<1);
 0108 C198              cbi 0x18,1
 010A                   .dbline 97
 010A           ;   }
 010A           L14:
 010A                   .dbline 98
 010A           ;  }
 010A           L13:
 010A                   .dbline 100
 010A           ;  //个位
 010A           ;   temp=data%10;
 010A 2AE0              ldi R18,10
 010C 30E0              ldi R19,0
 010E 8601              movw R16,R12
 0110 0E940000          xcall mod16u
 0114 5801              movw R10,R16
 0116                   .dbline 101
 0116           ;   display_one(0,temp);
 0116 2A2D              mov R18,R10
 0118 0027              clr R16
 011A 78DF              xcall _display_one
 011C                   .dbline 102
 011C           ;   delay_ms(6);
 011C 06E0              ldi R16,6
 011E 10E0              ldi R17,0
 0120 0E940000          xcall _delay_ms
 0124                   .dbline 103
 0124           ;   led_contrl_port &=~ (1<<0);
 0124 C098              cbi 0x18,0
 0126                   .dbline -2
 0126           L3:
 0126                   .dbline 0 ; func end
 0126 0C940000          xjmp pop_xgset303C
 012A                   .dbsym r temp 10 c
 012A                   .dbsym r mode 20 c
 012A                   .dbsym r data 12 i
 012A                   .dbend
 012A                   .dbfunc e led_error _led_error fV
                        .even
 012A           _led_error::
 012A                   .dbline -1
 012A                   .dbline 225
 012A           ; }
 012A           ; 
 012A           ; /***********************
 012A           ; ** 显示四位浮点数
 012A           ; ** 输入:要显示的四位数
 012A           ; ** 说明:可以小于四位数,自动补零
 012A           ;    没有调通
 012A           ; ************************/
 012A           ; /*
 012A           ; void display_float(float data)
 012A           ; {
 012A           ;  uint8 temp;
 012A           ;  // 人为保证data的值,可以不要错误处理。
 012A           ;  if (data>1000)
 012A           ;  {
 012A           ;   led_error();
 012A           ;   break;
 012A           ;  }
 012A           ;  if (data<0)
 012A           ;  {
 012A           ;   led_error();
 012A           ;   break;
 012A           ;  }
 012A           ;  //
 012A           ;  if(data<1)       //比如 0.123
 012A           ;  {
 012A           ;   display_one(3,0);   //显示0.
 012A           ;   led_port |= 0x07; //点亮对应小数点
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<3);
 012A           ;   
 012A           ;   temp=(data*10);   // 0.123*10 = 1
 012A           ;   display_one(2,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<2);
 012A           ;   
 012A           ;   temp=(data*100)%10; // 0.123*100%10 = 2
 012A           ;   display_one(1,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<1);
 012A           ;   
 012A           ;   temp=(data*1000)%10; // 0.123*100%10 = 3
 012A           ;   display_one(0,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<0);
 012A           ;  }
 012A           ;  else if(data<10)  //比如1.234
 012A           ;  {
 012A           ;   temp=(data/1);   // 1.234/1 = 1
 012A           ;   display_one(3,temp);
 012A           ;   led_port |= 0x07; //点亮对应小数点
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<3);
 012A           ;   //第一位小数
 012A           ;   temp=(data*10)%10; // 1.234*10%10 = 2
 012A           ;   display_one(2,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<2);
 012A           ;   //第二位小数
 012A           ;   temp=(data*100)%10; // 1.234*100%10 = 3
 012A           ;   display_one(1,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<1);
 012A           ;   //第三位小数
 012A           ;   temp=(data*1000)%10; // 1.234*1000%10 = 4
 012A           ;   display_one(0,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<0);
 012A           ;  }
 012A           ;  else if(data<100)   // 例如12.34
 012A           ;  {
 012A           ;   temp=(data/10);   // 12.34/10=1
 012A           ;   display_one(3,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<3);
 012A           ;   
 012A           ;   temp=(data%10);   // 12.34%10=2
 012A           ;   display_one(2,temp);
 012A           ;   led_port |= 0x07; //点亮对应小数点
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<2);
 012A           ;   
 012A           ;   temp=(data*10)%10; // 12.34*10%10=3
 012A           ;   display_one(1,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<1);
 012A           ;    
 012A           ;   temp=(data*100)%10;// 12.34*100%10=4
 012A           ;   display_one(0,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<0);
 012A           ;  }
 012A           ;  else if(data<1000)  //比如123.4
 012A           ;  {
 012A           ;   temp=(data/100);// 123.4/100=1
 012A           ;   display_one(3,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<3);
 012A           ;   
 012A           ;   temp=(data%100)/10;// 123.4%100/10=2
 012A           ;   display_one(2,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<2);
 012A           ;   
 012A           ;   temp=(data%10);// 123.4%10=3
 012A           ;   display_one(1,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<1);
 012A           ;   
 012A           ;   temp=(data*10)%10;// 123.4*10%10=4
 012A           ;   display_one(0,temp);
 012A           ;   delay_ms(6);
 012A           ;   led_contrl_port &=~ (1<<0);
 012A           ;  }
 012A           ;  else led_error();
 012A           ; }
 012A           ; */
 012A           ; /***********************************************
 012A           ; ** 异常处理,led全亮 8。8。8。8。
 012A           ; ***********************************************/
 012A           ; void led_error(void)
 012A           ; {
 012A                   .dbline 227
 012A           ;  // 以下两句将会使LED全亮,如果立即更改状态,将看不出来效果
 012A           ;   led_port = 0xFF;
 012A 8FEF              ldi R24,255
 012C 8BBB              out 0x1b,R24
 012E                   .dbline 228
 012E           ;   led_contrl_port |= (1<<led_a)|(1<<led_b)|(1<<led_c)|(1<<led_d);
 012E 88B3              in R24,0x18
 0130 8F60              ori R24,15
 0132 88BB              out 0x18,R24
 0134                   .dbline -2
 0134           L16:
 0134                   .dbline 0 ; func end
 0134 0895              ret
 0136                   .dbend
 0136           ; }
 0136           ; 

⌨️ 快捷键说明

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