亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.lis

?? Atmega系列單片機 BootLoader程序
?? LIS
?? 第 1 頁 / 共 3 頁
字號:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\桌面\AVR_BO~1.2\bootloader\main.c
 0000                   .dbfunc e FlashLoad _FlashLoad fV
                        .even
 0000           _FlashLoad::
 0000                   .dbline -1
 0000                   .dbline 74
 0000           ; /******************************************************************************
 0000           ; Atmega系列單片機 BootLoader程序  
 0000           ; 日  期:2007年4月
 0000           ; 作  者:likeeavr
 0000           ; 版權所有:avrvi論壇
 0000           ; 
 0000           ; 說明:當前版本只針對本論壇M16開發板
 0000           ; 
 0000           ; 上位機借用了馮建輝的程序。
 0000           ; 
 0000           ; /*****************************************************************************/
 0000           ; #include <macros.h>
 0000           ; #include "assembly.h"
 0000           ;  
 0000           ; #define  ChipType     Atmega16       
 0000           ;       
 0000           ; //*********************************************************
 0000           ; //選擇BOOT區大小  此必須與ICC options中的選項相對應
 0000           ; //#define  BootSize     'a'    //128   
 0000           ; //#define  BootSize     'b'    //256
 0000           ; //#define  BootSize     'c'    //512
 0000           ; #define    BootSize       'd'    //1024
 0000           ; //選擇BootLoad版本號
 0000           ; #define  BootVer        'f'    //1.0版本
 0000           ; 
 0000           ; //**********************************************************
 0000           ; 
 0000           ; #define  Atmega16       0x31
 0000           ; 
 0000           ; //*****************************************************************************
 0000           ; #define  InteClk                 //是否使用內部時鐘
 0000           ; #define  OscAddress     0x1fff   //時鐘校準值存儲地址
 0000           ; 
 0000           ; //*****************************************************************************
 0000           ; //7.3728M時鐘下的波特率為19200的設置,此設置可根據ICC生成,選對芯片,時鐘,波特率既可
 0000           ; //由此語句調用UBRR = BAU;
 0000           ; #define  BAU  23    // 7.3728M 19200
 0000           ; //#define  BAU  191 // 7.3728M 2400
 0000           ; //#define  BAU  95  // 7.3728M 4800
 0000           ; //#define  BAU  47  // 7.3728M 9600
 0000           ; //#define  BAU  31  // 7.3728M 14400
 0000           ; //#define  BAU  23  // 7.3728M 19200
 0000           ; //#define  BAU  15  // 7.3728M 28800
 0000           ; 
 0000           ; //#define  BAU  38  // 12M 19200
 0000           ; 
 0000           ; //*****************************************************************************
 0000           ; 
 0000           ; #include  <iom16v.h>
 0000           ; #define   PageByte             128    
 0000           ; #define   AddressShift         7
 0000           ; #define       INTVECREG                GICR
 0000           ; 
 0000           ; 
 0000           ; void          FlashLoad        (void);
 0000           ; void          GetPageNumber    (void);
 0000           ; void          ExecCode         (void);
 0000           ; char          GetPage          (void);
 0000           ; void          WriteFlash       (void);
 0000           ; char          CheckFlash       (void);
 0000           ; unsigned char IsChar           (void);
 0000           ; void          SendChar         (unsigned char c);
 0000           ; void          delay            (void);                 //1ms延時函數
 0000           ; unsigned char RecChar          (void);
 0000           ; 
 0000           ; unsigned char PageBuffer[PageByte];
 0000           ; unsigned int  RealPageAddress;
 0000           ; unsigned int  PageAddress;
 0000           ; 
 0000           ; /*****************************************************************************/
 0000           ; //Flash編程                                                                                
 0000           ; /*****************************************************************************/
 0000           ; void FlashLoad(void)
 0000           ;   {
 0000                   .dbline 75
 0000           ;     SendChar('!');
 0000 01E2              ldi R16,33
 0002 E0D0              xcall _SendChar
 0004 19C0              xjmp L3
 0006           L2:
 0006                   .dbline 77
 0006           ;     while (1)
 0006           ;     {
 0006                   .dbline 78
 0006           ;        GetPageNumber();
 0006 1AD0              xcall _GetPageNumber
 0008                   .dbline 80
 0008           ; 
 0008           ;        if (RealPageAddress == 0xffff) 
 0008 80910200          lds R24,_RealPageAddress
 000C 90910300          lds R25,_RealPageAddress+1
 0010 8F3F              cpi R24,255
 0012 EFEF              ldi R30,255
 0014 9E07              cpc R25,R30
 0016 09F4              brne L5
 0018                   .dbline 81
 0018           ;          return;
 0018 10C0              xjmp L1
 001A           L5:
 001A                   .dbline 83
 001A           ;         
 001A           ;        if (GetPage())
 001A 28D0              xcall _GetPage
 001C 0023              tst R16
 001E 51F0              breq L7
 0020                   .dbline 84
 0020           ;         {
 0020                   .dbline 85
 0020           ;               WriteFlash();
 0020 61D0              xcall _WriteFlash
 0022                   .dbline 86
 0022           ;           if (CheckFlash()) 
 0022 93D0              xcall _CheckFlash
 0024 0023              tst R16
 0026 19F0              breq L9
 0028                   .dbline 87
 0028           ;                 SendChar('!');
 0028 01E2              ldi R16,33
 002A CCD0              xcall _SendChar
 002C 05C0              xjmp L8
 002E           L9:
 002E                   .dbline 89
 002E           ;           else 
 002E           ;                 SendChar('@');
 002E 00E4              ldi R16,64
 0030 C9D0              xcall _SendChar
 0032                   .dbline 90
 0032           ;         }
 0032 02C0              xjmp L8
 0034           L7:
 0034                   .dbline 92
 0034           ;        else 
 0034           ;          SendChar('@');
 0034 00E4              ldi R16,64
 0036 C6D0              xcall _SendChar
 0038           L8:
 0038                   .dbline 93
 0038           L3:
 0038                   .dbline 76
 0038 E6CF              xjmp L2
 003A           X0:
 003A                   .dbline -2
 003A           L1:
 003A                   .dbline 0 ; func end
 003A 0895              ret
 003C                   .dbend
 003C                   .dbfunc e GetPageNumber _GetPageNumber fV
 003C           ;   PageAddressL -> R20
 003C           ;   PageAddressH -> R22
                        .even
 003C           _GetPageNumber::
 003C 0E940000          xcall push_gset2
 0040                   .dbline -1
 0040                   .dbline 98
 0040           ;     }
 0040           ;   }
 0040           ; 
 0040           ; /*****************************************************************************/
 0040           ; void GetPageNumber(void)
 0040           ;   {
 0040                   .dbline 102
 0040           ;     unsigned char PageAddressH;
 0040           ;     unsigned char PageAddressL;
 0040           ; 
 0040           ;     PageAddressH = RecChar();
 0040 BDD0              xcall _RecChar
 0042 602F              mov R22,R16
 0044                   .dbline 104
 0044           ; 
 0044           ;     PageAddressL = RecChar();
 0044 BBD0              xcall _RecChar
 0046 402F              mov R20,R16
 0048                   .dbline 106
 0048           ; 
 0048           ;     RealPageAddress=(int)((PageAddressH << 8) + PageAddressL);
 0048 362E              mov R3,R22
 004A 242E              mov R2,R20
 004C 30920300          sts _RealPageAddress+1,R3
 0050 20920200          sts _RealPageAddress,R2
 0054                   .dbline 107
 0054           ;       PageAddress=RealPageAddress<<AddressShift;
 0054 27E0              ldi R18,7
 0056 30E0              ldi R19,0
 0058 8101              movw R16,R2
 005A 0E940000          xcall lsl16
 005E 10930100          sts _PageAddress+1,R17
 0062 00930000          sts _PageAddress,R16
 0066                   .dbline -2
 0066           L11:
 0066 0E940000          xcall pop_gset2
 006A                   .dbline 0 ; func end
 006A 0895              ret
 006C                   .dbsym r PageAddressL 20 c
 006C                   .dbsym r PageAddressH 22 c
 006C                   .dbend
 006C                   .dbfunc e GetPage _GetPage fc
 006C           ;       CheckSum -> R20
 006C           ;  LocalCheckSum -> R22
 006C           ;              i -> R10
                        .even
 006C           _GetPage::
 006C 0E940000          xcall push_gset3
 0070                   .dbline -1
 0070                   .dbline 118
 0070           ; #ifdef RAMPZ_FLAG
 0070           ;     if (PageAddressH) 
 0070           ;          RAMPZ = 1; 
 0070           ;     else 
 0070           ;          RAMPZ = 0;
 0070           ; #endif        
 0070           ;   }
 0070           ; 
 0070           ; /*****************************************************************************/
 0070           ; char GetPage(void)
 0070           ;   {
 0070                   .dbline 120
 0070           ;     unsigned char i;
 0070           ;     unsigned char LocalCheckSum = 0;
 0070 6627              clr R22
 0072                   .dbline 121
 0072           ;     unsigned char CheckSum = 0;
 0072 4427              clr R20
 0074                   .dbline 123
 0074           ; 
 0074           ;     for (i=0;i<PageByte/2;i++)
 0074 AA24              clr R10
 0076 12C0              xjmp L16
 0078           X1:
 0078                   .dbline 124
 0078           ;       {
 0078           L17:
 0078                   .dbline 125
 0078           L18:
 0078                   .dbline 125
 0078 9BD0              xcall _IsChar
 007A 0023              tst R16
 007C E9F3              breq L17
 007E                   .dbline 126
 007E 9ED0              xcall _RecChar
 0080 80E0              ldi R24,<_PageBuffer
 0082 90E0              ldi R25,>_PageBuffer
 0084 EA2D              mov R30,R10
 0086 FF27              clr R31
 0088 E80F              add R30,R24
 008A F91F              adc R31,R25
 008C 0083              std z+0,R16
 008E                   .dbline 127
 008E EA2D              mov R30,R10
 0090 FF27              clr R31
 0092 E80F              add R30,R24
 0094 F91F              adc R31,R25
 0096 2080              ldd R2,z+0
 0098 6225              eor R22,R2
 009A                   .dbline 128
 009A           L14:
 009A                   .dbline 123
 009A A394              inc R10
 009C           L16:
 009C                   .dbline 123
 009C 8A2D              mov R24,R10
 009E 8034              cpi R24,64
 00A0 58F3              brlo L18
 00A2                   .dbline 129
 00A2           ;        while(!IsChar());
 00A2           ;        PageBuffer[i]=RecChar();
 00A2           ;        LocalCheckSum ^= PageBuffer[i];
 00A2           ;       }
 00A2           ;       for (i=0;i<PageByte/2;i++)
 00A2 AA24              clr R10
 00A4 12C0              xjmp L23
 00A6           X2:
 00A6                   .dbline 130
 00A6           ;       {
 00A6           L24:
 00A6                   .dbline 131
 00A6           L25:
 00A6                   .dbline 131
 00A6 84D0              xcall _IsChar
 00A8 0023              tst R16
 00AA E9F3              breq L24
 00AC                   .dbline 132
 00AC 87D0              xcall _RecChar

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲你懂的在线视频| 91黄色免费观看| 色www精品视频在线观看| 欧美色综合天天久久综合精品| 777a∨成人精品桃花网| 欧美成人官网二区| 日韩久久一区二区| 奇米四色…亚洲| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产综合色产在线精品| 97久久精品人人澡人人爽| 欧美夫妻性生活| 国产精品视频第一区| 天天射综合影视| 国产成人亚洲综合色影视| 在线观看成人免费视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品福利一区二区| 天堂在线亚洲视频| av中文字幕不卡| 日韩一二三区不卡| 亚洲精品国产视频| 国产精品一二三| 91精品国产综合久久精品麻豆 | 91国偷自产一区二区三区成为亚洲经典| 91精品国产91热久久久做人人| 欧美极品aⅴ影院| 日韩精品成人一区二区在线| 99久久精品国产导航| 精品国产污网站| 亚洲一二三四久久| 成人免费视频app| 日韩精品一区二区三区在线| 一级特黄大欧美久久久| 成人少妇影院yyyy| 欧美大度的电影原声| 一区二区三区**美女毛片| 丰满放荡岳乱妇91ww| 日韩午夜精品视频| 亚洲.国产.中文慕字在线| 91香蕉视频在线| 中文字幕精品在线不卡| 韩国v欧美v日本v亚洲v| 日韩午夜在线观看| 亚洲国产精品欧美一二99| 91日韩精品一区| 欧美激情综合五月色丁香小说| 毛片不卡一区二区| 91麻豆精品国产91久久久久 | 色婷婷一区二区| 国产精品成人网| 成人美女视频在线观看| 精品国产髙清在线看国产毛片| 日韩精品欧美精品| 欧美午夜精品理论片a级按摩| 亚洲天堂精品在线观看| 丁香激情综合国产| 亚洲国产精品黑人久久久| 激情亚洲综合在线| 日韩欧美亚洲另类制服综合在线| 亚洲一二三四在线| 欧美性淫爽ww久久久久无| 亚洲乱码国产乱码精品精98午夜 | 中文字幕 久热精品 视频在线 | 国产欧美一区二区精品久导航| 看片的网站亚洲| 欧美电视剧免费全集观看| 日韩国产在线一| 777精品伊人久久久久大香线蕉| 亚洲va国产天堂va久久en| 欧美日韩激情在线| 日韩专区中文字幕一区二区| 欧美日韩精品一区二区| 日韩不卡一二三区| 欧美大片拔萝卜| 国产成人综合网| 国产精品你懂的在线欣赏| 成人性生交大片免费看在线播放| 国产精品伦一区| 99re热视频这里只精品| 精品国产乱码久久久久久图片| 成人久久18免费网站麻豆| 久久久久国产精品厨房| 国产午夜精品一区二区三区嫩草| 欧洲色大大久久| 本田岬高潮一区二区三区| 一区二区三区欧美| 91.com在线观看| 欧美影片第一页| 欧美一区二区久久| 亚洲视频中文字幕| 91天堂素人约啪| 亚洲成av人影院| 日韩精品一区二区三区视频播放| 国产在线播精品第三| 国产精品美女久久久久久久网站| 99精品欧美一区二区蜜桃免费| 亚洲精品中文在线观看| 欧美精品色综合| 国产一区二区精品久久91| 中文字幕一区二区不卡| 精品视频一区 二区 三区| 久久av资源网| 亚洲欧美在线视频观看| 欧美日韩国产在线播放网站| 久久精品国产秦先生| 最新日韩在线视频| 91精品国产综合久久久久久久| 国产精品综合二区| 亚洲黄色片在线观看| 欧美大片日本大片免费观看| 成人福利视频网站| 丝袜美腿亚洲综合| 日本一区二区三区久久久久久久久不 | 日韩成人精品在线观看| 久久久午夜电影| 欧美中文字幕久久| 国产做a爰片久久毛片| 一区二区三区中文字幕电影| 日韩精品一区二区三区视频| 91猫先生在线| 久久99精品一区二区三区| 亚洲精品成人在线| 精品日本一线二线三线不卡| 91美女福利视频| 国产主播一区二区| 亚洲成人免费在线| 国产精品国产三级国产普通话99| 91麻豆精品国产91久久久久久| 成人av免费在线| 蜜桃在线一区二区三区| 一区二区三区四区乱视频| 久久久久久久久久电影| 欧美日韩性生活| 99久久99久久精品免费观看| 久久精品国产精品青草| 亚洲图片欧美综合| 中文一区二区在线观看| 日韩视频一区二区| 欧美吞精做爰啪啪高潮| 成人网在线免费视频| 久久99精品国产麻豆婷婷| 亚洲一区二区精品3399| 中文在线一区二区| 2023国产精品自拍| 91精品国产一区二区三区| 91麻豆高清视频| 成人av资源网站| 国产福利一区在线观看| 精品在线播放午夜| 视频一区中文字幕国产| 一区二区三区四区亚洲| 国产精品理论在线观看| 久久综合色一综合色88| 日韩精品一区二区三区老鸭窝 | 日韩精品一二三四| 一区二区三区在线不卡| 国产精品久久久久久久裸模| 久久久久久久久蜜桃| 日韩欧美中文一区二区| 欧美二区乱c少妇| 欧美午夜片在线观看| 一本在线高清不卡dvd| 成人黄色777网| 福利电影一区二区三区| 国产精品影视在线| 寂寞少妇一区二区三区| 蜜桃av一区二区三区电影| 日韩在线观看一区二区| 性欧美大战久久久久久久久| 一个色妞综合视频在线观看| 亚洲激情网站免费观看| 有坂深雪av一区二区精品| 一区二区在线观看不卡| 亚洲美女精品一区| 亚洲精品国久久99热| 亚洲欧美激情一区二区| 曰韩精品一区二区| 亚洲一区视频在线| 亚洲午夜精品在线| 丝袜亚洲另类丝袜在线| 蜜桃av噜噜一区| 美女在线视频一区| 精品一区二区三区免费视频| 狠狠色丁香久久婷婷综合_中| 精品中文字幕一区二区小辣椒| 久久国产三级精品| 韩国av一区二区三区四区| 久草在线在线精品观看| 国产精品自在欧美一区| 成人avav影音| 91麻豆.com| 欧美日韩1234| 欧美成人午夜电影| 国产欧美日韩麻豆91| 亚洲丝袜美腿综合| 亚洲自拍偷拍九九九| 三级影片在线观看欧美日韩一区二区| 日本不卡123| 国产精品资源网站|