c語言pnl,c語言png透明

本文目錄一覽:

電腦系統基礎知識書籍

就按大學的本科教學大綱開始學吧,慢慢來,學計算機多少得懂點編程吧,先從c語言編程基礎開始,先推薦看看譚浩強的c語言吧,貌似很普遍,這樣的話你如果真要上大學學了計算機,那麼你就比別人不是強一點半點了,好多人都被c語言給毀了,一旦學不好就放棄了,基礎的東西不好也就完了,鑒於你是高中生,還是以高考為重,對了,推薦看看計算機科學基礎,或計算機導論之類的書。會對計算機世界的各個方面,從軟體到硬體,從數學到物理,從美國到世界,從操作系統到應用軟體,從彙編到c語言等等各個方面,對你會有啟發的,我說的書並不限於哪本,至少計算機方面盡量看看國外作者的,有能力可以看英文,

畢竟是高中生,高考為重,先這麼著,不過話說回來了,學點photoshop,flash,如果沒事,大學加社團可是很有競爭力,一般大學都有網站維護之類的社團,一旦憑藉這進去了就可以接觸網站建設等知識。總之別想貪多,學好了你就不錯,慢慢來,自己感悟,不可能一下子就給你開個全面的菜單,根據自己的愛好

像我大學來時不知道優盤是什麼,不知道複製粘貼是啥意思,甚至連開關機重啟按鈕都分不太明白,基礎很差的,所以很吃虧,不過還好也能混進實驗室,不過跟他們這些大學前就有基礎的人來說,明顯我吃虧了,當然這並不是能力上的差別,但是至少可以讓你有信心學下去,而且可以得到很多好處,畢竟基礎好嘛雖然真正的計算機高手,用高手有點通俗,計算機科學家吧,不是會做個圖片做個動畫編個程序之類的,想想計算機是怎麼造出來的,操作系統是怎麼開發的,等等,你覺得是編點程序嗎。真正的高手甚至不摸電腦的,當然玩玩電腦未嘗不可,計算機科學是自然科學,數學是自然科學皇冠上的明珠,物理也是,如果你看了計算機科學技術導論就知道,這本書盡量買外國人的,美國吧,網站上買,多看看書的評價就知道了,慢慢來吧,很少有人能夠成為真正的高手,努力吧

多在網上有效率搜尋信息來學習。

求高人給我發幾個關於C51單片機PWM的編程實例

共兩個:

/*********************************************************************************************

程序名: 觸控調光檯燈

編寫人: 杜洋

編寫時間: 2009年 7月 25日

硬體支持: STC12C2052 12MHz

介面說明: P3.7(PWM0)用PWM控制LED,P1.5~P1.7接3路觸摸鍵

修改日誌:

NO.1-20090725_0622 完成觸控開關LED燈部分和PWM調光部分程序。

NO.2-20090725_0638 完成開關燈時的漸變亮度。

/*********************************************************************************************

說明:電路製作時需要將觸摸鍵和VCC線放在一起,然後觸摸時將手同時觸摸按鍵引腳和VCC線。

/*********************************************************************************************/

#include STC12C2052AD.H //STC12Cx052或STC12Cx052AD系列單片機頭文件

sbit ON_OFF_Key = P1 ^ 7; //ON/OFF開關鍵

sbit Add_Key = P1 ^ 6; //加亮度(+)

sbit Doc_Key = P1 ^ 5; //減亮度(-)

//LED與P3.7(PWM0)連接

unsigned char Bright=0x88; //全局變數,亮度值

bit POWER=0; //LED燈開/關狀態標誌位

/*********************************************************************************************

函數名:PWM初始化函數

調 用:PWM_init();

參 數:無

返回值:無

結 果:將PCA初始化為PWM模式,初始占空比為0

備 註:需要更多路PWM輸出直接插入CCAPnH和CCAPnL即可

/**********************************************************************************************/

void PWM_init (void){

CMOD=0x02; //設置PCA定時器

CL=0x00;

CH=0x00;

CCAPM0=0x42; //PWM0設置PCA工作方式為PWM方式(0100 0010)

CCAP0L=0x00; //設置PWM0初始值與CCAP0H相同

CCAP0H=0x00; // PWM0初始時為0

CR=1; //啟動PCA定時器

}

/**********************************************************************************************/

/*********************************************************************************************

函數名:PWM0占空比設置函數

調 用:PWM0_set();

參 數:0x00~0xFF(亦可用0~255)

返回值:無

結 果:設置PWM模式占空比,為0時全部高電平,為1時全部低電平

備 註:如果需要PWM1的設置函數,只要把CCAP0L和CCAP0H中的0改為1即可

/**********************************************************************************************/

void PWM0_set (unsigned char a){

CCAP0L= a; //設置值直接寫入CCAP0L

CCAP0H= a; //設置值直接寫入CCAP0H

}

/**********************************************************************************************/

/*********************************************************************************************

函數名:毫秒級CPU延時函數

調 用:DELAY_MS (?);

參 數:1~65535(參數不可為0)

返回值:無

結 果:佔用CPU方式延時與參數數值相同的毫秒時間

備 註:應用於1T單片機時i600,應用於12T單片機時i125

/*********************************************************************************************/

void DELAY_MS (unsigned int a){

unsigned int i;

while( –a != 0){

for(i = 0; i 600; i++);

}

}

/*********************************************************************************************/

/*********************************************************************************************

函數名:主函數

調 用:無

參 數:無

返回值:無

結 果:程序開始處,無限循環

備 註:

/**********************************************************************************************/

void main (void){

PWM_init(); //PWM初始化

P1M0 = 0xff; //將P1介面設置為高阻態輸入

P1M1 = 0x00; //觸摸按鍵啟用

DELAY_MS (200); //延時等待I/O介面電平狀態穩定

while(1){ //循環程序部分

unsigned char a; //臨時變數

if(ON_OFF_Key == 1){ //開關鍵按下

if(POWER == 0){ //如果當前狀態為關,則執行開燈程序

for(a=0;a=Bright;a++){ //

PWM0_set(a);

DELAY_MS (20); //漸暗的時間間隔

}

PWM0_set(Bright); //達到存儲的LED亮度

POWER = 1; //把狀態標誌位變成開

}else{ //如果當前狀態為開,則執行關燈程序

for(a=Bright;a0;a–){ //循環漸暗

PWM0_set(a);

DELAY_MS (20); //漸暗的時間間隔

}

PWM0_set(0); //關LED

POWER = 0; //把狀態標誌位變成關

}

while(ON_OFF_Key == 1); //等待按鍵放開

}

if(Add_Key == 1 POWER == 1){ //加亮度鍵按下,同時在開燈狀態下

Bright++; //亮度值加1

PWM0_set(Bright); //將值寫入PWM控制LED亮度

if(Bright = 0xFD){ //如果亮度值大於0xFD,則不再增加

Bright = 0xFD;

}

DELAY_MS (20); //漸變亮度的時間間隔

}

if(Doc_Key == 1 POWER == 1){ //減亮度鍵按下,同時在開燈狀態下

Bright–; //亮度值減1

PWM0_set(Bright); //將值寫入PWM控制LED亮度

if(Bright 0x08){ //如果亮度值小於0x08,則不再減少

Bright = 0x08;

}

DELAY_MS (20); //漸變亮度的時間間隔

}

}

}

