導航:首頁 > 操作系統 > tta單片機

tta單片機

發布時間:2022-11-17 21:39:35

『壹』 求一個好使的 ch451 控製程序 自己在網上找了幾個 都不怎麼好用 求高手 好用給20分!

/*將下面文件粘貼,起名為 CH451.h 並存在你寫的程序文件夾下 在你的程序前寫#include"CH451.h"就可以用下面的函數了,在主函數中必須先初始化CH451,即先寫 CH451_Init();
再寫你要顯示的內容,有三種方法如下
// LED_printf(uchar *LED_Data); //添加數據的字元串地址 例如:uchar led[8]={7,6,5,4,3,2,1,0};
LED_printc(uchar p,uchar LED_data); //對單個數據顯示 第一位是位置,第二位是數值 例如:LED_printc(2,3);
LED_prints(unsigned char *led_string); //直接顯示字元串地址
最簡單的 LED_prints("1234567");
還有最總要的下面的管腳需要改
怎麼連的怎麼改

*/

#ifndef __CH451_H__
#define __CH451_H__

/*
// LED_printf(uchar *LED_Data); //添加數據的字元串地址 例如:uchar led[8]={7,6,5,4,3,2,1,0};
LED_printc(uchar p,uchar LED_data); //對單個數據顯示 第一位是位置,第二位是數值 例如:LED_printc(2,3);
LED_prints(unsigned char *led_string); //直接顯示字元串地址 例如:LED_prints("123456");
*/
/************************************************************/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char

#define CH451_DIG0 0x0800 //對CH451輸出管腳進行定義
#define CH451_DIG1 0x0900
#define CH451_DIG2 0x0a00
#define CH451_DIG3 0x0b00
#define CH451_DIG4 0x0c00
#define CH451_DIG5 0x0d00
#define CH451_DIG6 0x0e00
#define CH451_DIG7 0x0f00

sbit DOUT=P1^4; //串列介面數據輸出
sbit LOAD=P1^5; //串列數據載入
sbit DIN =P1^6; //串列數據輸入
sbit DCLK=P1^7; //串列數據時鍾線

uchar key=1,keyold=2;
/************************針對m2t1板BCD轉換*******************
文件名:unsigned char BCD[]
功能:由於SEG0~7與a~dp不對應,編驅動轉換
入口參數:無
出口參數:無
************************************************************/
unsigned char code BCD[]={0x77,0x21,0x5d,0x6d, //0,1,2,3,
0x2b,0x6e,0x7e,0x25, //4,5,6,7,
0x7f,0x6f,0x3f,0x7a, //8,9,a,b,
0x58,0x79,0x5e,0x1e, //c,d,e,f,
0x00,0xda,0x24,0xbc}; //0x10無顯示,0x11度,0x12雙點,0x13_N

/*********************向CH451發送指令************************
名稱:void CH451_Write(uint dat,uint length)
功能:向CH451發送指令
入口參數:uint dat 需要發送的指令
uint length 發送指令(dat)的長度
出口參數:無
************************************************************/
void CH451_Write(unsigned dat) //uint length
{
uint i;
LOAD=1; //串列數據載入端置1
for(i=12;i>0;i--)
{
DCLK=0; //串列數據時鍾線 置0
if((dat&0x01)==0x01) //判斷data最低位是否為1
DIN=1; // data最低位為1的話就向din(串列數據輸入)寫1
else DIN=0; // data最低位為0的話就向din(串列數據輸入)寫0
DCLK=1; //串列數據時鍾線 置1
dat=dat>>1; //data向右移動一位
}
LOAD=0; //串列數據載入端置1
LOAD=1; //給load一個上升沿使data數據全部導入CH451
}

