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

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

?? up3_clock.vhd

?? 用VHDL語言編寫的一個鬧鐘程序
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
LIBRARY IEEE;
USE  IEEE.STD_LOGIC_1164.all;
USE  IEEE.STD_LOGIC_ARITH.all;
USE  IEEE.STD_LOGIC_UNSIGNED.all;
-- This code displays time in the UP3's LCD Display
-- SW8 (GLOBAL RESET) resets time
ENTITY UP3_CLOCK IS
	PORT(reset, clk_48Mhz,SET_TIME,SET_CHANGE,SET_ADD,CLOSE_ALARM,SET_MOD,SET_ALARM,GIVE_TIME,ALARM : IN	STD_LOGIC;
		 LCD_RS, LCD_E, RESET_LED, SEC_LED,ALARM_LED,GIVE_TIME_LED		: OUT	STD_LOGIC;
		 LCD_RW						: BUFFER STD_LOGIC;
		 DATA_BUS				: INOUT	STD_LOGIC_VECTOR(7 DOWNTO 0));
END UP3_CLOCK;

ARCHITECTURE a OF UP3_CLOCK IS
	TYPE STATE_TYPE IS (HOLD, FUNC_SET, DISPLAY_ON, MODE_SET,WRITE_CHAR1,
	WRITE_CHAR2,WRITE_CHAR3,WRITE_CHAR4,WRITE_CHAR5,WRITE_CHAR6,WRITE_CHAR7,
	WRITE_CHAR8, WRITE_CHAR9, WRITE_CHAR10, 
	-----
	WRITE_CHAR11,WRITE_CHAR12,WRITE_CHAR13,WRITE_CHAR14,WRITE_CHAR15,WRITE_CHAR16,WRITE_CHAR17,WRITE_CHAR18,
	-----
	RETURN_HOME, GOTO_NEXTLINE,TOGGLE_E, RESET1, RESET2, 
	RESET3, DISPLAY_OFF, DISPLAY_CLEAR,DISPLAY_SET,WRITE_DISPLAY_CHAR1,
	WRITE_DISPLAY_CHAR2,WRITE_DISPLAY_CHAR3,WRITE_DISPLAY_CHAR4,WRITE_DISPLAY_CHAR5,
	WRITE_DISPLAY_CHAR6,WRITE_DISPLAY_CHAR7,WRITE_DISPLAY_CHAR8,WRITE_DISPLAY_CHAR9,WRITE_DISPLAY_CHAR10);
	TYPE STATE2_TYPE IS (HOLD2,ALARM_HOUR,ALARM_MIN,ALARM_SEC,TOGGLE_E2);
	TYPE STATE1_TYPE IS (HOLD1,WRITE_HOUR,WRITE_MIN,WRITE_SEC,TOGGLE_E1);
	SIGNAL state, next_command: STATE_TYPE;
	SIGNAL state1, next_command1: STATE1_TYPE;
	SIGNAL DATA_BUS_VALUE: STD_LOGIC_VECTOR(7 DOWNTO 0);
	SIGNAL CLK_COUNT_400HZ: STD_LOGIC_VECTOR(19 DOWNTO 0);
	SIGNAL CLK_COUNT_10HZ: STD_LOGIC_VECTOR(7 DOWNTO 0);
	SIGNAL BCD_SECD0,BCD_SECD1,BCD_MIND0,BCD_MIND1: STD_LOGIC_VECTOR(3 DOWNTO 0);
	SIGNAL BCD_HRD0,BCD_HRD1,BCD_TSEC: STD_LOGIC_VECTOR(3 DOWNTO 0);
	------------------------------
	SIGNAL BCD_YEAR1,BCD_YEAR0,BCD_MONTH1,BCD_MONTH0,BCD_DAY0,BCD_DAY1    : STD_LOGIC_VECTOR(3 DOWNTO 0);
    ----------------------
    SIGNAL BCD_S1,BCD_S0,BCD_M1,BCD_M0,BCD_H0,BCD_H1: STD_LOGIC_VECTOR(3 DOWNTO 0);
	SIGNAL CLK_400HZ, CLK_10HZ,ALARM_LABEL : STD_LOGIC;
	SIGNAL state2, next_command2: STATE2_TYPE;
	SIGNAL TIME : INTEGER;
BEGIN
	RESET_LED <= NOT RESET;
	SEC_LED <= BCD_SECD0(0);
-- BIDIRECTIONAL TRI STATE LCD DATA BUS
	DATA_BUS <= DATA_BUS_VALUE WHEN LCD_RW = '0' ELSE "ZZZZZZZZ";