/**********************************************************************************************/

/*************************************************************

* 杜洋工作室 DoYoung Studio

* 與電子愛好者同行

/*************************************************************/

/*********************************************************************************************

程序名: PWM模塊調試程序(僅實驗用)

編寫人: 杜洋

編寫時間: 2009年7月22日

硬體支持: STC12C2052 12MHz

介面說明: LED灌電流接P3.7介面(PWM0)

修改日誌:

NO.1-

/*********************************************************************************************

說明:

/*********************************************************************************************/

#includeSTC12C2052AD.H //頭文件

/*********************************************************************************************

函數名:PWM初始化函數

調 用:PWM_init();

參 數:無

返回值:無

結 果:將PCA初始化為PWM模式,初始占空比為0

備 註:需要更多路PWM輸出直接插入CCAPnH和CCAPnL即可

/**********************************************************************************************/

void PWM_init (void){

CMOD=0x02; //設置PCA定時器

CL=0x00;

CH=0x00;

CCAPM0=0x42; //PWM0設置PCA工作方式為PWM方式(0100 0010)

CCAP0L=0x00; //設置PWM0初始值與CCAP0H相同

CCAP0H=0x00; // PWM0初始時為0

//CCAPM1=0x42; //PWM1設置PCA工作方式為PWM方式(使用時刪除//)

//CCAP1L=0x00; //設置PWM1初始值與CCAP0H相同

//CCAP1H=0x00; // PWM1初始時為0

//CCAPM2=0x42; //PWM2設置PCA工作方式為PWM方式

//CCAP2L=0x00; //設置PWM2初始值與CCAP0H相同

//CCAP2H=0x00; // PWM2初始時為0

//CCAPM3=0x42; //PWM3設置PCA工作方式為PWM方式

//CCAP3L=0x00; //設置PWM3初始值與CCAP0H相同

//CCAP3H=0x00; // PWM3初始時為0

CR=1; //啟動PCA定時器

}

/**********************************************************************************************/

/*********************************************************************************************

函數名:PWM0占空比設置函數

調 用:PWM0_set();

參 數:0x00~0xFF(亦可用0~255)

返回值:無

結 果:設置PWM模式占空比,為0時全部高電平,為1時全部低電平

備 註:如果需要PWM1的設置函數,只要把CCAP0L和CCAP0H中的0改為1即可

/**********************************************************************************************/

void PWM0_set (unsigned char a){

CCAP0L= a; //設置值直接寫入CCAP0L

CCAP0H= a; //設置值直接寫入CCAP0H

}

/**********************************************************************************************/

/*********************************************************************************************

函數名:主函數

調 用:無

參 數:無

返回值:無

結 果:程序開始處,無限循環

備 註:

/**********************************************************************************************/

void main (void){

PWM_init(); //PWM初始化

PWM0_set(0x10); //設置PWM占空比

while(1){

//無限循環程序

}

}

/**********************************************************************************************/

/*************************************************************

* 杜洋工作室 DoYoung Studio

* 與電子愛好者同行

/*************************************************************/

電腦主板基礎實用知識

主板主要要求做工良好,可以為CPU,內存,以及其他的相關配件提供穩定的供電支持,另外還加上對硬體的支持上限。AMD和Intel兩家的CPU介面不同,所以使用的型號也不同,通常主板上都會標註。下面就讓我帶你去看看電腦主板基礎實用知識,希望能幫助到大家!

計算機 硬體知識 : BIOS 、EFI與UEFI詳解!

本文估計很多小白看不懂,但是還是建議你硬著頭皮看完,這篇 文章 主要講解了這幾種「BIOS」的啟動方式,對電腦啟動問題判斷的理解會有益處。

BIOS是個程序,存儲在BIOS晶元中,而現在的新式電腦用的基本都是UEFI啟動,早期的過渡電腦用的都是EFI啟動。其實EFI或UEFI的一部分也是存儲在一個晶元中,由於它們在表面形式、基本功能上和BIOS差不多,所以習慣上我們也把存儲EFI/UEFI的晶元叫做EFI/UEFI BIOS晶元,EFI/UEFI也叫做EFI/UEFI BIOS,但在實際上它們和BIOS根本是不一樣的,所以最好還是把後面的「BIOS」尾巴去掉為好,下面就來具體談一下BIOS、EFI和UEFI。

BIOS用於計算機硬體自檢、CMOS設置、引導 操作系統 啟動、提供硬體I/O、硬體中斷等4項主要功能,因此BIOS程序可以分為若干模塊,主要有Boot Block引導模塊、CMOS設置模塊、擴展配置數據(ESCD)模塊、DMI收集硬體數據模塊,其中引導模塊直接負責執行BIOS程序本身入口、計算機基本硬體的檢測和初始化,ESCD用於BIOS與OS交換硬體配置數據,DMI則充當了硬體管理工具和系統層之間介面的角色,通過DMI,用戶可以直觀地獲得硬體的任何信息,CMOS設置模塊就是實現對硬體信息進行設置,並保存在CMOS中,是除了啟動初始化以外BIOS程序最常用的功能。

BIOS本身是彙編語言代碼,是在16位實模式下調用INT 13H中斷執行的,由於__86-64是一個高度兼容的指令集,也為了遷就BIOS的16位實模式的運行環境,所以即使現在的CPU都已是64位,如果還是在BIOS啟動(基本見於09年以前的主板),在開機時仍然都是在16位實模式下執行的。16位實模式直接能訪問的內存只有1MB,就算你安了4G、8G或者16G還是32G內存,到了BIOS上一律只先認前1MB。在這1MB內存中,前640K稱為基本內存,後面384K內存留給開機必要硬體和各類BIOS本身使用,了解了這些,下面談一下BIOS啟動計算機的具體過程。

當按下電源開關時,電源就開始向主板和其他設備供電,這時電壓還不穩定,在早期的南北橋主板上,由主板北橋向CPU發複位信號,對CPU初始化;穩定電壓後複位信號便撤掉。而對於現在的單南橋主板,則由CPU自身調整穩定電壓達到初始化的目的,當電壓穩定後,CPU便在系統BIOS保留的內存地址處執行跳轉BIOS起始處指令,開始執行POST自檢。

在POST自檢中,BIOS只檢查系統的必要核心硬體是否有問題,主要是CPU、640K基本內存、顯卡是否正常,PS/2鍵盤控制器、系統時鐘是否有錯誤等等。由於POST檢查在顯卡初始化以前,因此在這個階段如發生錯誤,是無法在屏幕上顯示的,不過主板上還有個報警揚聲器,而且如果主板的8255外圍可編程介面晶元沒有損壞的話,POST報警聲音一定是會出來的。可以根據報警聲的不同大致判斷錯誤所在,一般情況下,一聲短「嘀」聲基本代表正常啟動,不同的錯誤則是不同的短「嘀」聲和長「嘀」聲組合。POST自檢結束後,BIOS開始調用中斷完成各種硬體初始化工作。