/***********************數碼顯示****************************
名稱:void LED_Display(LED_Data1,LED_Data2,LED_Data3,LED_Data4,
LED_Data5,LED_Data6,LED_Data7,LED_Data8)
功能:數碼顯示橫向位置轉換

入口參數:LED_Data1,LED_Data2,LED_Data3,LED_Data4,LED_Data5,
LED_Data6,LED_Data7,LED_Data8 需要顯示的代碼

出口參數:無
************************************************************/
void LED_printf(uchar *LED_Data)
{
CH451_Write(CH451_DIG0|BCD[ LED_Data[7] ]);//第8位顯示,LED_Data8位要顯示的內容
CH451_Write(CH451_DIG1|BCD[ LED_Data[6] ]);//第7位顯示
CH451_Write(CH451_DIG2|BCD[ LED_Data[5] ]);//第6位顯示
CH451_Write(CH451_DIG3|BCD[ LED_Data[4] ]);//第5位顯示
CH451_Write(CH451_DIG4|BCD[ LED_Data[3] ]);//第4位顯示
CH451_Write(CH451_DIG5|BCD[ LED_Data[2] ]);//第3位顯示
CH451_Write(CH451_DIG6|BCD[ LED_Data[1] ]);//第2位顯示
CH451_Write(CH451_DIG7|BCD[ LED_Data[0] ]);//第1位顯示
}

void LED_printc(uchar p,uchar LED_data)
{switch(p){
case 8:CH451_Write(CH451_DIG0|BCD[ LED_data ]);break;//第8位顯示,LED_Data8位要顯示的內容
case 7:CH451_Write(CH451_DIG1|BCD[ LED_data ]);break;//第7位顯示
case 6:CH451_Write(CH451_DIG2|BCD[ LED_data ]);break;//第6位顯示
case 5:CH451_Write(CH451_DIG3|BCD[ LED_data ]);break;//第5位顯示
case 4:CH451_Write(CH451_DIG4|BCD[ LED_data ]);break;//第4位顯示
case 3:CH451_Write(CH451_DIG5|BCD[ LED_data ]);break;//第3位顯示
case 2:CH451_Write(CH451_DIG6|BCD[ LED_data ]);break;//第2位顯示
case 1:CH451_Write(CH451_DIG7|BCD[ LED_data ]);break;//第1位顯示
}
}
void LED_prints(unsigned char *led_string)
{
unsigned char i=0;
while(led_string[i]!=0x00)
{if(led_string[i]>='0'&&led_string[i]<='9')
LED_printc(i+1,led_string[i]-0x30);
else if(led_string[i]>='a'&&led_string[i]<='z')
LED_printc(i+1,led_string[i]-'a'+10);
i++;
}
}

/************************鍵盤傳出准備**********************
文件名:void KeyStart()
功能:傳送0111 到DIN
入口參數:無
出口參數:無
************************************************************/
void KeyStart()
{ uint i,dat=0x07;
LOAD=1; //串列數據載入端置1
for(i=4;i>0;i--)
{
DCLK=0; //串列數據時鍾線 置0
if((dat&0x01)==0x01) //判斷data最低位是否為1
DIN=1; // data最低位為1的話就向din(串列數據輸入)寫1
else DIN=0; // data最低位為0的話就向din(串列數據輸入)寫0
DCLK=1; //串列數據時鍾線 置1
dat=dat>>1; //data向右移動一位
}
LOAD=0; //串列數據載入端置1
LOAD=1; //給load一個上升沿使data數據全部導入CH451
}

/************************對傳出數據對應轉換******************
文件名:CH451_ReadChange()
功能:轉換輸入7位到數字
入口參數:無
出口參數:無
************************************************************/
CH451_ReadChange(uint dat)
{ uint a;
switch(dat)
{
case 0x7f: a=0; break;//0鍵按下按鍵
case 0x7e: a=1; break;//1鍵按下按鍵
case 0x7d: a=2; break;//2鍵按下按鍵
case 0x7c: a=3; break;//3鍵按下按鍵
case 0x7b: a=4; break;//4鍵按下按鍵
case 0x7a: a=5; break;//5鍵按下按鍵
case 0x79: a=6; break;//6鍵按下按鍵
case 0x78: a=7; break;//7鍵按下按鍵
/*
case 0x3f: a=10; break;//0鍵釋放按鍵
case 0x3e: a=11; break;//1鍵釋放按鍵
case 0x3d: a=12; break;//2鍵釋放按鍵
case 0x3c: a=13; break;//3鍵釋放按鍵
case 0x3b: a=14; break;//4鍵釋放按鍵
case 0x3a: a=15; break;//5鍵釋放按鍵
case 0x39: a=16; break;//6鍵釋放按鍵
case 0x38: a=17; break;//7鍵釋放按鍵
*/
default: a=8; break;
}
return a;
}
/************************鍵盤傳出CH451_Read()****************************
文件名:CH451_Read()
功能:傳送輸入7位
入口參數:按鍵
出口參數:鍵值00~07 10~17
************************************************************************/
CH451_scan()
{ uint i,dat=0;
KeyStart();
for(i=7;i>0;i--)
{ DCLK=1;

if(DOUT==1)
dat=dat|0x01;

DCLK=0;
dat=dat<<1;
}
dat=dat>>1;
DOUT=1;
dat=CH451_ReadChange(dat);
key=dat;
if(key!=8)
keyold=key;
return dat;
}

