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

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

?? uclock.psm

?? Xilinx的培訓(xùn)教程的源碼 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品99久| 精久久久久久久久久久| 一本在线高清不卡dvd| 亚洲欧洲日韩综合一区二区| 成人丝袜18视频在线观看| 中文欧美字幕免费| 色先锋资源久久综合| 亚洲高清久久久| 欧美一区二区三区四区久久| 奇米影视7777精品一区二区| 精品少妇一区二区三区免费观看| 国产精选一区二区三区| 国产精品视频你懂的| 在线看国产一区二区| 婷婷久久综合九色综合绿巨人| 日韩一级二级三级| 国产成人av电影免费在线观看| 国产精品久久久久久久蜜臀| 91欧美一区二区| 奇米888四色在线精品| 国产欧美一区二区精品性色| 91在线看国产| 青青草97国产精品免费观看无弹窗版| 久久先锋影音av鲁色资源网| 91免费看视频| 久久国产视频网| 自拍视频在线观看一区二区| 欧美日本在线看| 国产精品自拍毛片| 午夜久久久影院| 久久精品一区二区三区四区| 91婷婷韩国欧美一区二区| 男人的天堂久久精品| 国产精品久久夜| 91精品黄色片免费大全| 成人一级片网址| 日韩精品免费专区| 国产精品免费看片| 欧美成人vps| 欧美伊人精品成人久久综合97| 激情六月婷婷综合| 亚洲国产成人精品视频| 国产日韩在线不卡| 日韩一区二区三区在线| 日本道精品一区二区三区 | 国精产品一区一区三区mba视频| 中文字幕av一区二区三区高| 欧美日韩一区三区四区| 成人黄色小视频| 激情伊人五月天久久综合| 一区二区三区免费网站| 欧美激情综合五月色丁香小说| 欧美高清你懂得| 91美女片黄在线观看91美女| 国产美女视频一区| 日本vs亚洲vs韩国一区三区二区| 国产精品久久久久婷婷| 久久精品亚洲麻豆av一区二区 | 97se亚洲国产综合自在线观| 极品销魂美女一区二区三区| 视频一区欧美精品| 亚洲一区二区三区在线| 国产精品第13页| 国产亚洲成年网址在线观看| 欧美xxxx在线观看| 69堂成人精品免费视频| 在线亚洲人成电影网站色www| 国产成人欧美日韩在线电影| 蜜桃视频在线一区| 日韩成人伦理电影在线观看| 一区二区三区国产| 亚洲视频一区二区在线观看| 欧美激情自拍偷拍| 久久久99精品免费观看| 久久久久久久网| 欧美精品一区二区蜜臀亚洲| 日韩欧美综合在线| 日韩欧美国产精品| 欧美一区午夜视频在线观看| 欧美日本不卡视频| 91麻豆精品91久久久久久清纯| 欧美视频一区二区三区在线观看| 欧美午夜精品一区二区蜜桃| 欧美在线观看视频在线| 欧美精品在欧美一区二区少妇| 欧美午夜一区二区三区免费大片| 色一区在线观看| 欧美裸体bbwbbwbbw| 6080午夜不卡| 精品久久久久久综合日本欧美| 日韩欧美国产综合| 国产视频一区二区在线| 中文字幕国产精品一区二区| 亚洲女同ⅹxx女同tv| 亚洲无人区一区| 麻豆91在线播放免费| 福利视频网站一区二区三区| 成人视屏免费看| 色婷婷久久久综合中文字幕| 欧美丰满一区二区免费视频| 精品久久久网站| 中文久久乱码一区二区| 亚洲资源中文字幕| 免费成人av在线播放| 国产精品99久久久久久久vr| 色婷婷综合在线| 91精品国产色综合久久不卡电影| 2023国产一二三区日本精品2022| 国产精品热久久久久夜色精品三区 | 一区二区三区四区不卡视频| 午夜精品aaa| 国产一区二区三区高清播放| 91蜜桃在线观看| 欧美一三区三区四区免费在线看| 久久久精品免费免费| 亚洲人成影院在线观看| 毛片不卡一区二区| a4yy欧美一区二区三区| 91精品国产福利| 国产精品理论在线观看| 蜜臀av亚洲一区中文字幕| 91无套直看片红桃| wwwwww.欧美系列| 亚洲成人三级小说| 成人天堂资源www在线| 欧美一区二区成人| 亚洲免费观看高清| 激情成人午夜视频| 欧美日韩视频一区二区| 国产三级精品在线| 丝袜美腿亚洲色图| 97精品久久久久中文字幕| 精品日韩欧美一区二区| 亚洲成人一二三| 99国产欧美久久久精品| 2023国产精品| 蜜桃精品视频在线观看| 91黄色免费版| 国产精品久久777777| 久久超级碰视频| 欧美日韩激情一区二区三区| 国产精品网友自拍| 国产真实乱对白精彩久久| 欧美日韩一区二区三区视频| 国产精品女同互慰在线看| 看电影不卡的网站| 欧美电影一区二区| 亚洲一区二区偷拍精品| 97久久精品人人做人人爽50路| 久久蜜桃av一区精品变态类天堂 | 日韩经典中文字幕一区| 99精品1区2区| 国产精品久久久一本精品| 国产曰批免费观看久久久| 91精品福利在线一区二区三区 | 久久国产生活片100| 国产不卡在线视频| 午夜精品福利一区二区三区蜜桃| 国内精品久久久久影院一蜜桃| 99re66热这里只有精品3直播| 久久久久99精品国产片| 美女精品一区二区| 欧美精品 国产精品| 日韩有码一区二区三区| 欧美激情一区二区三区不卡| 精品影院一区二区久久久| 91精品国产欧美一区二区18 | 久久福利视频一区二区| 欧美一区二区三区在线视频 | 欧美电视剧免费全集观看 | 精品一区二区免费看| 日韩午夜三级在线| 捆绑紧缚一区二区三区视频| 日韩欧美激情四射| 国产自产高清不卡| 久久久久国产精品麻豆ai换脸 | 欧美一区二区啪啪| 麻豆久久一区二区| 久久综合999| 99久免费精品视频在线观看| 国产精品麻豆久久久| 色噜噜狠狠色综合中国| 亚洲国产精品久久久久秋霞影院| 欧美电影在哪看比较好| 久久电影网电视剧免费观看| 国产夜色精品一区二区av| 成人综合婷婷国产精品久久蜜臀| 亚洲桃色在线一区| 欧美三级视频在线| 麻豆91免费观看| 国产精品无遮挡| 欧美在线观看视频在线| 日本午夜一本久久久综合| 久久精品在线观看| 日本韩国欧美一区二区三区| 日韩精品福利网| 国产精品丝袜一区| 欧美日韩一区在线观看| 国产一区久久久| 一区二区三区欧美视频|