硬體初始化工作中,主要說明兩點,首先經過POST檢測後,電腦終於出現了開機啟動畫面,這就是已經檢測到了顯卡並完成了初始化。但是請注意,由於BIOS是在16位實模式運行,因此該畫面是以VGA解析度(640__480,縱橫比4:3)顯示的,因為實模式最高支持的就是VGA。以前的小14-17寸CRT 顯示器 由於都是4:3比例,最高解析度也比較低,因此這個開機啟動畫面沒有什麼違和感,但現在的液晶顯示器基本上都是寬屏16:9的,解析度也較高,因此在這樣的顯示屏下,啟動畫面上的一切東西顯示都可以說「慘不忍睹」——圖形被拉長,字體很大很模糊,可以很明顯看到顯示字體的鋸齒。第二,BIOS只識別到由主引導記錄(MBR)初始化的硬碟,之所以說明這點,是因為後續的EFI或UEFI採用了一種新的GUID磁碟分區系統(GPT)格式,這種硬碟在BIOS下是無法識別的。硬體全部初始化完畢後,接下來進入更新ESCD階段。

在ESCD更新階段中,BIOS將對存儲在CMOS中和操作系統交換的硬體配置數據進行檢測,如果系統硬體發生變動,則會更新該數據,否則不更新保持原狀不變,ESCD檢測或更新結束後,BIOS將完成最後一項工作,就是啟動操作系統。

最後這一步中,BIOS根據CMOS中用戶指定的硬體啟動順序,讀取相應設備的啟動或引導記錄,引導相應設備上的操作系統啟動,進入操作系統,此後便由操作系統接替BIOS負責硬體和軟體間的相互通信。如果發現所有硬體都沒有能引導操作系統的記錄,則會在屏幕上顯示相應錯誤信息,並將電腦維持在16位實模式。

雖然BIOS作為電腦加電啟動所必不可少的部分,但是從其於1975年誕生之日起近30餘年,16位彙編語言代碼,1M內存定址,調用中斷一條條執行的理念和方式竟然一點都沒有改變,雖然經各大主板商不懈努力,BIOS也有了ACPI、USB設備支持,PnP即插即用支持等新東西,但是這在根本上沒有改變BIOS的本質,而英特爾為了遷就這些舊技術,不得不在一代又一代處理器中保留著16位實模式(否則根本無法開機的)。但是,英特爾在2001年開發了全新的安騰處理器,採用IA-64架構,並推出了全新的EFI。後來證明,安騰處理器、IA-64架構沒有推廣開來,而EFI和後繼的UEFI卻發揚光大,成為現在電腦的主要預啟動環境。

EFI,是E__tensible Firmware Interface的詞頭縮寫,直譯過來就是可擴展固件介面,它是用模塊化、高級語言(主要是C語言)構建的一個小型化系統,它和BIOS一樣,主要在啟動過程中完成硬體初始化,但它是直接利用載入EFI驅動的方式,識別系統硬體並完成硬體初始化,徹底摒棄讀各種中斷執行。EFI驅動並不是直接面向CPU的代碼,而是由EFI位元組碼編寫成,EFI位元組碼是專用於EFI的虛擬機器指令,需要在EFI驅動運行環境D__E下解釋運行,這樣EFI既可以實現通配,又提供了良好的兼容。此外,EFI完全是32位或64位,摒棄16位實模式,在EFI中就可以實現處理器的最大定址,因此可以在任何內存地址存放任何信息。另外,由於EFI的驅動開發非常簡單,基於EFI的驅動模型原則上可以使EFI接觸到所有硬體功能,在EFI上實現文件讀寫,網路瀏覽都是完全可能的。i,BIOS上的的CMOS設置程序在EFI上是作為一個個EFI程序來執行的,硬體設置是硬體設置程序、而啟動管理則是另一個程序,保存CMOS又是另一個程序,雖然它們在形式的Shell上是在一起的。

EFI在功能上完全等同於一個輕量化的OS(操作系統),但是EFI在制定時就定位到不足以成為專業OS的地位上,首先,它只是一個硬體和操作系統間的一個介面;其次,EFI不提供中斷訪問機制,EFI必須用輪詢的方式檢查並解釋硬體,較OS下的驅動執行效率較低,最後,EFI只有簡單的存儲器管理機制,在段保護模式下只將存儲器分段,所有程序都可以存取任何一段位置,不提供真實的保護服務。伴隨著EFI,一種全新的GUID磁碟分區系統(GPT)被引入支持,傳統MBR磁碟只能存在4個主分區,只有在創建主分區不足4個時,可以建立一個擴展分區,再在其上建立被系統識別的邏輯分區,邏輯分區也是有數量的,太多的邏輯分區會嚴重影響系統啟動,MBR硬碟分區最大僅支持2T容量,對於現在的大容量硬碟來說也是浪費。GPT支持任意多的分區,每個分區大小原則上是無限制的,但實際上受到OS的規定限制不能做到無限,不過比MBR的2T限制是非常重要的進步。GPT的分區類型由GUID表唯一指定,基本不可能出現重複,其中的EFI系統分區可以被EFI存取,用來存取部分驅動和應用程序,雖然這原則上會使EFI系統分區變得不安全,但是一般這裡放置的都是些「邊緣」數據,即使其被破壞,一般也不會造成嚴重後果,而且也能夠簡單的恢復回來。

當EFI發展到1.1的時候,英特爾決定把EFI公之於眾,於是後續的2.0吸引了眾多公司加入,EFI也不再屬於英特爾,而是屬於了Unified EFI Form的國際組織,EFI在2.0後也遂改稱為UEFI,UEFI,其中的EFI和原來是一個意思,U則是Unified(一元化、統一)的縮寫,所以UEFI的意思就是「統一的可擴展固件介面」,與前身EFI相比,UEFI主要有以下改進:

首先,UEFI具有完整的圖形驅動功能,之前的EFI雖然原則上加入了圖形驅動,但為了保證EFI和BIOS的良好過渡,EFI多數還是一種類DOS界面(仍然是640__480VGA解析度),只支持PS/2鍵盤操作(極少數支持滑鼠操作),不支持USB鍵盤和滑鼠。到了UEFI,則是擁有了完整的圖形驅動,無論是PS/2還是USB鍵盤和滑鼠,UEFI一律是支持的,而且UEFI在顯卡也支持GOP VBIOS的時候,顯示的設置界面是顯卡高解析度按640__480或1024__768顯示,因此畫面雖小但很清楚,但是這樣會導致屏幕周圍大片留黑,不過魚和熊掌不可兼得,除非UEFI默認窗口大小也是最高解析度。