/*********************CH451初始化****************************
名稱:void CH451_Init()
功能:CH451初始化,設置CH451選擇4線串列介面
入口參數:無
出口參數:無
************************************************************/
void CH451_Init()
{
DIN=0; // 給DIN一個高電平 設置CH451選擇4線串列介面
DIN=1;
DCLK=1;//置為默認的高電平
LOAD=1;
DOUT=1;//置為輸入

CH451_Write(0x403); //設定系統參數,數碼顯示使能
CH451_Write(0x508); // 最末位為亮度調節

}

#endif

『貳』 MP3的工作原理是什麼

1.便攜MP3播放器的俗稱.
用來播放MP3格式音樂(現在可以兼容wma,wav等格式)的一種攜帶型的播放器.攜帶型MP3播放器最初由韓國人文光洙和黃鼎夏(Moon & Hwang)於1997年發明,並申請了相關專利.

MP3格式技術發展詳解
2.MP3作為一種音樂格式
MPEG-1 Audio Layer 3,經常稱為MP3,是當今較流行的一種數字音頻編碼和有損壓縮格式,它設計用來大幅度地降低音頻數據量,而對於大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。它是在1991年由位於德國埃爾朗根的研究組織Fraunhofer-Gesellschaft的一組工程師發明和標准化的。

MPEG-1 Audio Layer 3,經常稱為MP3,是當今較流行的一種數字音頻編碼和有損壓縮格式,它設計用來大幅度地降低音頻數據量,而對於大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。它是在1991年由位於德國埃爾朗根的研究組織Fraunhofer-Gesellschaft的一組工程師發明和標准化的。
概觀
MP3是一個數據壓縮格式。它丟棄掉脈沖編碼調制(PCM)音頻數據中對人類聽覺不重要的數據(類似於JPEG是一個有損圖像壓縮),從而達到了小得多的文件大小。
在MP3中使用了許多技術其中包括心理聲學以確定音頻的哪一部分可以丟棄。MP3音頻可以按照不同的位速進行壓縮,提供了在數據大小和聲音質量之間進行權衡的一個范圍。
MP3格式使用了混合的轉換機制將時域信號轉換成頻域信號:
* 32波段多相積分濾波器(PQF)
* 36或者12 tap 改良離散餘弦濾波器(MDCT);每個子波段大小可以在0...1和2...31之間獨立選擇
* 混疊衰減後處理
根據MPEG規范的說法,MPEG-4中的AAC(Advanced audio coding)將是MP3格式的下一代,盡管有許多創造和推廣其他格式的重要努力。然而,由於MP3的空前的流行,任何其他格式的成功在目前來說都是不太可能的。MP3不僅有廣泛的用戶端軟體支持,也有很多的硬體支持比如攜帶型媒體播放器(指MP3播放器)DVD和CD播放器。
發展
MPEG-1 Audio Layer 2編碼開始時是德國Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt(後來稱為Deutsches Zentrum für Luft- und Raumfahrt, 德國太空中心)Egon Meier-Engelen管理的數字音頻廣播(DAB)項目。這個項目是歐盟作為EUREKA研究項目資助的,它的名字通常稱為EU-147。EU-147 的研究期間是1987年到1994年。
到了1991年,就已經出現了兩個提案:Musicam(稱為Layer 2)和ASPEC(自適應頻譜感知熵編碼)。荷蘭飛利浦公司、法國CCETT和德國Institut für Rundfunktechnik提出的Musicam方法由於它的簡單、出錯時的健壯性以及在高質量壓縮時較少的計算量而被選中。基於子帶編碼的Musicam 格式是確定MPEG音頻壓縮格式(采樣率、幀結構、數據頭、每幀采樣點)的一個關鍵因素。這項技術和它的設計思路完全融合到了ISO MPEG Audio Layer I、II 以及後來的Layer III(MP3)格式的定義中。在Mussmann教授(University of Hannover)的主持下,標準的制定由Leon van de Kerkhof(Layer I)和Gerhard Stoll(Layer II)完成。
一個由荷蘭Leon Van de Kerkhof、德國Gerhard Stoll、法國Yves-François Dehery和德國Karlheinz Brandenburg 組成的工作小組吸收了Musicam和ASPEC的設計思想,並添加了他們自己的設計思想從而開發出了MP3,MP3能夠在128kbit/s達到MP2 192kbit/s 音質。
所有這些演算法最終都在1992年成為了MPEG的第一個標准組MPEG-1的一部分,並且生成了1993年公布的國際標准ISO/IEC 11172-3。MPEG音頻上的更進一步的工作最終成為了1994年制定的第二個MPEG標准組MPEG-2標準的一部分,這個標准正式的稱呼是1995年首次公布的ISO/IEC 13818-3。
編碼器的壓縮效率通常由位速定義,因為壓縮率依賴於位數(:en:bit depth)和輸入信號的采樣率。然而,經常有產品使用CD參數(44.1kHz、兩個通道、每通道16位或者稱為2x16位)作為壓縮率參考,使用這個參考的壓縮率通常較高,這也說明了壓縮率對於有損壓縮存在的問題。
Karlheinz Brandenburg使用CD介質的Suzanne Vega的歌曲Tom』s Diner來評價MP3壓縮演算法。使用這首歌是因為這首歌的柔和、簡單旋律使得在回放時更容易聽到壓縮格式中的缺陷。一些人開玩笑地將Suzanne Vega稱為「MP3之母」。來自於EBU V3/SQAM參考CD的更多一些嚴肅和critical 音頻選段(glockenspiel, triangle, accordion, ...)被專業音頻工程師用來評價MPEG音頻格式的主觀感受質量。