--MAKE CLK_COUNT_400HZ:60000CLK_400HZ0.1
	PROCESS
	BEGIN
	 WAIT UNTIL CLK_48MHZ'EVENT AND CLK_48MHZ = '1';
		IF RESET = '0' THEN
		 CLK_COUNT_400HZ <= X"00000";
		 CLK_400HZ <= '0';
		ELSE
				IF CLK_COUNT_400HZ < X"0EA60" THEN 
				 CLK_COUNT_400HZ <= CLK_COUNT_400HZ + 1;
				ELSE
		    	 CLK_COUNT_400HZ <= X"00000";
				 CLK_400HZ <= NOT CLK_400HZ;
				END IF;
		END IF;
	END PROCESS;
	
	
	--CLK_400HZstate <=next_command
	PROCESS (CLK_400HZ, reset)
	BEGIN
		IF reset = '0' THEN
			state <= RESET1;
			DATA_BUS_VALUE <= X"38";
			next_command <= RESET2;
			LCD_E <= '1';
			LCD_RS <= '0';
			LCD_RW <= '0';
--CLK_400HZ'EVENT
--CLK_COUNT_10HZ < 19
--CLK_10HZ <= NOT CLK_10HZ;
		ELSIF CLK_400HZ'EVENT AND CLK_400HZ = '1' THEN
-- GENERATE 1 SEC CLOCK SIGNAL FOR SECOND COUNT PROCESS
			IF CLK_COUNT_10HZ < 19 THEN
				CLK_COUNT_10HZ <= CLK_COUNT_10HZ + 1;
			ELSE
				CLK_COUNT_10HZ <= X"00";
				CLK_10HZ <= NOT CLK_10HZ;
			END IF;
-- SEND TIME TO LCD			
			CASE state IS
-- Set Function to 8-bit transfer and 2 line display with 5x8 Font size
-- see Hitachi HD44780 family data sheet for LCD command and timing details
				WHEN RESET1 =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"38";
						state <= TOGGLE_E;
						next_command <= RESET2;
				WHEN RESET2 =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"38";
						state <= TOGGLE_E;
						next_command <= RESET3;
				WHEN RESET3 =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"38";
						state <= TOGGLE_E;
						next_command <= FUNC_SET;
-- EXTRA STATES ABOVE ARE NEEDED FOR RELIABLE PUSHBUTTON RESET OF LCD
				WHEN FUNC_SET =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"38";
						state <= TOGGLE_E;
						next_command <= DISPLAY_OFF;
-- Turn off Display and Turn off cursor
				WHEN DISPLAY_OFF =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"08";
						state <= TOGGLE_E;
						next_command <= DISPLAY_CLEAR;
-- Turn on Display and Turn off cursor
				WHEN DISPLAY_CLEAR =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"01";
						state <= TOGGLE_E;
						next_command <= DISPLAY_ON;
-- Turn on Display and Turn off cursor
				WHEN DISPLAY_ON =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"0C";
						state <= TOGGLE_E;
						next_command <= MODE_SET;
-- Set write mode to auto increment address and move cursor to the right
				WHEN MODE_SET =>
						LCD_E <= '1';
						LCD_RS <= '0';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"06";
						state <= TOGGLE_E;
						next_command <= DISPLAY_SET;
-- Write ASCII hex character in first LCD character location
                WHEN DISPLAY_SET =>
					   IF ALARM = '0' OR (SET_TIME = '0' AND SET_MOD = '1') THEN
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR1;
					   ELSE
					    state <= TOGGLE_E;
					    next_command <= WRITE_CHAR1;
					   END IF;										
				        
---ALARM
                WHEN WRITE_DISPLAY_CHAR1 =>						
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_H1;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR2;
-- Write ASCII hex character in second LCD character location
				WHEN WRITE_DISPLAY_CHAR2 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_H0;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR3;
-- Write ASCII hex character in third LCD character location
				WHEN WRITE_DISPLAY_CHAR3 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3A" ;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR4;
-- Write ASCII hex character in fourth LCD character location
				WHEN WRITE_DISPLAY_CHAR4 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_M1;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR5;
-- Write ASCII hex character in fifth LCD character location
				WHEN WRITE_DISPLAY_CHAR5 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_M0;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR6;
-- Write ASCII hex character in sixth LCD character location
				WHEN WRITE_DISPLAY_CHAR6 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3A" ;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR7;
-- Write ASCII hex character in seventh LCD character location
				WHEN WRITE_DISPLAY_CHAR7 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_S1;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR8;
-- Write ASCII hex character in eighth LCD character location
				WHEN WRITE_DISPLAY_CHAR8 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_S0;
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR9;
				WHEN WRITE_DISPLAY_CHAR9 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"2E";
						state <= TOGGLE_E;
						next_command <= WRITE_DISPLAY_CHAR10;
				WHEN WRITE_DISPLAY_CHAR10 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"30";
						state <= TOGGLE_E;
						next_command <= RETURN_HOME;