其次,UEFI具有一個獨特的功能,安全啟動,而EFI是沒有安全啟動的,安全啟動(Secure Boot),實際上通俗的解釋是叫做固件驗證。開啟UEFI的安全啟動後,主板會根據TPM晶元(或者CPU內置的TPM)記錄的硬體簽名對各硬體判斷,只有符合認證的硬體驅動才會被載入,而Win8以後的Windows則是在操作系統載入的過程中對硬體驅動繼續查簽名,符合Windows記錄的硬體才能被Windows載入,這在一定程度上降低了啟動型程序在操作系統啟動前被預載入造成的風險,但是這也會造成系統安裝變得壟斷。

無論EFI還是UEFI,都必須要有預載入環境、驅動執行環境、驅動程序等必要部分組成,為了支持部分舊設備(如在UEFI下掛載傳統MBR硬碟,不支持UEFI啟動的顯卡在UEFI下仍然支持運行等),還需要一個CSM兼容性支持模塊、EFI或UEFI都是僅支持GPT磁碟引導系統的,下面就具體談一下EFI或UEFI啟動計算機的過程。

一般地,預載入環境和驅動執行環境是存儲在UEFI(UEFI BIOS)晶元中的,當打開電源開關時,電腦的主要部件都開始有了供電,與BIOS不同的是,UEFI預載入環境首先開始執行,負責CPU和內存(是全部容量)的初始化工作,這裡如出現重要問題,電腦即使有報警喇叭也不會響,因為UEFI沒有去驅動8255發聲,不過預載入環境只檢查CPU和內存,如果這兩個主要硬體出問題,屏幕沒顯示可以立即確定,另外一些主板會有提供LED提示,可根據CPU或內存亮燈大致判斷故障。

CPU和內存初始化成功後,驅動執行環境(D__E)載入,當D__E載入後,UEFI就具有了枚舉並載入UEFI驅動程序的能力,在此階段,UEFI會枚舉搜索各個硬體的UEFI驅動並相繼載入,完成硬體初始化工作,這相比BIOS的讀中斷載入速度會快的多,同樣如載入顯卡的UEFI驅動成功,電腦也會出現啟動畫面,硬體驅動全部載入完畢後,最後同BIOS一樣,也得去啟動操作系統。

在啟動操作系統的階段,同樣是根據啟動記錄的啟動順序,轉到相應設備(僅限GPT設備,如果啟動傳統MBR設備,則需要打開CSM支持)的引導記錄,引導操作系統並進入,這裡需要注意的是,UEFI在檢測到無任何操作系統啟動設備時,會直接進入UEFI設置頁面,而不是像BIOS那樣黑屏顯示相關信息。

綜上對BIOS和UEFI啟動計算機過程的敘述,可以概括為:BIOS先要對CPU初始化,然後跳轉到BIOS啟動處進行POST自檢,此過程如有嚴重錯誤,則電腦會用不同的報警聲音提醒,接下來採用讀中斷的方式載入各種硬體,完成硬體初始化後進入操作系統啟動過程;而UEFI則是運行預載入環境先直接初始化CPU和內存,CPU和內存若有問題則直接黑屏,其後啟動P__E採用枚舉方式搜索各種硬體並載入驅動,完成硬體初始化,之後同樣進入操作系統啟動過程。

此外,BIOS是16位彙編語言程序,只能運行在16位實模式,可訪問的內存只有1MB,而UEFI是32位或64位高級語言程序(C語言程序),突破實模式限制,可以達到要求的最大定址。

電腦新手必備維修常識:主板上常見英文標識解釋!

1.硬碟和軟碟機介面

PRIIDE和IDE1及SEC IDE和IDE2···表示硬碟和光碟機介面的主和副

FLOPPY和FDD1 ····· 表示軟碟機介面

注意:在介面周圍有針接順序接示,如1,2和33,34及39,40樣數字指示。我們使用的軟碟機線和硬碟線紅線靠近1的位置。

2.CPU插座

SOCKET-478和SOCKET 462,SOCKET 370··表示CPU的類型的管腳數。

3.內存插槽

DIMM0,DIMM1,和DDR1,DDR2,DDR3···表示使用的內存類型

4.電源介面

AT__1或AT__PWR ···20針AT__電源介面

AT__12V······CPU供電的專用12V介面(2黃2黑共4根)

AT__P5 ······內存供電介面(顏色為1紅,2橙,3黑,共6根)

5.風扇介面

CPU-FATN1····· CPU風扇

PWR-FAN1······電源風扇

CAS-FAN1和CHASSIS FAN和SYS FAN等···表示機箱風扇電源介面

FRONTFAN ······前置機箱風扇

REARFAN ·······後置機箱風扇

6.機箱面板介面

P_PANEL或FRONT PNL1···前置面板介面

RESET或RST ······· 複位

PWR_SW或PW_ON ······電源開

PWR_LED·········電源指示燈

ACPI_LED·········高級電源管理狀態指示燈

TUBRO_LED或TB_LED ····表示加速狀態指示燈

HD_LED或IDE_LED ·····硬碟指示燈

SCSILED·········SCSI硬碟工作狀態指示燈

HD+和HD-········硬碟指示燈的正負極,如MPD+和MPD-,PW+和PW-

SPEAKER和SPK······主板喇叭介面

BZ1··········峰鳴器

KB_LOCK和KEYLOCK···表示鍵盤鎖介面

TUBROS/W·······加速轉換開關介面

7.外設介面

LPT1和PARALL·····表示印表機介面

COM1和COM2······串列通訊埠,也是外圍MODEM介面,老的方形滑鼠介面

RJ45·········內置網卡介面

RJ11·········內置MODEM介面

USB或USB1及USB2,FNT USB等···表示主板前置或後置USB介面

MSE/KYBD······滑鼠和鍵盤介面

CD_IN1和JCD···· 表示CD音頻輸入介面

AU___IN1和JAU__···· 表示線路音頻輸入介面

JAUDIO或AUDIO····表示板載音頻輸出介面。如果你的音箱有前置耳機和話筒插孔時,並且其介面符合板載AUDIO介面,這時你就可以方便的同時使用前置和後置音頻輸出,不必來回地拔來拔去。

F_AUDIO······· 前置音頻輸入輸出介面

MODEMIN1······內置數據機輸入介面

關於 DIY 硬體全新工包 科普知識

主板、顯卡的全新工包是什麼意思?

在DIY硬體中,工包基本會出現在主板和顯卡以及電源上,尤其是主板和顯卡。所謂的「工包」就是沒有零售包裝盒的產品,硬體單獨只有一個防靜電袋包裝,也有的工包有牛皮紙簡易的包裝盒(非零售彩盒),通常這些產品會放置在一個大紙箱內,裡面有紙片將每一個硬體隔開,全新工包就更好理解了,也就是全新並且沒有零售包裝盒的產品,非零售產品,工包產品價格相比零售產品的便宜不少。

