EDA技術課程設計:可控計數器的設計 設計要求:1.設計一個五進制計數器,由兩個控制鍵sel控制不同的計數方式;2.當sel=00時,按0、1、2、3、4、0、1、2、3、4......順序計數;3.當sel=01時,按0、2、4、6、8、0、2、4、6、8......順序計數4.當sel=10時,按1、3、5、7、9、1、3、5、7、9......順序計數5.當sel=11時,按5、4、3、2、1、5、4、3、2、1......順序計數6.由數碼管分別譯碼顯示控制信號和計數狀態,分別用3位數碼管動態顯示;7.給出VHDL設計的源程序。
上傳時間: 2013-12-16
上傳用戶:YYRR
可編程計數器陳列PCA原理及應用設計P89C51Rx2的可編程計數器陳列是由5個相同的、以計數器為主的模塊組成。每個模塊除為主的計數器外,還輔之以比較器/沿捕捉器。
上傳時間: 2013-10-12
上傳用戶:youke111
AT89C2051驅動步進電機的電路和源碼:AT89C2051驅動步進電機的電路和源碼 程序:stepper.c stepper.hex/* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */#i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.hregister unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n;unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400/* flag1 mask byte 0x01 run cw() 0x02 run ccw() */main(){ flag1=0; serinit(9600); disable(); /* no need timer interrupt */ cw_n = n; /* initial step number for cw */ flag1 |=0x01; /* initial enable cw() */while(1){ { tick_wait(); /* wait for 10ms elapsed */energize(); /* round-robin execution the following tasks every 10ms */ cw(); ccw(); } }}cw(){ if((flag1&0x01)!=0) { cw_n--; /* decrement cw step number */ if (cw_n !=0) j++; /* if not zero increment index j */ else {flag1&=~0x01; /* disable cw() execution */ ccw_n = n; /* reload step number to ccw counter */ flag1 |=0x02; /* enable cww() execution */ } }
上傳時間: 2013-11-21
上傳用戶:boyaboy
介招用AT8 9 c5 單片機構成微型可鳊程控制器PLc的設計思路一系統硬件配置和軟件設計方法,最后給出此微型可鳊程控制器在水塔水位控制中應用的實例。
上傳時間: 2013-11-19
上傳用戶:adada
8051單片機系統擴展與接口技術:第一節 8051 單片機系統擴展概述第二節 單片機外部存儲器擴展第三節 單片機輸入輸出(I/O)口擴展及應用第四節 LED顯示器接口電路及顯示程序第五節 單片機鍵盤接口技術第六節 單片機與數模(D/A)及模數(A/D)轉換1、地址總線(Address Bus,簡寫為AB)地址總線可傳送單片機送出的地址信號,用于訪問外部存儲器單元或I/O端口。A 地址總線是單向的,地址信號只是由單片機向外發出。B 地址總線的數目決定了可直接訪問的存儲器單元的數目。例如N位地址,可以產生2N個連續地址編碼,因此可訪問2N個存儲單元,即通常所說的尋址范圍為 2N個地址單元。MCS—51單片機有十六位地址線,因此存儲器展范圍可達216 = 64KB地址單元。C 掛在總線上的器件,只有地址被選中的單元才能與CPU交換數據,其余的都暫時不能操作,否則會引起數據沖突。2、數據總線(Data Bus,簡寫為DB)數據總線用于在單片機與存儲器之間或單片機與I/O端口之間傳送數據。A 單片機系統數據總線的位數與單片機處理數據的字長一致。例如MCS—51單片機是8位字長,所以數據總線的位數也是8位。B 數據總線是雙向的,即可以進行兩個方向的數據傳送。3、控制總線(Control Bus,簡寫為CB)控制總線實際上就是一組控制信號線,包括單片機發出的,以及從其它部件送給單片機的各種控制或聯絡信號。對于一條控制信號線來說,其傳送方向是單向的,但是由不同方向的控制信號線組合的控制總線則表示為雙向的。總線結構形式大大減少了單片機系統中連接線的數目,提高了系統的可靠性,增加了系統的靈活性。此外,總線結構也使擴展易于實現,各功能部件只要符合總線規范,就可以很方便地接入系統,實現單片機擴展。
上傳時間: 2013-10-18
上傳用戶:assef
MCP定時器產生中心對稱PWM輸出:PWM波是一種脈寬可調的脈沖波,用于交、直流電機的電壓控制。PWM一共有兩種調整方法,一是定頻調寬、另一種是定寬調頻。其中定頻調寬是種最常見的脈寬調制方式,它使脈沖波的頻率保持不變,只調整脈沖寬度。同時定頻調寬的PWM波形也分為兩種,一種是單邊的PWM,另一種是中心對稱的雙邊PWM。中心對稱的PWM主要應用在需要對稱PWM波形的場合,如半橋、全橋的雙極性驅動等。中心對稱的PWM的生成原理如圖1-2所示:定時計數器工作在連續增減計數方式,在計數初值設置為0且比較值小于周期值的條件下,當增計數過程中計數值和比較值匹配時置位輸出,而在周期匹配時會改計數方向為減計數,當減計數過程中計數值和比較值匹配時復位輸出,當減計數到零時會改計數方向為增計數,開始下一個循環。因此中心對稱的PWM的周期為設定周期的二倍,占空比為:%100))((×−TPRNTPR(N為比較匹配數據,TPR為周期寄存器的值)。比較值的改變會影響PWM的兩邊的波形,并且兩邊相對高電平的中心對稱,這便是中心對稱雙邊PWM波形的特點。如果比較值為零,那么PWM將一直輸出高電平;如比較值大于等于周期值,則PWM會一直輸出低電平,占空比為0。
上傳時間: 2013-11-13
上傳用戶:sammi
MCP定時器產生邊沿PWM輸出:PWM波是一種脈寬可調的脈沖波,用于交、直流電機的電壓控制。PWM一共有兩種調整方法,一是定頻調寬、另一種是定寬調頻。其中定頻調寬是種最常見的脈寬調制方式,它使脈沖波的頻率保持不變,只調整脈沖寬度。同時定頻調寬的PWM波形也分為兩種,一種是單邊的PWM,另一種是中心對稱的雙邊PWM。單邊的PWM的生成原理如圖1-2:定時計數器工作在增計數方式,在計數初值設置為0且比較值小于周期值的條件下,當計數值和比較值匹配時置位輸出,而在周期匹配時復位輸出,同時清零計數器,開始下一個循環。因此單邊PWM的占空比為:%100))((×−TPRNTPR(N為比較匹配數據,TPR為周期寄存器的值)。比較值的改變只影響PWM的單邊波形,這便是單邊PWM波形的特點。如果比較值為零,那么PWM將一直輸出高電平;如比較值同周期值相等,則PWM會輸出一個時鐘周期的低電平,占空比近似為0;當比較值大于周期值,那么PWM將一直輸出低電平。
上傳時間: 2013-11-07
上傳用戶:moerwang
PIC16F84 單片機的內部硬件資源:學些PIC 單片機,在Microchip 尚未推出其他Flash 系列的情況下,很多菜鳥都是從PIC16F84 開始的,我們把它整理了一份中文資料供大家學習。首先介紹PIC16F84 單片機的內部結構,如圖1 所示的框圖。由圖1 看出,其基本組成可分為四個主要部分,即運算器ALU 和工作寄存器W;程序存儲器;數據存儲器和輸入/輸出(I/O)口;堆棧存儲器和定時器等。現分別介紹如下。
上傳時間: 2013-12-26
上傳用戶:zgu489
本文介紹了基于SRAM 查找表的現場可重配置FPGA 的結構和原理,及其配置方法,通過對多種配置方法的比較,提出了由單片機和EPROM 存儲器組成的串行配置方式。這種方式結構簡單,設計保密性好,易于升級,降低設計成本。在大規模可編程邏輯器件出現以前,把器件焊接在電路板上是設計數字系統的最后一步。當設計存在問題并解決后,設計者往往不得不重新設計印制電路板。設計周期長,設計效率低。CPLD 、FPGA 出現后,利用其在系統可編程或可重配置功能,設計者可以在進行邏輯設計而未進行電路設計時就把CPLD、FPGA 焊接在電路板上,然后在設計調試時可一次次隨心所欲的改變電路的硬件邏輯關系,而不用改變電路板的結構。
上傳時間: 2013-10-29
上傳用戶:born2007
這一顆,我們學習如何讓跑馬燈自動按照我們預定的順序進行。這種控制在工控場合經常用到。這個程序里,我們預先定義了一個變化的順序speedcode,每跑一圈燈就根據預定設置的表格數據來決定下一圈的跑馬速度。這樣我們就實現了按照預定的順序自動變化運行。請看代碼:-----------------------------------#define uchar unsigned char //定義一下方便使用#define uint unsigned int#define ulong unsigned long#include <reg52.h> //包括一個52 標準內核的頭文件sbit P10 = P1^0; //頭文件中沒有定義的IO 就要自己來定義了sbit P11 = P1^1;sbit P12 = P1^2;sbit P13 = P1^3;bit ldelay=0; //長定時溢出標記,預置是0uchar speed=10; //設置一個變量保存跑馬燈的移動速度uchar code speedcode[10]={3,1,5,12,3,20,2,10,1,4}; //10 個預定義的速度char code dx516[3] _at_ 0x003b;//這是為了仿真設置的//可編程自動控制跑馬燈void main(void) // 主程序{uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//預定的寫入P1 的值uchar ledi; //用來指示顯示順序uchar i;RCAP2H =0x10; //賦T2 的預置值0x1000,溢出30 次就是1 秒鐘RCAP2L =0x00;TR2=1; //啟動定時器ET2=1; //打開定時器2 中斷EA=1; //打開總中斷
上傳時間: 2013-11-20
上傳用戶:ming529