久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5009|回復: 1
收起左側

VHDL直流電機控制系統課設總原理圖與源程序部分

[復制鏈接]
ID:263449 發表于 2018-1-17 02:52 | 顯示全部樓層 |閱讀模式
附錄
課設總原理圖(附件中有清晰的圖片下載):

VHDL直流電機控制系統課設頂層文件:
  1. LIBRARY ieee;
  2. USE ieee.std_logic_1164.all;
  3. LIBRARY work;
  4. ENTITY FX IS
  5.               PORT
  6.               (
  7.                             C0 :  IN  STD_LOGIC;
  8.                             K2 :  IN  STD_LOGIC;
  9.                             K1 :  IN  STD_LOGIC;
  10.                             C1 :  IN  STD_LOGIC;
  11.                             KIN :  IN  STD_LOGIC;
  12.                             clk1 :  IN  STD_LOGIC;
  13.                             M0 :  OUT  STD_LOGIC;
  14.                             M1 :  OUT  STD_LOGIC;
  15.                             M :  OUT  STD_LOGIC;
  16.                             CLK :  OUT  STD_LOGIC;
  17.                             LK :  OUT  STD_LOGIC;
  18.                             KOUT :  OUT  STD_LOGIC;
  19.                             ADR :  OUT  STD_LOGIC_VECTOR(7 DOWNTO 0);
  20.                             CIN :  OUT  STD_LOGIC_VECTOR(7 DOWNTO 0);
  21.                             DOUT :  OUT  STD_LOGIC_VECTOR(3 DOWNTO 0);
  22.                             DOUT1 :  OUT  STD_LOGIC_VECTOR(3 DOWNTO 0);
  23.                             LED :  OUT  STD_LOGIC_VECTOR(6 DOWNTO 0);
  24.                             Q :  OUT  STD_LOGIC_VECTOR(7 DOWNTO 0)
  25.               );
  26. END FX;

  27. ARCHITECTURE bdf_type OF FX IS
  28. COMPONENT cnt8b
  29.               PORT(CLK : IN STD_LOGIC;
  30.                             DOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
  31.                    );
  32. END COMPONENT;
  33. COMPONENT erzp
  34.               PORT(CLK : IN STD_LOGIC;
  35.                             KIN : IN STD_LOGIC;
  36.                             KOUT : OUT STD_LOGIC
  37.                    );
  38. END COMPONENT;
  39. COMPONENT tf_ctrl
  40.               PORT(CLK1 : IN STD_LOGIC;
  41.                             CNT_EN : OUT STD_LOGIC;
  42.                             CLR : OUT STD_LOGIC;
  43.                             LOCK : OUT STD_LOGIC
  44.                   );
  45. END COMPONENT;
  46. COMPONENT cnt10d
  47.               PORT(CLK : IN STD_LOGIC;
  48.                             CLR : IN STD_LOGIC;
  49.                             ENABL : IN STD_LOGIC;
  50.                             COUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  51.                             DOUT1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
  52.                             DOUT2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
  53.                   );
  54. END COMPONENT;
  55. COMPONENT lock8
  56.               PORT(LK : IN STD_LOGIC;
  57.                             D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  58.                             Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
  59.                   );
  60. END COMPONENT;
  61. COMPONENT cnt4b
  62.               PORT(CLK : IN STD_LOGIC;
  63.                             CIN : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  64.                             DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
  65.                    );
  66. END COMPONENT;
  67. COMPONENT squ1
  68.               PORT(ADR : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  69.                             CIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  70.                             OT : OUT STD_LOGIC
  71.                    );
  72. END COMPONENT;
  73. COMPONENT slt
  74.               PORT(SL : IN STD_LOGIC;
  75.                             M : IN STD_LOGIC;
  76.                             m0 : OUT STD_LOGIC;
  77.                             m1 : OUT STD_LOGIC
  78.                   );
  79. END COMPONENT;
  80. COMPONENT decl7s
  81.               PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  82.                             LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
  83.                    );
  84. END COMPONENT;

  85. SIGNAL              SYNTHESIZED_WIRE_0 :  STD_LOGIC;
  86. SIGNAL              SYNTHESIZED_WIRE_1 :  STD_LOGIC;
  87. SIGNAL              SYNTHESIZED_WIRE_2 :  STD_LOGIC;
  88. SIGNAL              SYNTHESIZED_WIRE_3 :  STD_LOGIC;
  89. SIGNAL              SYNTHESIZED_WIRE_4 :  STD_LOGIC;
  90. SIGNAL              SYNTHESIZED_WIRE_5 :  STD_LOGIC_VECTOR(7 DOWNTO 0);
  91. SIGNAL              SYNTHESIZED_WIRE_6 :  STD_LOGIC;
  92. SIGNAL              SYNTHESIZED_WIRE_7 :  STD_LOGIC_VECTOR(7 DOWNTO 0);
  93. SIGNAL              SYNTHESIZED_WIRE_8 :  STD_LOGIC_VECTOR(7 DOWNTO 0);
  94. SIGNAL              SYNTHESIZED_WIRE_9 :  STD_LOGIC;
  95. SIGNAL              SYNTHESIZED_WIRE_10 :  STD_LOGIC;
  96. SIGNAL              SYNTHESIZED_WIRE_11 :  STD_LOGIC_VECTOR(3 DOWNTO 0);
  97. BEGIN

  98. M <= SYNTHESIZED_WIRE_9;
  99. CLK <= SYNTHESIZED_WIRE_6;
  100. LK <= SYNTHESIZED_WIRE_4;
  101. KOUT <= SYNTHESIZED_WIRE_1;
  102. ADR <= SYNTHESIZED_WIRE_7;
  103. CIN <= SYNTHESIZED_WIRE_8;
  104. b2v_inst : cnt8b
  105. PORT MAP(CLK => C0,
  106.                             DOUT => SYNTHESIZED_WIRE_7);
  107.      b2v_inst1 : erzp
  108. PORT MAP(CLK => C0,
  109.                             KIN => SYNTHESIZED_WIRE_0,
  110.                             KOUT => SYNTHESIZED_WIRE_6);
  111.      b2v_inst11 : tf_ctrl
  112. PORT MAP(CLK1 => clk1,
  113.                             CNT_EN => SYNTHESIZED_WIRE_3,
  114.                             CLR => SYNTHESIZED_WIRE_2,
  115.                             LOCK => SYNTHESIZED_WIRE_4);
  116.      b2v_inst12 : cnt10d
  117. PORT MAP(CLK => SYNTHESIZED_WIRE_1,
  118.                             CLR => SYNTHESIZED_WIRE_2,
  119.                             ENABL => SYNTHESIZED_WIRE_3,
  120.                             COUT => SYNTHESIZED_WIRE_5,
  121.                             DOUT1 => DOUT1,
  122.                             DOUT2 => DOUT);
  123.      b2v_inst13 : lock8
  124. PORT MAP(LK => SYNTHESIZED_WIRE_4,
  125.                             D => SYNTHESIZED_WIRE_5,
  126.                             Q => Q);
  127.      b2v_inst2 : cnt4b
  128. PORT MAP(CLK => SYNTHESIZED_WIRE_6,
  129.                             CIN => SYNTHESIZED_WIRE_8,
  130.                             DOUT => SYNTHESIZED_WIRE_11);
  131.      b2v_inst3 : squ1
  132. PORT MAP(ADR => SYNTHESIZED_WIRE_7,
  133.                             CIN => SYNTHESIZED_WIRE_8,
  134.                             OT => SYNTHESIZED_WIRE_10);
  135.      b2v_inst4 : slt
  136. PORT MAP(SL => K1,
  137.                             M => SYNTHESIZED_WIRE_9,
  138.                             m0 => M0,
  139.                             m1 => M1);
  140. SYNTHESIZED_WIRE_0 <= NOT(K2);
  141. SYNTHESIZED_WIRE_9 <= NOT(SYNTHESIZED_WIRE_10);
  142.      b2v_inst7 : decl7s
  143. PORT MAP(A => SYNTHESIZED_WIRE_11,
  144.                             LED7S => LED);
  145.      b2v_inst8 : erzp
  146. PORT MAP(CLK => C1,
  147.                             KIN => KIN,
  148.                             KOUT => SYNTHESIZED_WIRE_1);
  149. END bdf_type;
  150. 消抖模塊:
  151. LIBRARY IEEE;
  152. USE IEEE.STD_LOGIC_1164.ALL;
  153. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  154. ENTITY ERZP IS
  155.               PORT(CLK,KIN : IN STD_LOGIC;
  156.                                 KOUT : OUT STD_LOGIC );
  157.               END;
  158. ARCHITECTURE BHV OF ERZP IS
  159.               SIGNAL KL,KH : STD_LOGIC_VECTOR(3 DOWNTO 0);
  160.               BEGIN
  161.               PROCESS(CLK,KIN,KL,KH )  BEGIN
  162.                             IF CLK'EVENT AND CLK = '1' THEN
  163.                                           IF(KIN='0') THEN KL<=KL+1;
  164.                                           ELSE KL<="0000";   END IF;
  165.                       IF(KIN='1') THEN KH<=KH+1;
  166.                                           ELSE KH<="0000";   END IF;
  167.                                           IF(KH>"0101") THEN  KOUT<='1';
  168.                                           ELSIF (KL>"0101") THEN KOUT<='0';
  169.                                           END IF;   END IF;
  170.                             END PROCESS;
  171.               END;
  172. 頻率控制模塊:
  173. LIBRARY IEEE;
  174. USE IEEE.STD_LOGIC_1164.ALL;
  175. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  176. ENTITY TF_CTRL IS
  177. PORT (CLK1 : IN STD_LOGIC; -- 1Hz
  178. CNT_EN : OUT STD_LOGIC; -- 計數器時鐘使能
  179. CLR : OUT STD_LOGIC; -- 計數器清零
  180. LOCK : OUT STD_LOGIC ); -- 輸出鎖存信號
  181. END TF_CTRL;
  182. ARCHITECTURE behav OF TF_CTRL IS
  183. SIGNAL Div2CLK : STD_LOGIC;
  184. BEGIN
  185. PROCESS( CLK1 )
  186. BEGIN
  187. IF CLK1'EVENT AND CLK1 = '1' THEN
  188. Div2CLK <= NOT Div2CLK;
  189. END IF;
  190. END PROCESS;
  191. PROCESS (CLK1, Div2CLK)
  192. BEGIN
  193. IF CLK1='0' AND Div2CLK='0' THEN CLR<='1';-- 產生計數器清零信號
  194. ELSE CLR <= '0'; END IF;
  195. END PROCESS;
  196. LOCK <= NOT Div2CLK; CNT_EN <= Div2CLK;
  197. END behav;
  198. 頻率計數模塊:
  199. LIBRARY IEEE; --8位計數器
  200. USE IEEE.STD_LOGIC_1164.ALL;
  201. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  202. ENTITY CNT10D IS
  203. PORT (CLK : IN STD_LOGIC; -- 時鐘信號
  204. CLR : IN STD_LOGIC; -- 清零信號
  205. ENABL : IN STD_LOGIC; -- 計數使能信號
  206. COUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  207. DOUT1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
  208. DOUT2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); -- 計數結果

  209. END CNT10D;
  210. ARCHITECTURE behav OF CNT10D IS
  211. SIGNAL CQ2 : STD_LOGIC_VECTOR(3 DOWNTO 0);
  212. SIGNAL CQ3 : STD_LOGIC_VECTOR(3 DOWNTO 0);
  213. BEGIN
  214. PROCESS(CLK, CLR, ENABL)
  215. BEGIN
  216. IF CLR = '1' THEN CQ2 <= (OTHERS=>'0'); CQ3 <= (OTHERS=>'0'); -- 清零
  217. ELSIF CLK'EVENT AND CLK = '1' THEN
  218. IF ENABL = '1' THEN IF CQ2>8 THEN CQ2(3 DOWNTO 0)<="0000"; CQ3<=CQ3+1;
  219. ELSE CQ2 <=CQ2+1;
  220. END IF;
  221. END IF;
  222. END IF;
  223. END PROCESS;
  224. COUT <= CQ3&CQ2;
  225. DOUT1 <=CQ2;
  226. DOUT2 <=CQ3;
  227. END behav;
  228. 8位鎖存模塊:
  229. LIBRARY IEEE; --8位鎖存器
  230. USE IEEE.STD_LOGIC_1164.ALL;
  231. ENTITY LOCK8 IS
  232. PORT ( LK : IN STD_LOGIC;
  233. D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  234. LEDA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
  235. LEDB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
  236. END LOCK8;
  237. ARCHITECTURE behav OF LOCK8 IS
  238. BEGIN
  239. PROCESS(LK, D)
  240. BEGIN
  241. IF LK'EVENT AND LK = '1' THEN LEDA <= D(7 DOWNTO 4);  LEDB <= D(3 DOWNTO 0);
  242. END IF;
  243. END PROCESS;
  244. END behav;
  245. 8位計數器模塊:
  246. LIBRARY IEEE;
  247. USE IEEE.STD_LOGIC_1164.ALL;
  248. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  249. ENTITY CNT8B IS
  250. PORT (CLK : IN STD_LOGIC;
  251.       DOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
  252.       END CNT8B;
  253. ARCHITECTURE BHV OF CNT8B IS
  254.               BEGIN
  255. PROCESS(CLK)
  256.               VARIABLE CQ : STD_LOGIC_VECTOR(7 DOWNTO 0);
  257. BEGIN
  258.               IF CLK'EVENT  AND CLK = '1'  THEN
  259.                             IF CQ<255 THEN --
  260.                      CQ := CQ + 1 ;
  261.                             ELSE CQ := (OTHERS=>'0') ;
  262.                             END IF;
  263.               END IF;
  264.               DOUT <= CQ;
  265.               END PROCESS;
  266. END BHV;
  267. 4位計數器模塊:
  268. LIBRARY IEEE;
  269. USE IEEE.STD_LOGIC_1164.ALL;
  270. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  271. ENTITY CNT4B IS
  272. PORT (CLK : IN STD_LOGIC;
  273.       CIN: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  274.       DOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
  275.       END CNT4B;
  276. ARCHITECTURE BHV OF CNT4B IS
  277. SIGNAL CQ1 : STD_LOGIC_VECTOR(3 DOWNTO 0);
  278.               BEGIN
  279. PROCESS(CLK)
  280.               VARIABLE CQ : STD_LOGIC_VECTOR(3 DOWNTO 0);
  281. BEGIN
  282.               CQ1 <="1111";
  283.               IF CLK'EVENT AND CLK = '1'  THEN
  284.                             IF CQ<15 THEN
  285.                             CQ := CQ + 1 ;
  286.                             ELSE CQ := (OTHERS=>'0') ;
  287.                             END IF;
  288.               END IF;            
  289.     DOUT <=CQ(3 DOWNTO 0);
  290.     CIN  <=CQ&CQ1;
  291.               END PROCESS;
  292. END BHV;
  293. PWM信號產生模塊:
  294. LIBRARY IEEE;
  295. USE IEEE.STD_LOGIC_1164.ALL;
  296. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  297. ENTITY SQU1 IS
  298.               PORT ( CIN,ADR : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
  299.                         OT   : OUT STD_LOGIC );
  300.               END SQU1;
  301. ARCHITECTURE BHV OF SQU1 IS
  302.               BEGIN
  303.               PROCESS(CIN)  BEGIN
  304.                             IF (ADR<CIN) THEN OT<='0';
  305.                             ELSE  OT<='1'; END IF;
  306.               END PROCESS;
  307. END  BHV;
  308. 正反轉模塊:
  309. LIBRARY IEEE;
  310. USE IEEE.STD_LOGIC_1164.ALL;
  311. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  312. use ieee.std_logic_arith.all;
  313. ENTITY SLT IS
  314.               PORT (SL, M, K : IN STD_LOGIC;
  315.                               m0, m1: OUT STD_LOGIC );
  316.               END SLT;
  317. ARCHITECTURE BHV OF SLT IS
  318. TYPE FSM_ST IS (S0,S1);
  319. SIGNAL c_st, next_state: FSM_ST :=S0;
  320. BEGIN
  321. REG : PROCESS (SL)
  322. BEGIN
  323. IF SL='1'AND SL'EVENT THEN c_st <= next_state;
  324. END IF;
  325. END PROCESS REG ;
  326.   COM : PROCESS (c_st, M) BEGIN
  327.   IF K='1' THEN  m0 <='0'; m1 <='0';
  328.   ELSE
  329.               CASE c_st IS
  330.                             WHEN S0 => m0 <= M; m1 <='0';  next_state <= S1;
  331.                             WHEN S1 => m1 <= M; m0 <='0';  next_state <= S0;
  332.               END CASE;
  333.               END IF;
  334.   END PROCESS;
  335. END BHV;
  336. 分頻模塊:  實際測試時沒有用,因為開發箱直接有1Hz的時鐘。
  337. LIBRARY IEEE ;
  338. USE IEEE.STD_LOGIC_1164.ALL;
  339. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  340. ENTITY CNT IS
  341.               PORT(CLOCK : IN STD_LOGIC ;COUT : OUT STD_LOGIC);
  342. END ;
  343. ARCHITECTURE bhv OF  CNT IS
  344.               SIGNAL C1,C2 : STD_LOGIC_VECTOR(8 DOWNTO 0) ;
  345.                  SIGNAL M1,M2 : STD_LOGIC ;
  346.    BEGIN
  347.   PROCESS(CLOCK,C1) BEGIN
  348.               IF RISING_EDGE(CLOCK) THEN
  349.               IF (C1="111111111") THEN C1<="000000000";  ELSE C1<=C1+1; END IF;
  350.               IF (C1="000000001") THEN M1<=NOT M1;  ELSIF (C1="100000000")  THEN M1<=NOT M1;
  351.               END IF;END IF;
  352. END PROCESS;
  353. PROCESS (CLOCK,C2)  BEGIN
  354.               IF FALLING_EDGE(CLOCK)  THEN
  355.               IF(C2="111111111") THEN C2<="000000000"; ELSE C2<=C2+1;END IF;
  356.               IF(C2="000000001") THEN M2<=NOT M2 ; ELSIF (C2="100000000") THEN M2<=NOT M2;
  357. END IF;  END IF;
  358. END PROCESS;
  359.     COUT<=M1 OR M2;
  360. END bhv
復制代碼

全部資料51hei下載地址:
基于VHDL的直流電機控制系統程序.7z (42.82 KB, 下載次數: 71)
回復

使用道具 舉報

ID:263449 發表于 2018-1-17 02:55 | 顯示全部樓層
這是程序部分 另一部分報告在另一包了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品香蕉一区二区三区 | 亚洲小视频在线观看 | 免费黄色大片 | 亚洲国产精品99久久久久久久久 | 久久99精品久久久久久琪琪 | 亚洲国产欧美精品 | 玩丰满女领导对白露脸hd | 亚洲一区欧美一区 | 91麻豆精品国产91久久久久久久久 | 国产成人jvid在线播放 | 国产精品中文字幕在线 | 久干网| 一区二区三区精品视频 | 日韩精品视频在线 | 亚洲国产精品一区二区久久 | 日韩国产一区二区三区 | 国产真实精品久久二三区 | 久久最新 | 精品一区二区av | 国产二区视频 | 国产精品久久久久久亚洲调教 | 久久久久电影 | av网站免费观看 | 亚洲经典一区 | 无码日韩精品一区二区免费 | 日韩视频精品在线 | 亚洲成人精选 | 综合婷婷 | 久久国内| 亚州精品天堂中文字幕 | 亚洲精品二区 | 久久久一二三区 | 国产在线精品区 | 蜜臀久久| 亚洲一区二区在线视频 | av在线免费不卡 | 欧美中文在线 | 国产精品永久久久久久久www | 国产精品美女久久久久久不卡 | 香蕉婷婷 | hdfreexxxx中国妞 |