MP3走向大眾
為了生成位兼容的MPEG Audio文件(Layer 1、Layer 2、Layer 3),ISO MPEG Audio委員會成員用C語言開發的一個稱為ISO 11172-5的參考模擬軟體。在一些非實時操作系統上它能夠演示第一款壓縮音頻基於DSP的實時硬體解碼。一些其它的MPEG Audio實時開發出來用於面向消費接收機和機頂盒的數字廣播(無線電DAB和電視DVB)。
後來,1994年7月7日Fraunhofer-Gesellschaft發布了第一個稱為l3enc的MP3編碼器。
Fraunhofer開發組在1995年7月14日選定擴展名.mp3(以前擴展名是.bit)。使用第一款實時軟體MP3播放器Winplay3(1995年9月9日發布)許多人能夠在自己的個人電腦上編碼和回放MP3文件。由於當時的硬碟相對較小(如500MB),這項技術對於在計算機上存儲娛樂音樂來說是至關重要的。
MP2、MP3與網際網路
1993年10月,MP2(MPEG-1 Audio Layer 2)文件在網際網路上出現,它們經常使用Xing MPEG Audio Player播放,後來又出現了Tobias Bading為Unix開發的MAPlay。MAPlay於199年2月22日首次發布,現在已經移植到微軟視窗平台上。
剛開始僅有的MP2編碼器產品是Xing Encoder和CDDA2WAV,CDDA2WAV是一個將CD音軌轉換成WAV格式的CD抓取器。
Internet Underground Music Archive(IUMA)通常被認為是在線音樂革命的鼻祖,IUMA是網際網路上第一個高保真音樂網站,在MP3和網路流行之前它有數千首授權的MP2錄音。
從1995年上半年開始直到整個九十年代後期,MP3開始在網際網路上蓬勃發展。MP3的流行主要得益於如Nullsoft於1997年發布的Winamp和Napster於1999年發布的Napster這樣的公司和軟體包的成功,並且它們相互促進發展。這些程序使得普通用戶很容易地播放、製作、共享和收集MP3文件。
關於MP3文件的點對點技術文件共享的爭論在最近幾年迅速蔓延—這主要是由於壓縮使得文件共享成為可能,未經壓縮的文件過於龐大難於共享。由於MP3文件通過網際網路大量傳播一些主要唱片廠商通過法律起訴Napster來保護它們的版權(參見知識產權)。
如iTunes Music Store這樣的商業在線音樂發行服務通常選擇其它或者專有的支持數字版權管理(DRM)的音樂文件格式以控制和限制數字音樂的使用。支持DRM的格式的使用是為了防止受版權保護的素材免被侵犯版權,但是大多數的保護機制都能被一些方法破解。這些方法能夠被計算機高手用來生成能夠自由復制的解鎖文件。一個顯著的例外是微軟公司的Windows Media Audio 10格式,目前它還沒有被破解。如果希望得到一個壓縮的音頻文件,這個錄制的音頻流必須進行壓縮並且帶來音質的降低。