在知名硬體品牌中,例如華碩、技嘉、微星等,也存在工包的主板和顯卡產品,而這些工包產品主要是針對人群主要是網吧、DIY整機商等大批量採購裝機的人群,價格便宜,安裝的時候更方便,無需一個一個拆包裝。

可能會有用戶說,這和散片CPU是不是一個道理,也是沒有包裝,只有一個裸CPU,表面上是一個道理,但是大有不同。CPU散片主要在供貨 渠道 、質保、包裝不同,CPU性能、做工上沒有差別,但是工包的顯卡和主板在供貨渠道是相同的,正規渠道流出的產品,主要是面向的群體不同,質保通常和零售產品是相同的,但是做工用料上相比零售產品存在差異,出現用料縮水的現象,這也是工包產品便宜的主要原因,不只是沒有零售包裝盒那麼簡單。

談論到工包縮水產品,不得不說一下電腦整機,電腦整機為什麼不推薦,從目前市場來看,魚龍混雜,主要可以分為三類。

1、二手硬體組裝而成的一台電腦

停產硬體組裝的電腦,多為淘汰多年的i5、i7處理器,一般是intel第一代、二代、三代i5、i7處理器,型號一般是i5-750、i7-920、i5-2400、i5-3470等停產產品。要知道現在已經是intel第九代處理器了,每一代會有不同程度的升級,包括架構、工藝、核心、單核性能,雖然開頭都是i5、i7型號,可以說已經淘汰歷代i5、i7處理器還不如目前的低端產品,要知道,intel七代到八代已經有了40%性能提升,八代到九代也有著10%左右的性能提升。對於只認i5、i7處理器,而不知道代數的重要性的小白來說,被坑真的還蒙在鼓裡,看起來型號是i5、i7開頭,顯得很高端,但是與新產品性能對比,可能也就是入門產品的性能水平。

2、洋垃圾硬體組裝而成的一台電腦

洋垃圾其實也是二手,只是是伺服器淘汰下來的產品,它的優勢就是核心多,洋垃圾硬體組裝而成的電腦可以說是最可以「唬人」,什麼六核十二線程什麼吊打i5、i7,什麼喪盡天良的性能對比圖等,在忽悠小白面前什麼假話都說盡了。通常這些CPU基本都是E5、E、__開頭的型號,號稱是i5級、i7級、i9級,總之能寫多誇張就寫多誇張。這些洋垃圾雖然具有核心數量和線程數較多,但是架構偏老,工藝落後、發熱量大,單核性能偏弱,論性能來說,還不如目前在售的入門級CPU。一般在主板上會搭配淘汰魔改的__58、__79主板,像__58、__79這種LGA1366、LGA 2011介面的主板早淘汰了,市面上根本沒有全新貨,intel更不可能生產淘汰產品,都是小工廠回收的__79、__58晶元進行翻新的「新主板」,這類主機除了機箱是新的, 其它 不可能是新的。

3、縮水工包硬體組裝而成的一台電腦

說到這裡,又進行關於工包硬體的主題了,這種主機雖然採用的是全新目前在售的硬體,但是「水」依然很深,首先CPU不用說肯定是散片,甚至會摻雜雜牌或者三線品牌的產品,這一切都是為了降低成本。相信不少用戶發現有些電腦整機採用華碩等知名的主板,整機出現之類的知名品牌,像主板、顯卡、電源之類基本是工包產品,就拿華碩主板為例,號稱華碩四大神獸,例如DRAGON (龍)、 PI__IU (貔貅) 、BASALT (玄武) 、KYLIN (麒麟),這些也可以稱之為電商專供,其實就是工包,例如華碩B365M-BASALT(有些電商很聰明,直接不寫,就直接寫華碩B360M或者華碩B365M,不敢寫後綴的基本都是這種類型),都是屬於工包主板,價格比較低,在做工用料、供電相數、介面等方面有一定縮水,用料能省都省了,都是為了降低整機預算,而這些「工包」產品,被不少用戶稱之為「縮水」產品。

就像如下網上某款整機的主板,型號為華碩B365M-BASALT,就是屬於工包產品。

我們來看下工包的華碩B365M-BASALT和零售的華碩 TUF B365M-PLUS GAMING主板有什麼區別吧,如下圖所示。

從主板外觀上來看,相信大家可以一目了然,工包主板在沒有散熱裝甲,無疑在散熱和顏值上會差點,尺寸上,工包主板也縮小了不少,雖然都是基於M-AT__板型,華碩B365M-BASALT尺寸只有22.6 厘米 __ 18.5 厘米,而零售版的華碩 TUF B365M-PLUS GAMING尺寸為24.4 厘米 __ 24.1 厘米,尺寸上的縮水就意味著主板布局更加緊湊,例如少了兩根內存插槽、一根顯卡插槽、一個M.2插槽、兩個sata介面等等,總之基本能省都省了,做工用料基本一目了然,就不一一介紹了。還有尤為重要的供電部分,工包只有5相供電,而零售版的擁有7相供電,包括採用的電容等採用都是有所不同的。

而工包顯卡也類似主板這樣,主要是用料上的「縮水」,與零售版可能會存在用料、散熱、RGB燈效、PCB板、供電、顯示介面支持等區別。最大的區別主要反映在散熱和超頻能力上,散熱會相對差一些,超頻能力弱一些,如果零售最便宜的版本,稱之為丐版,那工包顯卡一定是丐中丐,丐中的霸主!

就像某彩虹家的網馳版本顯卡,就是屬於工包產品,如下圖所示,這款顯卡雖然是擁有定位中高端的RT__2060晶元,但是做工用料看起來甚至還不如千元級的顯卡。

電腦主板基礎實用知識相關文章:

★ 電腦主板的基礎知識大全

★ 電腦主板基礎知識大全

★ 主板常用基礎知識講解

★ 主板基礎應用知識大全

★ 電腦主板的常用知識

★ 電腦主板應用知識大全

★ 小白主板基礎知識掃盲

★ 電腦主板實用冷門知識

★ 電腦主板的科普知識大全

★ 【電腦硬體知識】:新手必備的四大電腦硬體基礎常識

在學delphi的中途再加java會不會太難

程序的能力是靠時間積累的.

使用不同的語言是表達形式.

你用DELPHI,再學JAVA,是換一種程序表達形式.

別擔心,我這裡有delphi裡面的組件,的所有教程.

Delphi的編碼規範

Santch

1.規範簡介

本規範主要規定Delphi源程序在書寫過程中所應遵循的規則及注意事項。編寫該規範的目的是使公司軟體開發人員的源代碼書寫習慣保持一致。這樣做可以使每一個組員都可以理解其它組員的代碼,以便於源代碼的二次開發記憶系統的維護。

2.單元的格式

2.1 基本要求

2.1.1 縮進

縮進就是在當源程序的級改變時為增加可讀性而露出的兩個空格。縮進的規則為每一級縮進兩個空格。不准許使用Tab。因為Tab會因為用戶所作的設置不同而產生不同的效果。當遇到begin 或進入判斷、循環、異常處理、with語句、記錄類型聲明、類聲明等的時侯增加一級, 當遇到end或退出判斷、循環、異常處理、with語句、記錄類型聲明、類聲明等的時侯減少一級。

