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

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

?? uclock.psm

?? Xilinx的培訓教程的源碼 virtex
?? PSM
?? 第 1 頁 / 共 4 頁
字號:
                        ;KCPSM3 Program - Real Time Clock with UART communication.
                        ;
                        ;Ken Chapman - Xilinx Ltd - October 2003
                        ;
                        ;
                        ;Port definitions
                        ;
                        CONSTANT UART_status_port, 00            ;UART status input
                        CONSTANT tx_half_full, 01                ;  Transmitter     half full - bit0
                        CONSTANT tx_full, 02                     ;    FIFO               full - bit1
                        CONSTANT rx_half_full, 04                ;  Receiver        half full - bit2
                        CONSTANT rx_full, 08                     ;    FIFO               full - bit3
                        CONSTANT rx_data_present, 10             ;               data present - bit4
                        ;
                        CONSTANT UART_read_port, 01              ;UART Rx data input
                        ;
                        CONSTANT UART_write_port, 01             ;UART Tx data output
                        ;
                        CONSTANT alarm_port, 00                  ;Alarm output
                        CONSTANT alarm_control, 01               ;     bit0
                        ;
                        ;Special Register usage
                        ;
                        NAMEREG sF, UART_data                    ;used to pass data to and from the UART
                        ;
                        NAMEREG sE, store_pointer                ;used to pass location of data in scratch pad memory
                        ;
                        ;Two registers to form a 16-bit counter used to count
                        ;interrupt pulses generated at 1us intervals.
                        ;
                        NAMEREG sD, int_counter_lsb              ;lower 8-bits
                        NAMEREG sC, int_counter_msb              ;upper 8-bits
                        ;
                        ;
                        ;Scratch Pad Memory Locations
                        ;
                        ;
                        CONSTANT us_time_stamp_lsb, 00           ;16-bit micro-second time stamp
                        CONSTANT us_time_stamp_msb, 01
                        ;
                        CONSTANT us_time_lsb, 02                 ;16-bit micro-second real time value
                        CONSTANT us_time_msb, 03
                        ;
                        CONSTANT ms_time_lsb, 04                 ;16-bit milli-second real time value
                        CONSTANT ms_time_msb, 05
                        ;
                        CONSTANT real_time_hours, 06             ;Current clock time
                        CONSTANT real_time_minutes, 07
                        CONSTANT real_time_seconds, 08
                        ;
                        CONSTANT alarm_time_hours, 09            ;Alarm time
                        CONSTANT alarm_time_minutes, 0A
                        CONSTANT alarm_time_seconds, 0B
                        ;
                        CONSTANT alarm_status, 0C                ;Alarm status
                        CONSTANT alarm_active, 01                ;    bit0 - Alarm is active
                        CONSTANT alarm_armed, 02                 ;    bit1 - Alarm is armed
                        ;
                        CONSTANT time_preserve0, 10              ;storage for protection of registers
                        CONSTANT time_preserve1, 11              ;used by the real time clock routine.
                        CONSTANT time_preserve2, 12
                        CONSTANT time_preserve3, 13
                        CONSTANT time_preserve4, 14
                        CONSTANT time_preserve5, 15
                        ;
                        ;UART character strings will be stored in scratch pad memory ending in carriage return.
                        ;A string can be up to 16 characters with the start location defined by this constant.
                        ;
                        CONSTANT string_start, 20
                        ;
                        ;
                        ;Initialise the system
                        ;
                        ;
            cold_start: LOAD s0, 00                              ;clear all time values
                        STORE s0, us_time_stamp_lsb
                        STORE s0, us_time_stamp_msb
                        STORE s0, us_time_lsb
                        STORE s0, us_time_msb
                        STORE s0, ms_time_lsb
                        STORE s0, ms_time_msb
                        STORE s0, real_time_hours
                        STORE s0, real_time_minutes
                        STORE s0, real_time_seconds
                        STORE s0, alarm_time_hours
                        STORE s0, alarm_time_minutes
                        STORE s0, alarm_time_seconds
                        STORE s0, alarm_status                   ;clear and disable alarm
                        CALL alarm_drive                         ;turn off alarm control output port
                        LOAD int_counter_lsb, 00                 ;clear 'us' interrupt counter
                        LOAD int_counter_msb, 00
                        ENABLE INTERRUPT                         ;enable the 1us interrupts
                        ;
                        ;
                        ;Start of the main program loop.
                        ;
                        ;A prompt is transmitted to the UART transmitter and then
                        ;a command can be entered and interpreted.
                        ;
                        ;
          prompt_input: CALL send_prompt                         ;Prompt 'KCPSM3>'
                        CALL receive_string                      ;obtain input string and maintain the time
                        ;
                        ;
                        ;Parse the string and perform actions as required
                        ;
                        ;
                        ;
                        LOAD s1, string_start
                        CALL fetch_char_from_memory
                        COMPARE s0, character_CR                 ;carriage return does nothing
                        JUMP Z, prompt_input
                        COMPARE s0, character_T                  ;start of 'TIME' command?
                        JUMP Z, test_for_TIME
                        COMPARE s0, character_A                  ;start of 'ALARM' command?
                        JUMP Z, test_for_ALARM
                        ;
                        ;trap other command starts here
                        ;
     bad_input_command: CALL send_Syntax_Error                   ;no valid command
                        JUMP Z, prompt_input
                        ;
                        ;
         test_for_TIME: CALL fetch_char_from_memory
                        COMPARE s0, character_I                  ;test for rest of 'TIME'
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_M
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_E
                        JUMP NZ, bad_input_command
                        ;now have a valid TIME command to process
                        CALL fetch_char_from_memory
                        COMPARE s0, character_CR                 ;carriage return means display time
                        JUMP NZ, set_time_command
                        CALL transmit_time                       ;transmit time to UART
                        JUMP prompt_input
      set_time_command: COMPARE s0, character_space
                        JUMP NZ, bad_input_command
                        CALL test_time_string                    ;interpret 'hh:mm:ss' string
                        JUMP C, prompt_input                     ;test for invalid input
                        STORE s6, real_time_hours                ;set new time into clock
                        STORE s5, real_time_minutes
                        STORE s4, real_time_seconds
                        STORE s0, ms_time_lsb                    ;clear 'ms' counter (s0=00)
                        STORE s0, ms_time_msb
                        CALL transmit_time                       ;transmit new time to UART
                        JUMP prompt_input
                        ;
                        ;
        test_for_ALARM: CALL fetch_char_from_memory
                        COMPARE s0, character_L                  ;test for rest of 'ALARM'
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_A
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_R
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_M
                        JUMP NZ, bad_input_command
                        ;now have a valid ALARM command to process
                        CALL fetch_char_from_memory
                        COMPARE s0, character_CR                 ;carriage return means display alarm time
                        JUMP NZ, set_alarm_command
                        CALL transmit_alarm_time                 ;transmit time to UART
                        JUMP prompt_input
     set_alarm_command: COMPARE s0, character_space              ;test for ON or OFF command
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_O
                        JUMP Z, set_alarm_on_off
                        SUB s1, 01                               ;move memory pointer back to first character of 'hh:mm:ss' string
                        CALL test_time_string                    ;interpret 'hh:mm:ss' string
                        JUMP C, prompt_input                     ;test for invalid input
                        STORE s6, alarm_time_hours               ;set new time into clock
                        STORE s5, alarm_time_minutes
                        STORE s4, alarm_time_seconds
                        CALL transmit_alarm_time                 ;transmit new alarm time and status
                        JUMP prompt_input
      set_alarm_on_off: CALL fetch_char_from_memory
                        COMPARE s0, character_N                  ;test for 'ON'
                        JUMP NZ, test_OFF
                        CALL fetch_char_from_memory
                        COMPARE s0, character_CR
                        JUMP NZ, bad_input_command
                        FETCH s0, alarm_status                   ;turn alarm on
                        OR s0, alarm_armed
                        STORE s0, alarm_status
                        CALL transmit_alarm_time                 ;transmit alarm time and status
                        JUMP prompt_input
              test_OFF: COMPARE s0, character_F                  ;test for for 'OFF'
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_F
                        JUMP NZ, bad_input_command
                        CALL fetch_char_from_memory
                        COMPARE s0, character_CR
                        JUMP NZ, bad_input_command
                        LOAD s0, 00                              ;turn alarm off and stop an active alarm
                        STORE s0, alarm_status
                        CALL alarm_drive                         ;turn off alarm
                        CALL transmit_alarm_time                 ;transmit alarm time and status
                        JUMP prompt_input
                        ;
                        ;
                        ;
                        ;
                        ;Read an 'hh:mm:ss' time string and provide new values.
                        ;
                        ;The string must be provided in successive scratch pad memory locations
                        ;with the s1 register containing the location of the first character.
                        ;
                        ;A correct time specification will result in the return of new values
                        ;as follows:-
                        ;
                        ;       s6 = hours
                        ;       s5 = minutes
                        ;       s4 = seconds
                        ;
                        ;If the syntax is incorrect or values are not in the correct ranges an
                        ;'Invalid Time' message will be transmitted and the CARRY flag will be set
                        ;
                        ;Registers used s0, s1, s6, s5 and s4
                        ;
      test_time_string: CALL 2char_to_value                      ;obtain hours value
                        JUMP C, invalid_time                     ;test for non-decimal characters
                        LOAD s6, s2                              ;remember hours
                        ADD s1, 01                               ;increment memory pointer past hours
                        CALL fetch_char_from_memory
                        COMPARE s0, character_colon              ;test for colon
                        JUMP NZ, invalid_time
                        CALL 2char_to_value                      ;obtain minutes value
                        JUMP C, invalid_time                     ;test for non-decimal characters
                        LOAD s5, s2                              ;remember minutes
                        ADD s1, 01                               ;increment memory pointer past minutes
                        CALL fetch_char_from_memory
                        COMPARE s0, character_colon              ;test for colon
                        JUMP NZ, invalid_time
                        CALL 2char_to_value                      ;obtain seconds value
                        JUMP C, invalid_time                     ;test for non-decimal characters
                        LOAD s4, s2                              ;remember minutes
                        ADD s1, 01                               ;increment memory pointer past seconds
                        CALL fetch_char_from_memory
                        COMPARE s0, character_CR                 ;finish with carriage return
                        JUMP NZ, invalid_time
                        ;Have values for hh:mm:ss but need to test if each is valid range.
                        COMPARE s6, hours_in_a_day
                        JUMP NC, invalid_time
                        COMPARE s5, minutes_in_an_hour
                        JUMP NC, invalid_time

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女视频在线| 久久精品国产亚洲高清剧情介绍| 国产色91在线| 成人免费在线播放视频| 中文字幕不卡一区| 精品成人免费观看| 在线电影一区二区三区| 日本韩国精品一区二区在线观看| 国产精品18久久久久久久久| 亚洲mv在线观看| 亚洲精品少妇30p| 中文字幕亚洲欧美在线不卡| 亚洲欧美日韩在线| 久久你懂得1024| 日韩欧美一级特黄在线播放| 91精品免费在线| 欧美色综合久久| 欧美午夜宅男影院| 精品视频资源站| 国产.欧美.日韩| 欧美理论电影在线| 中文字幕第一区二区| 亚洲视频图片小说| 天天操天天干天天综合网| 日韩电影在线一区二区三区| 久久精品国内一区二区三区| 成人自拍视频在线| 蜜乳av一区二区| 久久99久久久久久久久久久| 日韩欧美黄色影院| 国产精品二区一区二区aⅴ污介绍| 91猫先生在线| 久久久www成人免费无遮挡大片| 国产一区二区在线电影| 在线观看亚洲a| 久88久久88久久久| 亚洲视频中文字幕| 精品国产髙清在线看国产毛片| 成人精品高清在线| 亚洲成av人综合在线观看| 久久久高清一区二区三区| 精品视频1区2区3区| 成人精品鲁一区一区二区| 午夜不卡av免费| 欧美一区二区三区免费在线看| 裸体健美xxxx欧美裸体表演| 国产日产欧美精品一区二区三区| 亚洲一区在线观看免费| 成人av在线影院| 亚洲欧洲av在线| 国产露脸91国语对白| 欧美日韩国产影片| 久久精品国产精品亚洲红杏| 欧美精品tushy高清| 美女视频黄a大片欧美| 激情图片小说一区| 亚洲国产精品一区二区久久恐怖片| 久久久不卡网国产精品二区| 日韩一区二区精品在线观看| 成人av在线资源网站| 国产一区二区电影| 久久久久久久久久久久电影| av一区二区久久| 亚洲精品欧美专区| 88在线观看91蜜桃国自产| 91在线国产观看| 欧美日韩视频不卡| 久久久av毛片精品| 制服.丝袜.亚洲.中文.综合| 91九色最新地址| 精品一区二区三区蜜桃| 偷拍一区二区三区| 亚洲综合丁香婷婷六月香| 亚洲色图清纯唯美| 国产人久久人人人人爽| 欧美系列一区二区| 不卡欧美aaaaa| 国内精品第一页| 日韩欧美资源站| 在线一区二区三区四区| 精品午夜一区二区三区在线观看| 又紧又大又爽精品一区二区| 在线视频观看一区| 久久成人18免费观看| 天天综合天天做天天综合| 久久女同性恋中文字幕| 日韩一级视频免费观看在线| 99久久综合国产精品| 国产精品91一区二区| 一区二区三区日韩在线观看| 久久人人超碰精品| 国产aⅴ精品一区二区三区色成熟| 亚洲色图视频网站| 日韩精品专区在线影院观看 | 欧美日本在线视频| 一区二区三区欧美亚洲| 中文字幕日韩精品一区| 麻豆91在线观看| 欧美高清视频在线高清观看mv色露露十八| 51精品国自产在线| 日韩欧美一区二区免费| 亚洲免费资源在线播放| 国产成人精品www牛牛影视| 欧美高清视频一二三区 | 日韩精品亚洲一区| 自拍偷拍国产精品| 亚洲狠狠丁香婷婷综合久久久| 国产精品色哟哟网站| 欧美精品一二三| 91丨九色丨蝌蚪丨老版| 欧美无砖砖区免费| 在线视频欧美区| 久久欧美一区二区| 午夜久久久久久久久久一区二区| 国产不卡视频一区二区三区| 欧洲亚洲国产日韩| 国产精品沙发午睡系列990531| 天堂午夜影视日韩欧美一区二区| 国产999精品久久久久久| 日韩欧美一二区| 亚洲成a人v欧美综合天堂| 91热门视频在线观看| 欧美精品一区二区三区在线| 天天影视涩香欲综合网| 欧美伊人久久大香线蕉综合69 | 国产精品国产三级国产三级人妇| 久久久国产一区二区三区四区小说 | 亚洲一区二区三区影院| 精品少妇一区二区三区视频免付费| 精品国产免费视频| 国产三级精品视频| 午夜伦理一区二区| 欧美午夜电影在线播放| 久久久久久久av麻豆果冻| 亚洲高清免费视频| 色噜噜久久综合| 亚洲女女做受ⅹxx高潮| 91黄色激情网站| 亚洲一区二区三区中文字幕| 91麻豆免费观看| 一区二区三区资源| 欧美精品v日韩精品v韩国精品v| 亚洲一区二区黄色| 欧美日韩精品一区二区| 日韩黄色小视频| 国产欧美一区二区精品性色| 懂色av中文字幕一区二区三区| 国产亚洲精品中文字幕| 成人av综合在线| 亚洲福利一区二区| 久久久久综合网| 色婷婷综合久色| 日产国产高清一区二区三区| 久久青草欧美一区二区三区| 99久久久久久99| 日韩电影在线免费观看| 中文字幕在线观看不卡视频| 欧美电影影音先锋| 99re亚洲国产精品| 久久99精品久久久久婷婷| 亚洲综合激情网| 国产精品久久久久久亚洲毛片| 欧美日韩一区二区在线视频| 国产一区二区三区四| 免费看黄色91| 亚洲第一激情av| 亚洲精品国久久99热| 久久久久国产精品麻豆ai换脸 | 精品视频在线免费看| 成人精品小蝌蚪| 丰满少妇久久久久久久| 极品美女销魂一区二区三区免费| 亚洲超丰满肉感bbw| 亚洲高清免费观看高清完整版在线观看| 国产偷国产偷亚洲高清人白洁| 日韩一二三区不卡| 欧美一区二区三区视频在线| 欧美综合一区二区| 亚洲成人免费在线观看| 亚洲精品国久久99热| 亚洲在线视频网站| 国产精品视频在线看| 欧美大片一区二区| 成人激情动漫在线观看| 激情国产一区二区| 亚洲欧美激情一区二区| 中文字幕在线播放不卡一区| 亚洲精选免费视频| 国产日韩欧美不卡在线| 久久久久久久综合日本| 久久久久久久免费视频了| 欧美激情在线免费观看| 日韩一区中文字幕| 亚洲成av人片一区二区三区| 蜜臀av国产精品久久久久| 国产成人自拍在线| 91国产视频在线观看| 精品1区2区在线观看| 国产精品每日更新在线播放网址| 亚洲美女精品一区|