『叄』 固件是一種基於存儲邏輯的硬體嗎

固件具有軟體功能的硬體。是一種把軟體固化在硬體之中的器件。如微型計算機中,把高級語言的編譯程序固化在只讀存儲器中,則此存儲器就具有了編譯程序的功能。這種存儲器就屬於固件。

「固件」簡單的說,就是「操作系統」的意思,不過「固件」通常用來形容手機、電子書閱讀器、平板、ps3游戲機等移動設備的操作系統;英文名稱是firmware。

02
所以我們所說的幫手機刷機,其實就是幫手機重裝系統,也就是幫手機重新安裝固件;固件升級,其實就類似於電腦的操作系統升級,或者打補丁等;

03
正如前面所說的,固件不單單指手機的操作系統,還包括其他移動設備的操作系統,例如亞馬遜的電子書閱讀器kindle的操作系統,也可以被稱為固件,具體還有哪些設備的操作系統也被稱作固件,就要看人們的習慣了;

04
總的來說,固件,可以直接理解為操作系統。

『肆』 MP3的工作原理是什麼

1.便攜MP3播放器的俗稱.
用來播放MP3格式音樂(現在可以兼容wma,wav等格式)的一種攜帶型的播放器.攜帶型MP3播放器最初由韓國人文光洙和黃鼎夏(Moon & Hwang)於1997年發明,並申請了相關專利.

MP3格式技術發展詳解
2.MP3作為一種音樂格式
MPEG-1 Audio Layer 3,經常稱為MP3,是當今較流行的一種數字音頻編碼和有損壓縮格式,它設計用來大幅度地降低音頻數據量,而對於大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。它是在1991年由位於德國埃爾朗根的研究組織Fraunhofer-Gesellschaft的一組工程師發明和標准化的。

