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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? spi_prog.psm

?? 利用Picoblaze實現(xiàn)對SPI flash的控制
?? PSM
?? 第 1 頁 / 共 5 頁
字號:
                        CALL SPI_FLASH_tx_rx                   ;transmit instruction
                        LOAD s2, s9                            ;Transmit 24-bit address [s9,s8,s7].
                        CALL SPI_FLASH_tx_rx
                        LOAD s2, s8
                        CALL SPI_FLASH_tx_rx
                        LOAD s2, s7
                        CALL SPI_FLASH_tx_rx
                        XOR s0, SPI_rom_cs                     ;deselect (High) FLASH
                        OUTPUT s0, SPI_control_port
                        STORE s0, SPI_control_status           ;preserve status
     sector_erase_wait: CALL read_spi_flash_status             ;test WIP bit until finished
                        TEST s2, 01
                        JUMP NZ, sector_erase_wait
                        RETURN
                        ;
                        ;
                        ;
                        ;Bulk erase the whole SPI FLASH memory (ST type M25P16)
                        ;
                        ;Sets the WREN instruction and then transmits instruction C7 hex.
                        ;A bulk erase can take up to 40 seconds to complete. The routine therefore reads the
                        ;FLASH status and tests the write in progress (WIP) bit to test for completion
                        ;
        bulk_erase_spi: CALL set_spi_flash_WREN                ;set write enable mode
                        CALL SPI_init                          ;ensure known state of bus and s0 register
                        XOR s0, SPI_rom_cs                     ;select (Low) FLASH
                        OUTPUT s0, SPI_control_port
                        STORE s0, SPI_control_status           ;preserve status
                        LOAD s2, C7                            ;Sector erase mode
                        CALL SPI_FLASH_tx_rx                   ;transmit instruction
                        XOR s0, SPI_rom_cs                     ;deselect (High) FLASH
                        OUTPUT s0, SPI_control_port
                        STORE s0, SPI_control_status           ;preserve status
       bulk_erase_wait: CALL read_spi_flash_status             ;test WIP bit until finished
                        TEST s2, 01
                        JUMP NZ, bulk_erase_wait
                        RETURN
                        ;
                        ;
                        ;
                        ;Open a page for programming.
                        ;The 24-bit start address to be supplied in the register set [s9,s8,s7].
                        ;Note that s7=00 hex for normal page boundaries but you could start at any address.
                        ;Caution : Exceeding s7=FF hex will result in the roll over to 00 hex but without
                        ;incrementing to the next page.
                        ;
                        ;Transmits instruction 02hex followed by the 24-bit start address.
                        ;It is then ready to transmit data bytes using the s2 register and the SPI_FLASH_tx_rx
                        ;subroutine. After transmitting bytes, close the page with the close_prog_page_spi
                        ;routine.
                        ;
    open_prog_page_spi: CALL set_spi_flash_WREN                ;set write enable mode
                        CALL SPI_init                          ;ensure known state of bus and s0 register
                        XOR s0, SPI_rom_cs                     ;select (Low) FLASH
                        OUTPUT s0, SPI_control_port
                        STORE s0, SPI_control_status           ;preserve status
                        LOAD s2, 02                            ;Page program mode
                        CALL SPI_FLASH_tx_rx                   ;transmit instruction
                        LOAD s2, s9                            ;Transmit 24-bit address [s9,s8,s7].
                        CALL SPI_FLASH_tx_rx
                        LOAD s2, s8
                        CALL SPI_FLASH_tx_rx
                        LOAD s2, s7
                        CALL SPI_FLASH_tx_rx
                        RETURN
                        ;
                        ;
                        ;This routine completes a page program operation started with
                        ;open_prog_page_spi and data bytes sent with SPI_FLASH_tx_rx.
                        ;
                        ;A page program can take up to 5ms to complete. The routine therefore reads the
                        ;FLASH status and tests the write in progress (WIP) bit to test for completion
                        ;
                        ;
   close_prog_page_spi: FETCH s0, SPI_control_status           ;read control status bits
                        XOR s0, SPI_rom_cs                     ;deselect (High) FLASH
                        OUTPUT s0, SPI_control_port
                        STORE s0, SPI_control_status           ;preserve status
        page_prog_wait: CALL read_spi_flash_status             ;test WIP bit until finished
                        TEST s2, 01
                        JUMP NZ, page_prog_wait
                        RETURN
                        ;
                        ;**************************************************************************************
                        ;Software delay routines
                        ;**************************************************************************************
                        ;
                        ;
                        ;
                        ;Delay of 1us.
                        ;
                        ;Constant value defines reflects the clock applied to KCPSM3. Every instruction
                        ;executes in 2 clock cycles making the calculation highly predictable. The '6' in
                        ;the following equation even allows for 'CALL delay_1us' instruction in the initiating code.
                        ;
                        ; delay_1us_constant =  (clock_rate - 6)/4       Where 'clock_rate' is in MHz
                        ;
                        ;Registers used s0
                        ;
             delay_1us: LOAD s0, delay_1us_constant
              wait_1us: SUB s0, 01
                        JUMP NZ, wait_1us
                        RETURN
                        ;
                        ;Delay of 40us.
                        ;
                        ;Registers used s0, s1
                        ;
            delay_40us: LOAD s1, 28                            ;40 x 1us = 40us
             wait_40us: CALL delay_1us
                        SUB s1, 01
                        JUMP NZ, wait_40us
                        RETURN
                        ;
                        ;
                        ;Delay of 1ms.
                        ;
                        ;Registers used s0, s1, s2
                        ;
             delay_1ms: LOAD s2, 19                            ;25 x 40us = 1ms
              wait_1ms: CALL delay_40us
                        SUB s2, 01
                        JUMP NZ, wait_1ms
                        RETURN
                        ;
                        ;Delay of 20ms.
                        ;
                        ;Delay of 20ms used during initialisation.
                        ;
                        ;Registers used s0, s1, s2, s3
                        ;
            delay_20ms: LOAD s3, 14                            ;20 x 1ms = 20ms
             wait_20ms: CALL delay_1ms
                        SUB s3, 01
                        JUMP NZ, wait_20ms
                        RETURN
                        ;
                        ;Delay of approximately 1 second.
                        ;
                        ;Registers used s0, s1, s2, s3, s4
                        ;
              delay_1s: LOAD s4, 14                            ;50 x 20ms = 1000ms
               wait_1s: CALL delay_20ms
                        SUB s4, 01
                        JUMP NZ, wait_1s
                        RETURN
                        ;
                        ;**************************************************************************************
                        ;UART communication routines
                        ;**************************************************************************************
                        ;
                        ;Read one character from the UART
                        ;
                        ;Character read will be returned in a register called 'UART_data'.
                        ;
                        ;The routine first tests the receiver FIFO buffer to see if data is present.
                        ;If the FIFO is empty, the routine waits until there is a character to read.
                        ;As this could take any amount of time the wait loop could include a call to a
                        ;subroutine which performs a useful function.
                        ;
                        ;If the received character is an XOFF, then the routine will then wait
                        ;for an XON to be received. This means that the rest of the program is held
                        ;in suspense and therefore it can not transmit. Once an XON is received, it will
                        ;again wait for a normal character before returning.
                        ;
                        ;NOTE: Characters between the XOFF and XON will be ignored in this version of the
                        ;program!!!
                        ;
                        ;Interrupt is disabled during this routine to prevent a false situation. If the
                        ;receiver half-full flag went High it should result in an interrupt transmitting
                        ;an XOFF character. However, if this routine were able to read the receiver buffer
                        ;at just about the same as the hardware detects the half-full flag, then it could
                        ;think that an XON needs to be transmitted.
                        ;
                        ;
                        ;Registers used s0 and UART_data
                        ;
        read_from_UART: DISABLE INTERRUPT
     wait_Rx_character: INPUT s0, status_port                  ;test Rx_FIFO buffer
                        TEST s0, rx_data_present
                        JUMP NZ, read_character
                        JUMP wait_Rx_character
        read_character: INPUT UART_data, UART_read_port        ;read from FIFO
                        COMPARE UART_data, character_XOFF      ;test for XOFF
                        JUMP Z, wait_XON
                        ENABLE INTERRUPT                       ;normal finish
                        RETURN
              wait_XON: INPUT s0, status_port                  ;test Rx_FIFO buffer
                        TEST s0, rx_data_present
                        JUMP NZ, read_XON
                        JUMP wait_XON
              read_XON: INPUT UART_data, UART_read_port        ;read from FIFO
                        COMPARE UART_data, character_XON       ;test for XON
                        JUMP Z, wait_Rx_character              ;now wait for normal character
                        JUMP wait_XON                          ;continue to wait for XON
                        ;
                        ;
                        ;
                        ;Transmit one character to the UART
                        ;
                        ;Character supplied in register called 'UART_data'.
                        ;
                        ;The routine first tests the transmit FIFO buffer is empty.
                        ;If the FIFO currently has any data, the routine waits until it is empty.
                        ;Ultimately this means that only one character is sent at a time which
                        ;could be important if the PC at the other end of the link transmits
                        ;an XOFF and needs the flow of data to terminate as soon as possible.
                        ;
    

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一区二区三区国产精品| 成人激情视频网站| 欧美精品色一区二区三区| 亚洲在线视频免费观看| 久久精品一区二区三区不卡| 看国产成人h片视频| 欧美成人女星排名| 国产剧情一区二区| 国产精品日日摸夜夜摸av| 95精品视频在线| 亚洲黄色免费电影| 91精品免费在线观看| 极品尤物av久久免费看| 日本一二三四高清不卡| 色婷婷av一区二区三区大白胸 | 制服丝袜成人动漫| 美女脱光内衣内裤视频久久网站| 2021中文字幕一区亚洲| 99视频有精品| 日日摸夜夜添夜夜添精品视频| 日韩视频在线观看一区二区| 国产丶欧美丶日本不卡视频| 亚洲美女一区二区三区| 欧美一区二区性放荡片| 粉嫩av一区二区三区在线播放 | 蜜桃久久av一区| 国产欧美日韩三区| 欧美午夜寂寞影院| 国内精品免费在线观看| 亚洲女同ⅹxx女同tv| 欧美一级日韩免费不卡| 成人在线视频首页| 午夜成人在线视频| 中文无字幕一区二区三区| 欧美日韩一区二区三区四区五区 | 亚洲天堂2016| 欧美一区二区在线免费播放| 成人一区二区三区中文字幕| 三级精品在线观看| 亚洲国产精品精华液2区45| 欧美日韩高清影院| 成人午夜碰碰视频| 久久草av在线| 亚洲自拍偷拍图区| 国产日韩精品一区二区三区在线| 欧美私模裸体表演在线观看| 国产成人精品午夜视频免费| 图片区小说区国产精品视频| 亚洲色图一区二区| 欧美精品一区二| 欧美日韩在线观看一区二区 | 精品久久久久久最新网址| 91视频观看免费| 国产一区三区三区| 天天综合网天天综合色| 亚洲男人的天堂一区二区| 国产欧美日韩卡一| 精品欧美乱码久久久久久1区2区| 欧美三级中文字幕| 91麻豆文化传媒在线观看| 国产乱色国产精品免费视频| 久久精品国产成人一区二区三区| 亚洲一区二区三区小说| 中文字幕亚洲精品在线观看| 久久女同精品一区二区| 7777精品伊人久久久大香线蕉的| 日本韩国一区二区三区视频| 成人免费视频视频| 国产mv日韩mv欧美| 国产成人自拍网| 国产在线播放一区二区三区| 老色鬼精品视频在线观看播放| 午夜成人免费电影| 丝袜美腿亚洲一区| 午夜欧美在线一二页| 亚洲高清在线精品| 亚洲成av人片在www色猫咪| 亚洲九九爱视频| 最新不卡av在线| 亚洲欧美综合色| 亚洲欧美一区二区三区孕妇| 中文字幕一区二区三区在线观看| 国产蜜臀av在线一区二区三区 | 久久精品欧美一区二区三区麻豆| 欧美成人艳星乳罩| 欧美成人一区二区三区片免费 | 91麻豆精品国产91久久久久久| 欧美猛男超大videosgay| 日本精品视频一区二区| 91高清在线观看| 欧美精品一级二级三级| 欧美一卡2卡3卡4卡| 欧美一卡2卡3卡4卡| 久久奇米777| 国产精品久久精品日日| 亚洲免费在线视频| 午夜视频在线观看一区二区| 图片区小说区区亚洲影院| 精品一区在线看| 国产**成人网毛片九色 | 亚洲男女毛片无遮挡| 岛国精品一区二区| 成人动漫视频在线| 99r国产精品| 欧美久久免费观看| 国产亚洲一区二区在线观看| 国产精品超碰97尤物18| 午夜成人免费视频| 国产一二精品视频| 色综合久久久久综合| 欧美巨大另类极品videosbest | 色嗨嗨av一区二区三区| 欧美日本一道本在线视频| 欧美成人精品1314www| 久久久久久99精品| 一区二区三区在线影院| 免费成人av在线播放| 成人av免费观看| 91精品国产综合久久久久久漫画 | 亚洲一区二区三区激情| 蜜桃av一区二区三区| av色综合久久天堂av综合| 在线成人av影院| 国产精品日韩成人| 毛片av中文字幕一区二区| 91影视在线播放| 欧美tk—视频vk| 亚洲乱码国产乱码精品精可以看| 麻豆中文一区二区| 91福利在线导航| 国产片一区二区| 日韩高清不卡一区| 99久久777色| 久久久久久**毛片大全| 天天综合天天综合色| 99久久综合狠狠综合久久| 欧美电视剧免费观看| 亚洲一卡二卡三卡四卡五卡| 国产jizzjizz一区二区| 欧美精品在线观看一区二区| 综合久久国产九一剧情麻豆| 国产一区二区在线看| 欧美嫩在线观看| 亚洲免费电影在线| 成人免费电影视频| 精品久久久久久久久久久久久久久久久 | 欧美成人r级一区二区三区| 亚洲视频小说图片| 国产成人精品综合在线观看 | 老司机午夜精品| 欧美性大战久久久| 亚洲人成网站在线| 成人免费看的视频| 国产亚洲欧美一区在线观看| 蜜臀va亚洲va欧美va天堂| 欧美日韩亚洲综合在线 | 久久久美女毛片| 蜜臀久久99精品久久久画质超高清| 欧美伊人精品成人久久综合97| 成人欧美一区二区三区| 成人免费视频一区二区| 国产亚洲欧洲997久久综合| 老汉av免费一区二区三区| 欧美一区日本一区韩国一区| 亚洲成人激情社区| 欧美精品日韩一区| 天使萌一区二区三区免费观看| 欧美午夜免费电影| 亚洲午夜三级在线| 欧美日韩一级大片网址| 日韩专区在线视频| 91麻豆精品国产91久久久使用方法 | 久久五月婷婷丁香社区| 国内精品国产成人国产三级粉色 | 国产成人免费高清| 蜜桃一区二区三区在线观看| 欧美日韩大陆在线| 日韩不卡免费视频| 日韩一区二区不卡| 精品一区二区三区视频在线观看| 日韩欧美一区二区不卡| 久久99国产精品麻豆| 久久九九国产精品| 成人黄色综合网站| 亚洲综合在线免费观看| 精品视频1区2区| 蜜桃av一区二区| 欧美激情中文字幕| 91麻豆精东视频| 亚洲成人一区二区在线观看| 欧美一区二区视频在线观看2020 | 精品国产一区二区三区久久影院| 精品亚洲porn| 国产精品人成在线观看免费 | 国产偷v国产偷v亚洲高清| 成人午夜免费视频| 亚洲综合另类小说| 日韩亚洲欧美中文三级| 国产成人精品免费在线| 亚洲精品国产高清久久伦理二区|