亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩欧美激情在线| 日本一区二区在线不卡| 国产麻豆9l精品三级站| 亚洲18影院在线观看| 中文字幕一区av| 国产精品无人区| 国产精品成人午夜| 亚洲欧美日韩系列| 夜夜嗨av一区二区三区| 亚洲一区二区在线观看视频| 亚洲国产cao| 蜜桃视频一区二区| 久久精品av麻豆的观看方式| 久久疯狂做爰流白浆xx| 欧美午夜精品一区二区蜜桃| 日本大香伊一区二区三区| 色欲综合视频天天天| 欧美三级日韩在线| 精品国产伦一区二区三区观看体验| 欧美一级精品在线| 久久久99免费| 欧美xxxxx裸体时装秀| 久久精品视频一区| 国产综合久久久久影院| 97aⅴ精品视频一二三区| 色婷婷av一区| 国产精品每日更新| zzijzzij亚洲日本少妇熟睡| 色噜噜狠狠成人中文综合| 国产欧美一区二区精品忘忧草| 麻豆91免费观看| 宅男在线国产精品| 久久精品人人做人人综合| 久久精品99国产国产精| 欧美刺激脚交jootjob| 久久国产尿小便嘘嘘尿| 精品日韩99亚洲| 精品一区二区三区免费毛片爱| 91啪在线观看| 2021国产精品久久精品| 亚洲卡通欧美制服中文| 麻豆精品一区二区av白丝在线| 日韩一级成人av| 久久精品国产99国产| xfplay精品久久| 国产乱码精品一区二区三区av| 欧美三级电影在线看| 天天亚洲美女在线视频| 95精品视频在线| 一级做a爱片久久| 91精品在线观看入口| 美国毛片一区二区三区| 久久综合久久综合久久| 国产成人精品综合在线观看| 欧美精品自拍偷拍| 亚洲精品ww久久久久久p站| 色综合久久中文综合久久97| 亚洲第一狼人社区| 精品国产乱码久久久久久浪潮| 国产一区二区视频在线| 亚洲免费观看高清完整版在线观看 | 777色狠狠一区二区三区| 久久综合综合久久综合| 国产精品拍天天在线| 色狠狠av一区二区三区| 精品综合免费视频观看| 国产精品卡一卡二卡三| 欧美精品123区| 粉嫩一区二区三区性色av| 91精品视频网| 成人免费观看男女羞羞视频| 久久久99精品久久| 欧美日韩午夜在线视频| 国产精品影视网| 亚洲不卡一区二区三区| 欧美国产精品中文字幕| 国产麻豆精品在线观看| 亚洲影院理伦片| 久久女同性恋中文字幕| 欧美三级一区二区| av福利精品导航| 日本中文在线一区| 日韩欧美视频一区| 色哟哟国产精品| 国产东北露脸精品视频| 日韩综合小视频| 欧美一区二区黄| 久久精工是国产品牌吗| 亚洲综合另类小说| 国产精品入口麻豆九色| 精品粉嫩aⅴ一区二区三区四区| 91亚洲午夜精品久久久久久| 国产高清久久久| 全部av―极品视觉盛宴亚洲| 精品国产精品一区二区夜夜嗨| 欧美私模裸体表演在线观看| 国产69精品久久久久777| 麻豆成人av在线| 日韩精品成人一区二区在线| 一区二区三区在线视频观看58| 国产视频一区不卡| 精品免费视频.| 日韩免费性生活视频播放| 欧美日韩国产色站一区二区三区| 毛片av一区二区三区| 亚洲成人av电影在线| 一区二区三区欧美日韩| 亚洲视频在线一区观看| 欧美日韩国产高清一区二区三区 | 久久99久久久欧美国产| 日本va欧美va精品| 视频一区视频二区在线观看| 亚洲小说春色综合另类电影| 中文字幕一区在线观看视频| 国产精品亲子乱子伦xxxx裸| 国产精品二三区| 亚洲免费在线看| 亚洲美女偷拍久久| 一区二区三区高清不卡| 亚洲在线中文字幕| 亚洲成av人片一区二区三区| 亚洲中国最大av网站| 天天综合色天天综合| 日本女人一区二区三区| 美女在线观看视频一区二区| 老鸭窝一区二区久久精品| 极品尤物av久久免费看| 国产激情一区二区三区四区 | 国产精品美女久久久久aⅴ| 国产精品国产三级国产aⅴ入口| 国产视频一区不卡| 中文字幕一区二区三区av| 一级日本不卡的影视| 日韩精品成人一区二区三区| 蜜桃视频免费观看一区| 国产伦精一区二区三区| 成人高清av在线| 激情深爱一区二区| 国产成人精品一区二区三区四区 | 亚洲欧美日韩小说| 亚洲成人精品在线观看| 国产在线播放一区三区四| 成人18精品视频| 欧美色图天堂网| 精品国产一区二区三区忘忧草| 亚洲国产精品v| 水蜜桃久久夜色精品一区的特点| 老司机精品视频导航| 99久久综合精品| 91精品国产欧美一区二区成人| 2023国产精品| 亚洲国产另类av| 国产成人av在线影院| 欧洲色大大久久| 欧美在线免费播放| 久久人人97超碰com| 亚洲第一成年网| 国产成人在线影院| 欧美美女一区二区在线观看| 久久久久久久久一| 亚洲电影第三页| 成人开心网精品视频| 欧美一区二区三区免费观看视频 | 麻豆成人免费电影| 色丁香久综合在线久综合在线观看| 欧美精品1区2区3区| 国产精品第四页| 九九精品一区二区| 欧美日韩成人一区二区| 国产精品免费视频一区| 麻豆精品国产91久久久久久 | 成人一级视频在线观看| 日韩一二三区视频| 一区二区不卡在线播放| 成人综合激情网| 久久免费偷拍视频| 美腿丝袜亚洲色图| 欧美年轻男男videosbes| 国产精品人妖ts系列视频| 美女视频一区二区| 欧美日韩国产区一| 亚洲国产成人va在线观看天堂| 高清日韩电视剧大全免费| 精品国产伦一区二区三区观看体验| 亚洲一区二区综合| 91九色最新地址| 亚洲手机成人高清视频| 国产suv精品一区二区6| 久久蜜桃一区二区| 国模无码大尺度一区二区三区| 91精品国产手机| 奇米影视一区二区三区小说| 欧美在线免费观看亚洲| 一区二区三区.www| 在线观看欧美日本| 亚洲精品大片www| 欧美亚洲丝袜传媒另类| 亚洲综合成人在线视频| 在线观看日韩av先锋影音电影院| 一区二区三区高清不卡|