MPEG-1 Audio Layer 3,經常稱為MP3,是當今較流行的一種數字音頻編碼和有損壓縮格式,它設計用來大幅度地降低音頻數據量,而對於大多數用戶來說重放的音質與最初的不壓縮音頻相比沒有明顯的下降。它是在1991年由位於德國埃爾朗根的研究組織Fraunhofer-Gesellschaft的一組工程師發明和標准化的。
概觀
MP3是一個數據壓縮格式。它丟棄掉脈沖編碼調制(PCM)音頻數據中對人類聽覺不重要的數據(類似於JPEG是一個有損圖像壓縮),從而達到了小得多的文件大小。
在MP3中使用了許多技術其中包括心理聲學以確定音頻的哪一部分可以丟棄。MP3音頻可以按照不同的位速進行壓縮,提供了在數據大小和聲音質量之間進行權衡的一個范圍。
MP3格式使用了混合的轉換機制將時域信號轉換成頻域信號:
* 32波段多相積分濾波器(PQF)
* 36或者12 tap 改良離散餘弦濾波器(MDCT);每個子波段大小可以在0...1和2...31之間獨立選擇
* 混疊衰減後處理
根據MPEG規范的說法,MPEG-4中的AAC(Advanced audio coding)將是MP3格式的下一代,盡管有許多創造和推廣其他格式的重要努力。然而,由於MP3的空前的流行,任何其他格式的成功在目前來說都是不太可能的。MP3不僅有廣泛的用戶端軟體支持,也有很多的硬體支持比如攜帶型媒體播放器(指MP3播放器)DVD和CD播放器。
發展
MPEG-1 Audio Layer 2編碼開始時是德國Deutsche Forschungs- und Versuchsanstalt für Luft- und Raumfahrt(後來稱為Deutsches Zentrum für Luft- und Raumfahrt, 德國太空中心)Egon Meier-Engelen管理的數字音頻廣播(DAB)項目。這個項目是歐盟作為EUREKA研究項目資助的,它的名字通常稱為EU-147。EU-147 的研究期間是1987年到1994年。
到了1991年,就已經出現了兩個提案:Musicam(稱為Layer 2)和ASPEC(自適應頻譜感知熵編碼)。荷蘭飛利浦公司、法國CCETT和德國Institut für Rundfunktechnik提出的Musicam方法由於它的簡單、出錯時的健壯性以及在高質量壓縮時較少的計算量而被選中。基於子帶編碼的Musicam 格式是確定MPEG音頻壓縮格式(采樣率、幀結構、數據頭、每幀采樣點)的一個關鍵因素。這項技術和它的設計思路完全融合到了ISO MPEG Audio Layer I、II 以及後來的Layer III(MP3)格式的定義中。在Mussmann教授(University of Hannover)的主持下,標準的制定由Leon van de Kerkhof(Layer I)和Gerhard Stoll(Layer II)完成。
一個由荷蘭Leon Van de Kerkhof、德國Gerhard Stoll、法國Yves-François Dehery和德國Karlheinz Brandenburg 組成的工作小組吸收了Musicam和ASPEC的設計思想,並添加了他們自己的設計思想從而開發出了MP3,MP3能夠在128kbit/s達到MP2 192kbit/s 音質。
所有這些演算法最終都在1992年成為了MPEG的第一個標准組MPEG-1的一部分,並且生成了1993年公布的國際標准ISO/IEC 11172-3。MPEG音頻上的更進一步的工作最終成為了1994年制定的第二個MPEG標准組MPEG-2標準的一部分,這個標准正式的稱呼是1995年首次公布的ISO/IEC 13818-3。
編碼器的壓縮效率通常由位速定義,因為壓縮率依賴於位數(:en:bit depth)和輸入信號的采樣率。然而,經常有產品使用CD參數(44.1kHz、兩個通道、每通道16位或者稱為2x16位)作為壓縮率參考,使用這個參考的壓縮率通常較高,這也說明了壓縮率對於有損壓縮存在的問題。
Karlheinz Brandenburg使用CD介質的Suzanne Vega的歌曲Tom』s Diner來評價MP3壓縮演算法。使用這首歌是因為這首歌的柔和、簡單旋律使得在回放時更容易聽到壓縮格式中的缺陷。一些人開玩笑地將Suzanne Vega稱為「MP3之母」。來自於EBU V3/SQAM參考CD的更多一些嚴肅和critical 音頻選段(glockenspiel, triangle, accordion, ...)被專業音頻工程師用來評價MPEG音頻格式的主觀感受質量。

MP3走向大眾
為了生成位兼容的MPEG Audio文件(Layer 1、Layer 2、Layer 3),ISO MPEG Audio委員會成員用C語言開發的一個稱為ISO 11172-5的參考模擬軟體。在一些非實時操作系統上它能夠演示第一款壓縮音頻基於DSP的實時硬體解碼。一些其它的MPEG Audio實時開發出來用於面向消費接收機和機頂盒的數字廣播(無線電DAB和電視DVB)。
後來,1994年7月7日Fraunhofer-Gesellschaft發布了第一個稱為l3enc的MP3編碼器。
Fraunhofer開發組在1995年7月14日選定擴展名.mp3(以前擴展名是.bit)。使用第一款實時軟體MP3播放器Winplay3(1995年9月9日發布)許多人能夠在自己的個人電腦上編碼和回放MP3文件。由於當時的硬碟相對較小(如500MB),這項技術對於在計算機上存儲娛樂音樂來說是至關重要的。
MP2、MP3與網際網路
1993年10月,MP2(MPEG-1 Audio Layer 2)文件在網際網路上出現,它們經常使用Xing MPEG Audio Player播放,後來又出現了Tobias Bading為Unix開發的MAPlay。MAPlay於199年2月22日首次發布,現在已經移植到微軟視窗平台上。
剛開始僅有的MP2編碼器產品是Xing Encoder和CDDA2WAV,CDDA2WAV是一個將CD音軌轉換成WAV格式的CD抓取器。
Internet Underground Music Archive(IUMA)通常被認為是在線音樂革命的鼻祖,IUMA是網際網路上第一個高保真音樂網站,在MP3和網路流行之前它有數千首授權的MP2錄音。
從1995年上半年開始直到整個九十年代後期,MP3開始在網際網路上蓬勃發展。MP3的流行主要得益於如Nullsoft於1997年發布的Winamp和Napster於1999年發布的Napster這樣的公司和軟體包的成功,並且它們相互促進發展。這些程序使得普通用戶很容易地播放、製作、共享和收集MP3文件。
關於MP3文件的點對點技術文件共享的爭論在最近幾年迅速蔓延—這主要是由於壓縮使得文件共享成為可能,未經壓縮的文件過於龐大難於共享。由於MP3文件通過網際網路大量傳播一些主要唱片廠商通過法律起訴Napster來保護它們的版權(參見知識產權)。
如iTunes Music Store這樣的商業在線音樂發行服務通常選擇其它或者專有的支持數字版權管理(DRM)的音樂文件格式以控制和限制數字音樂的使用。支持DRM的格式的使用是為了防止受版權保護的素材免被侵犯版權,但是大多數的保護機制都能被一些方法破解。這些方法能夠被計算機高手用來生成能夠自由復制的解鎖文件。一個顯著的例外是微軟公司的Windows Media Audio 10格式,目前它還沒有被破解。如果希望得到一個壓縮的音頻文件,這個錄制的音頻流必須進行壓縮並且帶來音質的降低。