2.1.2 Begin…End

begin語句和end語句在源程序中要獨佔一行,例如:

for I := 0 to 10 do begin //不正確的用法

end;

for I := 0 to 10 do //正確的用法

begin

end;

2.1.3空格

在操作符及邏輯判斷符號的兩端添加空格,例如:I := I + 1;,a and b 等,

但添加括弧時不需要空格。

例如:if ( ab )and( a錯誤的用法

if (a b) and (a c) then //正確的用法

2.1.4 變數

盡量不用縮寫,盡量用名詞,如有多個單詞則每個單詞的第一個字元一定要大寫;見名知意

所有模塊內全局變數必須用『F』為前綴。如果幾個模塊之間需要進行資料交換,則需要通過聲明屬性的方法來實現。

2.2單元說明

新建每一個新單元文件時,請先按如下格式定製單元說明

{*******************************************************

Copyright?(c)?2000-2004?*********公司技術開發部

Project:—該單元所屬的項目

Module:—該單元所屬的功能模塊

Describe:—該單元的功能

Author:—創建人

Date:—創建日期

Version版本號:

History`s Modification:—修改歷史區域

{*************************

Modify No:—修改編號

Modifier:—修改人

DateTime:—修改時間

Cause:—修改原因

Modify No:—修改編號

Modifier:—修改人

DateTime:—修改時間

Cause:—修改原因

*************************}

*******************************************************}

2.3 過程與函數的說明

{*******************************************************

PrcedureeName/FunctionName:

Input: a—輸入參數說明,b—輸入參數說明,c—輸入參數說明

Output: x—輸出參數說明

Const: s—常量說明,t—常量說明

var: x—變數說明, j—變數說明

Describe:—-功能描述

若該過程或函數不是該單元創建人所撰寫請在此後再加上以下幾項內容:

Author:

Date:

*******************************************************}

3.控制項的命名

控制項的名稱可使用以下簡寫,但所用簡寫於控制項名稱之間葯添加『_』:

Standard Tab

mm TMainMenu

pm TPopupMenu

mmi TMainMenuItem

pmi TPopupMenuItem

lbl TLabel

edt TEdit ; TSpinEdit ; TMaskEdit

mem TMemo

btn TButton ; TBitBtn ; TSpeedButton ; TSpinButton

cb TCheckBox

rb TRadioButton

lb TListBox

cb TComboBox

scb TScrollBar

gb TGroupBox

rg TRadioGroup

pnl TPanel

cl TCommandList

Additional Tab

sg TStringGrid

dg TDrawGrid

img TImage

shp TShape

bvl TBevel

sbx TScrollBox

clb TCheckListbox

spl TSplitter

stx TStaticText

cht TChart

Win32 Tab

tbc TTabControl

pgc TPageControl

il TImageList

re TRichEdit

tbr TTrackBar

prb TProgressBar

ud TUpDown

hk THotKey

ani TAnimate

dtp TDateTimePicker

tv TTreeView

lv TListView

hdr THeaderControl

stb TStatusBar

tlb TToolBar

clb TCoolBar

System Tab

tm ??TTimer

pb ??TPaintBox

mp ?TMediaPlayer

olec ?TOleContainer

ddcc ?TDDEClientConv

ddci ?TDDEClientItem

ddsc ?TDDEServerConv

ddsi ?TDDEServerItem

?

Samples Tab

gg?? TGauge

cg?? TColorGrid

spb?

spe?

dol? TDirectoryOutline

cal? TCalendar

ibea? TIBEventAlerter

?

ActiveX Tab

cfx? TChartFX

vsp?? TVSSpell

f1b?? TF1Book

vtc?? TVTChart

grp?? TGraph

?

Win31 Tab

dbll?? TDBLookupList

dblc?? TDBLookupCombo

ts???? TTabSet

ol???? TOutline

tnb??? TTabbedNoteBook

nb???? TNoteBook

hdr??? THeader

flb??? TFileListBox

dlb??? TDirectoryListBox

dcb?? TDriveComboBox

fcb?? TFilterComboBox

Midas Tab

prv?? TProvider

cds?? TClientDataSet

qcds?? TQueryClientDataSet

dcom? TDCOMConnection

olee?? TOleEnterpriseConnection

sck?? TSocketConnection

rms?? TRemoteServer

mid?? TmidasConnection

Internet Tab

csk ?TClientSocket

ssk ?TServerSocket

wbd ?TWebDispatcher

pp ???TPageProducer

tp ???TQueryTableProducer

dstp? ?TDataSetTableProducer

nmdt ??TNMDayTime

nec ???TNMEcho

nf ????TNMFinger

nftp ???TNMFtp

nhttp ??TNMHttp

nMsg ??TNMMsg

nmsg ??TNMMSGServ

nntp ???TNMNNTP

npop ???TNMPop3

nuup ???TNMUUProcessor

smtp ???TNMSMTP

nst ????TNMStrm

nsts ???TNMStrmServ

ntm ???TNMTime

nudp ??TNMUdp

psk ???TPowerSock

ngs ???TNMGeneralServer

html? ?THtml

url? ??TNMUrl

sml ??TSimpleMail

Data Access Tab

ds? ?TDataSource

tbl? ?TTable

qry? ?TQuery

sp ??TStoredProc

db ??TDataBase

ssn? ?TSession

bm ??TBatchMove

usql ??TUpdateSQL

Data Controls Tab

dbg? ?TDBGrid

dbn ??TDBNavigator

dbt ??TDBText

dbe ??TDBEdit

dbm? ?TDBMemo

dbi ??TDBImage

dblb ??TDBListBox

dbcb? ?TDBComboBox

dbch? ?TDBCheckBox

dbrg ??TDBRadioGroup

dbll ??TDBLookupListBox

dblc ??TDBLookupComboBox

dbre ??TDBRichEdit

dbcg ??TDBCtrlGrid

dbch ??TDBChart

Decision Cube Tab

dcb ??TDecisionCube

dcq ??TDecisionQuery

dcs ??TDecisionSource

dcp ??TDecisionPivot

dcg ??TDecisionGrid

dcgr ?TDecisionGraph

QReport Tab

qr ??TQuickReport

qrsd ?TQRSubDetail

qrb ??TQRBand

qrcb ??TQRChildBand

qrg ??TQRGroup

qrl ??TQRLabel

qrt ??TQRText

qre ??TQRExpr

qrs? ?TQRSysData

qrm ??TQRMemo

qrrt ??TQRRichText

qrdr? ?TQRDBRichText

qrsh ??TQRShape

qri ???TQRImage

qrdi ??TQRDBMImage

qrcr? ?TQRCompositeReport

qrp ??TQRPreview

qrch TQRChart

Dialogs Tab

OpenDialog ???????TOpenDialog

SaveDialog ???????TSaveDialog

OpenPictureDialog ?TOpenPictureDialog

SavePictureDialog ??TSavePictureDialog

FontDialog ????????TFontDialog

ColorDialog ???????TColorDialog

PrintDialog ????????TPrintDialog

PrinterSetupDialog? ?TPrintSetupDialog

FindDialog ?????????TFindDialog

ReplaceDialog ??????TReplaceDialog

4.修改的要求

4.1修改歷史記錄

對源文件進行經過批准的修改時,修改者應在程序文件頭加入修改歷史項。在以後的每一次修改時,修改者都必須在該項目中填寫下列信息:

Modifier:

DateTime:

Cause:

Comment:

4.2新增代碼行

新增代碼行的前後應有注釋行說明。

// ab 修改人; 修改時間; 修改說明。

新增代碼行

// ae

4.3刪除代碼行

刪除代碼行的前後用注釋行說明。

//db 修改人,修改時間,修改說明。

//要刪除的代碼行(將要刪除的語句進行注釋)

//de

4.4修改代碼行

修改代碼行以刪除代碼行後在新增代碼行的方式進行。

//mb 修改人,修改時間,修改說明。

//pre 修改前的代碼行

修改後的代碼行

//me

5.文件的命名

項目文件必須使用一個有意義的名字。例如: Delphi中系統信息的項目文件被命名為 SysInfo.dpr。

3.7.2 Form 文件

同Form的名稱相一致:例如:Form的名稱為frrmMain則Form文件的名稱就為frmMain.dfm。對應的Unit文件就是frmMain.pas

3.7.3 Data Module 文件

data module文件的命名應該有意義,並且使用『DM』作為前綴。例如: 用戶data module 被命名為『dmCustomers.dfm』。 對應的Unit文件就是rdmCustomers.pas

3.7.4 Remote Data Module 文件

remote data module文件的命名應該有意義,並且使用『RDM』作為前綴。例如:用戶remote data module 被命名為『rdmCustomers.dfm』。 對應的Unit文件就是rdmCustomers.pas

3.7.5普通 Unit文件

unit文件的命名應該有意義,並且使用『u』作為前綴。例如: 通用unit 被命名為『uGeneral.pas』。

祝你好運!!!!!!!!!!!!!!!!!!

單片機對講機原理

方案一 以單片機為核心處理器的DMR對講機方案(MSP430F149+AMBE1000)

1.工作原理

發射時,由麥克送來的模擬語音經CSP1027進行A/D轉換,由聲碼器AMBE1000進行語音壓縮,交單片機MSP430F149進行協議填充組幀,送到CC1101進行調製後發射。接收時,由CC1101解調出來的碼流經MSP430F149進行幀恢復,交由聲碼器進行解壓,數據經CSP1027進行D/A轉換為模擬語音信號。

2.關鍵器件

微控制器採用TI公司的MSP430F149,它是16位超低功耗、混合信號微控制器,採用「馮·諾依曼」結構,可用JTAG(一種標準測試介面)進行模擬調試。

晶元的電源電壓為(1.8~3.6)V,在RAM數據保持方式下耗電僅0.1uA,活動模式耗電250 uA/MIPS(每秒百萬條指令數)。運算時由於本單片機採用16位RISC(精簡指令集計算機),一個時鐘周期可以執行一條指令,而傳統的單片機要12個時鐘周期才執行一條指令。工作在8MHz的晶振頻率時,指令速度可達8MIPS,而同樣這個指令速度,16位處理器比8位處理器高遠不止兩倍。

概述

聲碼器AMBE1000在國內已有產品,價格比較合理。CC1101的靈敏度為-116dBm(1.2kbps,1%數據包誤碼率,工作在433MHz時),與國內的對講機可用靈敏度-120dBm相比偏低,但符合歐盟的CE標準規定小於-107dBm.另外,射頻模塊的功率輸出僅12dBm(16mW),所以本方案僅適用短距離範圍的通信。提高靈敏度可考慮用器件ADF7021作為射頻模塊。

方案二 以DSP+MCU為核心處理器的對講機方案

1.工作原理

方案以MSP430為中心系統來完成數據的收、發控制等工作,系統採用MSP430中 USART模塊的SPI同步通信模式。在接收過程中,首先接收來自射頻晶元的FSK數據,解調後由MSP430將數據幀的同步域、尾域、ID域以及命令位元組去除後,數據發至C5402進行去壓縮處理,數據交AIC23進行D/A轉換為語音信號。在發送過程中,首先由AIC23進行A/D轉換,數據交C5402將語音壓縮,再由微控制器MSP430進行協議填充,加上頭域、尾域、ID域以及命令位元組形成數據幀,然後控制射頻模塊將數據發送。

2.關鍵器件

TMS320C5402是TI公司於1996年推出的一種定點DSP晶元,採用先進的修正哈佛結構和8匯流排結構,使處理器的性能大大提高。其獨立的程序和數據匯流排允許同時訪問程序存儲器和數據存儲器,實現高速並行操作。如,可以在一條指令中同時執行3次讀操作和1次寫操作。TMS320C5402的運行速度為40MIPS,指令周期為25ns.此外,還可以在數據匯流排與程序匯流排之間相互傳送數據。從而使處理器具有單個周期內同時執行算術運算、邏輯運算、位移操作、乘法累加運算以及訪問程序、數據存儲等強大功能。

概述

採用DSP方案時,免去選用語音晶元聲碼器的煩惱,提高了數字對講機對語音處理的能力,可讓語音編碼的演算法盡量優化,從而使對講機語音信號的處理更具通用性和擴展性。本方案是以DSP為開發平台,經過連續可變斜率增量(CVSD)調製編解碼得到語音信號的清晰度和自然度好,但軟體開發工作量大。CC1000不支持4FSK調製與解調,本方案不適用於DMR與dPMR協議。另外CC1000的接收可用靈敏度為-110dBm,國內對講機廠家可能嫌低。

方案三 以單片機為核心處理器的dPMR對講機方案(CMX618+CMX7141)

1.工作原理

發射時,麥克送來的模擬語音經CMX618內部進行增益調節,A/D轉換和壓縮處理,然後通過SPI(串列外圍設備介面)進入CMX7141基帶處理器,在微控制器LPC2138的控制和管理下經CMX7141晶元內部進行信道編碼,dPMR協議棧打包,數字濾波以及4FSK調製,調製編碼後的語音數據經CMX7141晶元的MOD1/2管腳分別輸出給外部的發射VCO和壓控溫補參考時鐘,經兩點調製輸出射頻載波給發射功放,併到天線輸出。

接收時,CMX7141對基於超外差射頻接收模塊送來的4FSK解調信號在微控制器LPC2138的控制和管理下進行4FSK解調,dPMR拆包,信道解碼,最終得到語音編碼數據,經SPI串口送給CMX618進行語音解壓縮並恢復語音信號。

2.關鍵器件

語音編解碼片CMX618是CML微電子(新加坡)私人有限公司的產品,晶元由音頻壓縮/解壓器、RALCWI編解碼器、前向糾錯編解碼器和其他特殊功能模塊幾部分組成。

RALCWI是一種魯棒的先進的複雜性波形插入技術,與其他語音編解碼技術不同,它使用獨有的信號分解和參數編碼方法,可確保在較高的壓縮率下有較好的語音質量。

在聲碼器中,採用RALCWI技術實現的語音質量與編碼速率在4kbps以上的標準聲碼器話音質量相當。

概述

本方案優點是開發時的靈活性高,模擬與數字可雙模設計,且同一個硬體開發平台能滿足不同的數字對講機標準,支持多種語音聲碼器,射頻的接收靈敏度可做得較高達到-118dBm(誤碼率為1%時)。發射功率0.5W,功率容易提升。

缺點是前期的軟體開發成本高並有一定難度,射頻模塊ATB010只支持dPMR的EN301,166標準,不支持DMR.

方案四 以MCU+DSP的DMR對講機方案(MSP430FG4619+VC5510)

1.工作原理

發射時,由麥克送來的模擬語音經模數轉換器AD73311採樣成數字信號,AMBE2000對語音數字信號進行壓縮編碼,數字信號由VC5510進行DMR通信協議填充組成幀信號和4FSK的調頻波成形,最後由微控制器MCU進行D/A轉換,送往射頻模塊進行發射調製,實現發射。

接收時,MCU將射頻模塊送來已解調數據進行A/D轉換,經VC5510進行拆幀,交AMBE2000進行解壓,數據由AD73311數模轉換為語音信號。

微控制器MSP430FG4619是整個系統的控制中心,人機介面如鍵盤、顯示器與MCU直接連接。微控制器實現對射頻模塊的控制,包括基帶信號的發送與接收、射頻頻率點的控制、信道檢測等,MCU還負責DMR協議的高層信令控制、人機介面的互通等。

另外,請注意微控制器還要完成基帶信號的AD/DA轉換功能。

2.關鍵器件

AMBE2000TM聲碼器是美國語音公司DVSI推出的一款適應性強、高性能、單晶元的語音壓縮編解碼器。它能在低速率下提供優良的語音質量,並實現了實時的、全雙工的標準設定的AMBE語音壓縮軟體演算法。

大量的評估顯示,這款聲碼器具有在一般數據速率下提供同數字蜂窩系統一樣性能的能力。AMBE在2.4kbps速率下保持自然語音質量和清晰度,由於AMBE演算法複雜性低,所以它能夠完全集成在成本低、功耗低的晶元上。

概述

方案簡單,實用。

軟體開發中,微控制器和數字處理器的程序對DMR協議的分層必須有清晰的概念,正確的程序設計是硬體實現的保證。聲碼器的選用有較大的餘地。

方案五 以ARM+DSP的DMR對講機方案

1.工作原理

發射時,由麥克送來的話音信號由數模轉換器AD73311進行採樣,數據由聲碼器進行壓縮,OMAP5910內的DSP與ARM對壓縮的數據進行協議添加與控制,形成4FSK波形,數模轉換器AIC23將4FSK數字波形模擬化後進行射頻調製,調頻載波由天線發射。

接收時,射頻模塊對接收的模擬信號進行解調,模擬信號交AIC23進行數字化處理,OMAP5910對接收到的數據進行信道解碼和拆幀,幀信號交聲碼器進行解壓,數據由AD73311還原為模擬語音信號。

2.關鍵器件

OMAP5910是一款嵌入式雙核處理器,它集成了高性能的ARM925、TMS320C55x DSP核和已經得到的廣泛應用的各種介面與外設,具有較強的處理能力、較低的功耗和較高的信價比。ARM處理器內核用於DMR協議的處理與系統控制,DSP內核用於完成數字信號的實時處理。

OMAP5910及其設計套件具有多個目標應用市場,提供多媒體功能、改善人機界面並延長電池壽命。

概述

從技術上講,雙核處理器方案與前面介紹的DSP+MCU相比,可以降低系統體積,減少電路的複雜性,對通信協議能作較好的兼容,升級空間大。聲碼器的應用有可選國產晶元的餘地。

缺點是前期的軟體開發工作量大,ARM與DSP間的協調工作要深入研究,以免浪費處理器的資源。此外,由於OMAP的功能十分強大,該平台還可以有更多的應用,如加入視頻、娛樂等功能。

方案六

1.工作原理

發射時,麥克送來的模擬語音經WM8758B進行A/D轉換,送到SCT3252進行壓縮處理,經SCT3252進行dPMR協議處理後送到WM8758B的D/A轉換單元調製成4FSK信號,經兩點調製輸出射頻載波給發射功放,送天線輸出。

接收時,WM8758B對射頻模擬信號進行A/D轉換,送到SCT3252進行4FSK解調,dPMR拆包,信道解碼,最終得到語音編碼數據,經解碼處理後把語音數據送到WM8758B進行D/A轉換,經由外部放大電路送入喇叭還原成話音。

2.關鍵器件

SCT3252是上海士康公司生產的語音編解碼及dPMR協議棧處理晶元。具有較好的語音質量及較高的接收靈敏度(可達-126dBm)。

概述

本方案的特點是語音編解碼及dPMR協議棧都集成在SCT3252中,大大減少了控制單元MCU的工作量,另外SCT3252為LQFP100封裝,焊接方便。整個方案簡單,軟體升級的空間大。本方案可以實現數模兼容,通過開關可方便進行數字與模擬通信之間的切換。

WM8758B只起模數轉換作用,廠家認為,把它集成進SCT3252是指日可待的事。

JAVA中怎麼給下拉組件添加事件監聽,使在下來菜單中所選的返回到文本組件中?

你的程序我幫你改好了,你看看吧。

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class test_4 implements ItemListener{

String str[]={“目標”,”技能”,”經驗”,”教育背景”,”證書”};

JTextField text=new JTextField(10);

JComboBox cbx=new JComboBox(str);

JFrame m=new JFrame(“習題4”);

test_4(){

Container c=m.getContentPane();

m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

m.setSize(300,300);

m.setVisible(true);

//int i=0;

JPanel pnl=new JPanel();

JPanel pnl1=new JPanel();

pnl.setBackground(Color.yellow);

pnl.setSize(100, 100);

pnl.setLocation(5, 5);

c.add(pnl,BorderLayout.NORTH);

pnl1.setSize(110, 110);

pnl1.setBackground(Color.pink);

pnl1.setLocation(50, 50);

c.add(pnl1,BorderLayout.CENTER);

cbx.setSize(20, 20);

pnl.add(cbx);

text.setSize(100,100);

text.setHorizontalAlignment(JTextField.CENTER);

pnl1.add(text);

//cbx.addComponentListener(m);

cbx.addItemListener(this);

}

public static void main(String[] args) {

new test_4();

}

public void itemStateChanged(ItemEvent arg0) {

text.setText((String)cbx.getSelectedItem());

}

}

原創文章,作者:EEFPV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329473.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EEFPV的頭像EEFPV
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論