----ALARM_END
					
				
				WHEN WRITE_CHAR1 =>						
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_HRD1;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR2;
-- Write ASCII hex character in second LCD character location
				WHEN WRITE_CHAR2 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_HRD0;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR3;
-- Write ASCII hex character in third LCD character location
				WHEN WRITE_CHAR3 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3A" ;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR4;
-- Write ASCII hex character in fourth LCD character location
				WHEN WRITE_CHAR4 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_MIND1;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR5;
-- Write ASCII hex character in fifth LCD character location
				WHEN WRITE_CHAR5 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_MIND0;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR6;
-- Write ASCII hex character in sixth LCD character location
				WHEN WRITE_CHAR6 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3A" ;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR7;
-- Write ASCII hex character in seventh LCD character location
				WHEN WRITE_CHAR7 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_SECD1;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR8;
-- Write ASCII hex character in eighth LCD character location
				WHEN WRITE_CHAR8 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_SECD0;
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR9;
				WHEN WRITE_CHAR9 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"2E";
						state <= TOGGLE_E;
						next_command <= WRITE_CHAR10;
				WHEN WRITE_CHAR10 =>
						LCD_E <= '1';
						LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_TSEC;
						state <= TOGGLE_E;
						next_command <= GOTO_NEXTLINE;
---------------
						
				WHEN WRITE_CHAR11 =>
						LCD_E <='1';
                                         LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_YEAR1;
						state<= TOGGLE_E;
						next_command <= WRITE_CHAR12;

				WHEN WRITE_CHAR12 =>
						LCD_E <='1';
                                         LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_YEAR0;
						state<= TOGGLE_E;
						next_command <= WRITE_CHAR13;
				WHEN WRITE_CHAR13 =>
						LCD_E <='1';
                                         LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"2D";  		--顯示"-"
						state<= TOGGLE_E;			
						next_command <= WRITE_CHAR14;


				WHEN WRITE_CHAR14 =>
						LCD_E <='1';
                                         LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_MONTH1;
						state<= TOGGLE_E;
						next_command <= WRITE_CHAR15;

				WHEN WRITE_CHAR15 =>
						LCD_E <='1';
                                         LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"3" & BCD_MONTH0;
						state<= TOGGLE_E;
						next_command <= WRITE_CHAR16;

				WHEN WRITE_CHAR16 =>
						LCD_E <='1';
                                         LCD_RS <= '1';
						LCD_RW <= '0';
						DATA_BUS_VALUE <= X"2D";  		--顯示"-"
						state<= TOGGLE_E;			
						next_command <= WRITE_CHAR17;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区在线视频| 欧美日韩另类一区| 五月天一区二区三区| 自拍偷拍亚洲综合| 亚洲天堂网中文字| 亚洲美女区一区| 亚洲精品视频在线观看网站| 综合欧美一区二区三区| 伊人色综合久久天天人手人婷| 亚洲欧洲制服丝袜| 亚洲bt欧美bt精品| 日本欧美一区二区三区| 久久精品国产**网站演员| 精品一区二区三区在线观看| 国内成人精品2018免费看| 国产福利视频一区二区三区| 懂色av中文一区二区三区| 91污在线观看| 欧美日韩在线电影| 日韩欧美的一区二区| 国产亚洲人成网站| 一区二区三区日韩欧美| 日日摸夜夜添夜夜添精品视频 | 亚洲国产欧美日韩另类综合| 亚洲小少妇裸体bbw| 天堂久久一区二区三区| 日本不卡一区二区| 成人av一区二区三区| 欧美影院一区二区| 26uuu国产在线精品一区二区| 国产精品美女久久久久av爽李琼| 亚洲狼人国产精品| 国产综合久久久久久鬼色| 色综合中文字幕国产 | 91麻豆精品国产91久久久使用方法| 日韩欧美国产综合在线一区二区三区| 久久综合久久综合九色| 亚洲乱码一区二区三区在线观看| 日韩中文字幕91| 成人免费视频一区| 欧美精品电影在线播放| 国产精品女主播在线观看| 日韩成人av影视| bt7086福利一区国产| 日韩一区二区精品葵司在线| 国产精品成人免费| 九九精品一区二区| 欧美主播一区二区三区美女| 欧美激情在线一区二区三区| 日韩有码一区二区三区| www.亚洲激情.com| 欧美精品一区二区三区视频| 亚洲愉拍自拍另类高清精品| 高清不卡在线观看| 日韩欧美国产三级| 亚洲成人动漫av| 色999日韩国产欧美一区二区| 久久午夜国产精品| 蜜桃视频在线观看一区| 欧美亚洲禁片免费| 亚洲乱码国产乱码精品精98午夜| 国产精品主播直播| 精品999久久久| 日本成人中文字幕在线视频| 色素色在线综合| 亚洲日本一区二区| 成人精品电影在线观看| 久久久午夜电影| 精品在线观看视频| 欧美精品一级二级三级| 亚洲高清在线视频| 欧美午夜宅男影院| 洋洋成人永久网站入口| 91精彩视频在线观看| 亚洲日本青草视频在线怡红院| 国产不卡免费视频| 国产精品视频看| 成人福利视频网站| 国产精品久久一卡二卡| 不卡av在线网| 亚洲另类在线制服丝袜| 99v久久综合狠狠综合久久| 日韩美女精品在线| 成人成人成人在线视频| 亚洲天堂2016| 精品视频在线免费观看| 婷婷久久综合九色综合绿巨人| 欧美日韩午夜影院| 美女网站色91| 国产欧美日韩三级| 99re6这里只有精品视频在线观看| 中文字幕av不卡| 色综合久久综合网97色综合 | 日韩欧美卡一卡二| 国产一区二区伦理片| 欧美韩国日本一区| 欧美亚洲综合另类| 麻豆精品久久精品色综合| 久久综合精品国产一区二区三区 | 亚洲午夜久久久久久久久电影网| 欧美日韩高清影院| 国产一区二区三区观看| 亚洲色图丝袜美腿| 日韩一区二区三区精品视频| 国产成人免费在线观看不卡| 亚洲女同一区二区| 日韩女优视频免费观看| 成人午夜av电影| 天天综合天天做天天综合| 久久夜色精品国产噜噜av| 99v久久综合狠狠综合久久| 日本欧美一区二区| 亚洲人xxxx| 欧美精品一区二区在线观看| 91国偷自产一区二区三区成为亚洲经典 | 国产精品高潮久久久久无| 欧美伊人久久大香线蕉综合69| 久久爱www久久做| 亚洲激情中文1区| 国产午夜精品一区二区| 欧美三级三级三级| 成人免费毛片app| 日韩精品高清不卡| 成人欧美一区二区三区视频网页| 4438成人网| 一本一本大道香蕉久在线精品 | 亚洲欧洲性图库| 精品美女在线播放| 欧洲色大大久久| 99久久夜色精品国产网站| 麻豆精品视频在线观看视频| 亚洲自拍偷拍综合| 综合av第一页| 国产精品视频看| 久久久久88色偷偷免费| 日韩天堂在线观看| 欧美精三区欧美精三区| 在线观看国产一区二区| av在线这里只有精品| 国产精品资源在线| 国产在线麻豆精品观看| 免费视频最近日韩| 日韩成人一区二区三区在线观看| 综合欧美一区二区三区| 中文字幕一区二区三区在线播放| 久久久久久久久久久99999| 欧美成人video| 欧美一二区视频| 日韩三级免费观看| 欧美人牲a欧美精品| 欧美日韩高清不卡| 91麻豆精品国产91久久久久| 欧美日韩国产一级| 欧美日韩高清在线播放| 欧美日韩国产综合一区二区三区| 欧美亚洲国产一卡| 欧美无乱码久久久免费午夜一区| 91欧美一区二区| 欧洲人成人精品| 欧美日韩中文字幕精品| 欧美一区二区精品久久911| 91麻豆精品国产91久久久久久| 在线观看91精品国产麻豆| 91精品国产综合久久香蕉的特点| 91精品啪在线观看国产60岁| 日韩午夜激情av| 久久久国产精品午夜一区ai换脸| 国产人成亚洲第一网站在线播放| 欧美激情中文字幕一区二区| 亚洲欧美日韩国产综合在线| 亚洲欧美视频在线观看| 午夜欧美在线一二页| 美女mm1313爽爽久久久蜜臀| 国产激情精品久久久第一区二区 | 亚洲国产成人av网| 日韩电影在线观看电影| 国产精品一区二区在线看| 99久久精品国产一区| 欧美视频一区在线| 欧美大胆一级视频| 国产精品电影院| 午夜电影久久久| 国产精品18久久久久久久久久久久 | 国产一区在线看| 色婷婷狠狠综合| 欧美本精品男人aⅴ天堂| 亚洲国产高清在线观看视频| 亚洲另类在线一区| 久久精品国产成人一区二区三区| www.成人在线| 91麻豆精品国产自产在线| 欧美国产日本视频| 日韩国产精品久久| 99久久精品国产网站| 欧美成人vr18sexvr| 亚洲综合男人的天堂| 国产精品18久久久久久久网站| 欧美亚洲综合网| 国产精品久久久久永久免费观看 | 国产精品久久久久久户外露出|