『伍』 CH451中 不解碼指的是什麼還有數據加協、1線串列介面、4線串列介面。求解釋

不解碼指的是不轉成BCD碼,也就是說如果連接是按順序連接數碼管的八個管腳,在對CH451初始化後,可發送設置,讓它用解碼方式,(默認不解碼),解碼後,有個表,發送數據是多少顯多少。不解碼,需要在程序中寫個表,手工解碼,也就是數碼管的a、b、c...對應的燈亮,總體顯一個數。
4線串列介面,是和單片機的通信採用串列通信,其中一次傳輸4個數據,通過CLOCK管教控制,具體請看CH451手冊
下面是一段CH451用匯編編寫的驅動程序,望對理解有幫助
;****************************************************************************
;需要主程序定義的參數
CH451_DCLK BIT P3.4 ;串列數據時鍾,上升沿激活
CH451_DIN BIT P3.3 ;串列數據輸出,接 CH451 的數據輸入
CH451_LOAD BIT P2.3 ;串列命令載入,上升沿激活
CH451_DOUT BIT P2.2 ;INT0,鍵盤中斷和鍵值數據輸入,接 CH451 的數據輸出
CH451_KEY DATA 7FH ;存放鍵盤中斷中讀取的鍵值
;****************************************************************************
; R452 367 1
ORG 0000H
START:
ACALL CH451_INIT ;調用初始化程序
MOV R5,#10H ;將要顯示的數放入R5中
MOV R4,#04H ;將要在第幾位上顯示放在R4中,最右邊是0位

KEYSHOW:
ACALL SCAN1
ACALL CHANGE
SJMP KEYSHOW

SJMP $

;****************************************************************************
;子程序調用
;****************************************************************************

; 初始化子程序
CH451_INIT:
CLR CH451_DIN ;先低後高,輸出上升沿通知 CH451 選擇 4 線串列介面
SETB CH451_DCLK ;置為默認的高電平
SETB CH451_DIN
SETB CH451_LOAD
SETB CH451_DOUT ;置為輸入
CLR IT0 ;置外部信號為低電平觸發
SETB PX0 ;置高優先順序或者低優先順序
CLR IE0 ;清中斷標志
SETB EX0 ;允許鍵盤中斷

MOV B,#04H ;設置為鍵盤與顯示開
MOV A,#03H
ACALL CH451_WRITE
RET

;****************************************************************************
;數碼管顯示程序
;****************************************************************************
;轉換程序,在R4位顯示R5值
CHANGE:
MOV A,R5
ACALL TTA ;對應M2t1板的數碼管轉換
MOV R2,A
MOV A,R4
ACALL TTB ;對應m2t1板的數碼管位置轉換
MOV B,A
MOV A,R2
ACALL CH451_WRITE
RET

;M2T1板數碼管對應表
TTA: MOV DPTR,#TAB_A
MOVC A,@A+DPTR
RET
;對應m2t1板的數碼管位置轉換
TTB: MOV DPTR,#TAB_B
MOVC A,@A+DPTR
RET
TAB_A:
DB 0BEH;0 顯示數
DB 24H ;1
DB 0EAH;2
DB 0E6H;3
DB 74H ;4
DB 0D6H;5
DB 0DEH;6
DB 0A4H;7
DB 0FEH;8
DB 0F6H;9
DB 0FCH;A
DB 5EH ;B
DB 4AH ;C
DB 0BEH;D
DB 0DAH;E
DB 0E4H;F
DB 00H ;10H無顯示
DB 0FEH;11H對於數碼管0位倒過來焊接的人,可以顯示°C
DB 40H ;12H - 號
TAB_B:
DB 0AH;0 顯示數碼管號
DB 09H;1
DB 0BH;2
DB 08H;3
DB 0CH;4
DB 0DH;5
DB 0EH;6
DB 0FH;7
;****************************************************************************
;鍵盤掃描程序
;****************************************************************************
SCAN1:MOV C,CH451_DOUT
JC SCAN1
ACALL CH451_READ
MOV R1,A
C0: CJNE A,#40H,C1
MOV R5,#00H
AJMP TES
C1: CJNE A,#43H,C2
MOV R5,#01H
AJMP TES
C2: CJNE A,#41H,C3
MOV R5,#02H
AJMP TES
C3: CJNE A,#42H,C4
MOV R5,#03H
AJMP TES
C4: CJNE A,#48H,C5
MOV R5,#04H
AJMP TES
C5: CJNE A,#4BH,C6
MOV R5,#05H
AJMP TES
C6: CJNE A,#49H,C7
MOV R5,#06H
AJMP TES
C7: CJNE A,#4AH,SCAN1
MOV R5,#07H
AJMP TES
TES:
RET
;****************************************************************************
;移位程序
;****************************************************************************
;DELAY_1S 延遲1秒
DELAY_1S:
MOV R7,#20
DEL1:MOV R6,#200
DEL2:MOV R3,#248
DJNZ R3,$
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
;左四位左移位
/*LIFT:
MOV B,#03H
MOV A,#00H
ACALL CH451_WRITE

INC R5
ACALL CHANGE
ACALL DELAY_1S
CJNE R5,#09H,LIFT
SJMP START
RET*/

;****************************************************************************
;串口通信讀出寫入程序
;****************************************************************************
CH451_WRITE:
CLR EX0 ;禁止鍵盤中斷
CLR CH451_LOAD ;命令開始,此命令可以放在後面
MOV R7,#08H ;將 ACC 中 8 位送出
CH451_WRITE_8: RRC A ;低位在前,高位在後
CLR CH451_DCLK
MOV CH451_DIN,C ;送出一位數據
SETB CH451_DCLK ;產生時鍾上升沿通知 CH451 輸入位數據
DJNZ R7,CH451_WRITE_8 ;位數據未完繼續

MOV A,B
MOV R7,#04H ;將 B 中 4 位送出
CH451_WRITE_4: RRC A ;低位在前,高位在後
CLR CH451_DCLK
MOV CH451_DIN,C ;送出一位數據
SETB CH451_DCLK ;產生時鍾上升沿通知 CH451 輸入位數據
DJNZ R7,CH451_WRITE_4 ;位數據未完繼續
SETB CH451_LOAD ;產生載入上升沿通知 CH451 處理命令數據
SETB EX0 ;允許鍵盤中斷
RET

; 輸入鍵值子程序

CH451_READ: CLR EX0 ;禁止鍵盤中斷
CLR CH451_LOAD ;命令開始
MOV A,#07H ;讀取鍵值命令的高 4 位 0111B
MOV R7,#04H ;忽略 12 位命令的低 8 位
CH451_READ_4: RRC A ;低位在前,高位在後
CLR CH451_DCLK
MOV CH451_DIN,C ;送出一位數據
SETB CH451_DCLK ;產生時鍾上升沿鎖通知 CH451 輸入位數據
DJNZ R7,CH451_READ_4 ;位數據未完繼續
SETB CH451_LOAD ;產生載入上升沿通知 CH451 處理命令數據
CLR A ;先清除鍵值單元以便移位
MOV R7,#07H ;讀入 7 位鍵值
CH451_READ_7:
MOV C,CH451_DOUT ;讀入一位數據
CLR CH451_DCLK ;產生時鍾下升沿通知 CH451 輸出下一位
RLC A ;數據移入 ACC,高位在前,低位在後
SETB CH451_DCLK
DJNZ R7,CH451_READ_7 ;位數據未完繼續
CLR IE0 ;清中斷標志,讀操作過程中有低電平脈沖
SETB EX0 ;允許鍵盤中斷
RET

END

閱讀全文

與tta單片機相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163