锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
MSP430鐨勬椂閽熷懆鏈燂紙鎸崱鍛ㄦ湡錛夈佹満鍣ㄥ懆鏈熴佹寚浠ゅ懆鏈熶箣闂寸殑鍏崇郴
MSP430鏍規嵁鍨嬪彿鐨勪笉鍚屾渶澶氬彲浠ラ夋嫨浣跨敤3涓尟鑽″櫒銆傛垜浠彲浠ユ牴鎹渶瑕侀夋嫨鍚堥傜殑鎸崱棰戠巼,騫跺彲浠ュ湪涓嶉渶瑕佹椂闅忔椂鍏抽棴鎸崱鍣?span lang=EN-US>,浠ヨ妭鐪佸姛鑰椼傝繖3涓尟鑽″櫒鍒嗗埆涓猴細
錛?span lang=EN-US>1錛?span lang=EN-US>DCO 鏁版帶RC鎸崱鍣ㄣ傚畠鍦ㄨ姱鐗囧唴閮?span lang=EN-US>,涓嶇敤鏃跺彲浠ュ叧闂?span lang=EN-US>DCO鐨勬尟鑽¢鐜囦細鍙楀懆鍥寸幆澧冩俯搴﹀拰MSP430宸ヤ綔鐢靛帇鐨勫獎鍝?span lang=EN-US>,涓斿悓涓鍨嬪彿鐨勮姱鐗囨墍浜х敓鐨勯鐜囦篃涓嶇浉鍚屻備絾DCO鐨勮皟鑺傚姛鑳藉彲浠ユ敼鍠勫畠鐨勬ц兘,浠栫殑璋冭妭鍒嗕負浠ヤ笅3姝ワ細a錛氶夋嫨BCSCTL1.RSELx紜畾鏃墮挓鐨勬爣縐伴鐜?span lang=EN-US>;b錛氶夋嫨DCOCTL.DCOx鍦ㄦ爣縐伴鐜囧熀紜涓婂垎孌電矖璋?span lang=EN-US>;c錛氶夋嫨DCOCTL.MODx鐨勫艱繘琛岀粏璋冦?span lang=EN-US>
錛?span lang=EN-US>2錛?span lang=EN-US>LFXT1 鎺ヤ綆棰戞尟鑽″櫒銆傚吀鍨嬩負鎺?span lang=EN-US>32768HZ鐨勬椂閽熸尟鑽″櫒,姝ゆ椂鎸崱鍣ㄤ笉闇瑕佹帴璐熻澆鐢靛銆備篃鍙互鎺?span lang=EN-US>450KHZ~8MHZ鐨勬爣鍑嗘櫠浣撴尟鑽″櫒,姝ゆ椂闇瑕佹帴璐熻澆鐢靛銆?span lang=EN-US>
錛?span lang=EN-US>3錛?span lang=EN-US>XT2 鎺?span lang=EN-US>450KHZ~8MHZ鐨勬爣鍑嗘櫠浣撴尟鑽″櫒銆傛鏃墮渶瑕佹帴璐熻澆鐢靛,涓嶇敤鏃跺彲浠ュ叧闂?span lang=EN-US>
浣庨鎸崱鍣ㄤ富瑕佺敤鏉ラ檷浣庤兘閲忔秷鑰?span lang=EN-US>,濡備嬌鐢ㄧ數姹犱緵鐢電殑緋葷粺,楂橀鎸崱鍣ㄧ敤鏉ュ浜嬩歡鍋氬嚭蹇熷弽搴旀垨鑰呬緵CPU榪涜澶ч噺榪愮畻銆傚綋鐒墮珮绔?span lang=EN-US>430榪樻湁閿侀鐜?/span>(FLL)鍙?/span>FLL+絳夋ā鍧楋紝浣嗘槸鍒濇涓嶇敤鑰冭檻閭d箞澶氥?/span>
MSP430鐨?span lang=EN-US>3縐嶆椂閽熶俊鍙鳳細MCLK緋葷粺涓繪椂閽?span lang=EN-US>;SMCLK緋葷粺瀛愭椂閽?span lang=EN-US>;ACLK杈呭姪鏃墮挓銆?span lang=EN-US>
錛?span lang=EN-US>1錛?span lang=EN-US>MCLK緋葷粺涓繪椂閽熴傞櫎浜?span lang=EN-US>CPU榪愮畻浣跨敤姝ゆ椂閽熶互澶?span lang=EN-US>,澶栧洿妯″潡涔熷彲浠ヤ嬌鐢ㄣ?span lang=EN-US>MCLK鍙互閫夋嫨浠諱綍涓涓尟鑽″櫒鎵浜х敓鐨勬椂閽熶俊鍙峰茍榪涜1銆?span lang=EN-US>2銆?span lang=EN-US>4銆?span lang=EN-US>8鍒嗛浣滀負鍏朵俊鍙鋒簮銆?span lang=EN-US>
錛?span lang=EN-US>2錛?span lang=EN-US>SMCLK緋葷粺瀛愭椂閽熴備緵澶栧洿妯″潡浣跨敤銆傚茍鍦ㄤ嬌鐢ㄥ墠鍙互閫氳繃鍚勬ā鍧楃殑瀵勫瓨鍣ㄥ疄鐜板垎棰戙?span lang=EN-US>SMCLK鍙互閫夋嫨浠諱綍涓涓尟鑽″櫒鎵浜х敓鐨勬椂閽熶俊鍙峰茍榪涜1銆?span lang=EN-US>2銆?span lang=EN-US>4銆?span lang=EN-US>8鍒嗛浣滀負鍏朵俊鍙鋒簮銆?span lang=EN-US>
錛?span lang=EN-US>3錛?span lang=EN-US>ACLK杈呭姪鏃墮挓銆備緵澶栧洿妯″潡浣跨敤銆傚茍鍦ㄤ嬌鐢ㄥ墠鍙互閫氳繃鍚勬ā鍧楃殑瀵勫瓨鍣ㄥ疄鐜板垎棰戙備絾ACLK鍙兘鐢?span lang=EN-US>LFXT1榪涜1銆?span lang=EN-US>2銆?span lang=EN-US>4銆?span lang=EN-US>8鍒嗛浣滀負淇″彿婧愩?span lang=EN-US>
PUC澶嶄綅鍚?span lang=EN-US>,MCLK鍜?span lang=EN-US>SMCLK鐨勪俊鍙鋒簮涓?span lang=EN-US>DCO,DCO鐨勬尟鑽¢鐜囬粯璁や負800KHZ銆?span lang=EN-US>ACLK鐨勪俊鍙鋒簮涓?span lang=EN-US>LFXT1銆?span lang=EN-US>
MSP430鍐呴儴鍚湁鏅朵綋鎸崱鍣ㄥけ鏁堢洃嫻嬬數璺?span lang=EN-US>,鐩戞祴LFXT1錛堝伐浣滃湪楂橀妯″紡錛夊拰XT2杈撳嚭鐨勬椂閽熶俊鍙楓傚綋鏃墮挓淇″彿涓㈠け50us鏃?span lang=EN-US>,鐩戞祴鐢佃礬鎹曟崏鍒版尟鑽″櫒澶辨晥銆傚鏋?span lang=EN-US>MCLK淇″彿鏉ヨ嚜LFXT1鎴栬?span lang=EN-US>XT2,閭d箞MSP430鑷姩鎶?span lang=EN-US>MCLK鐨勪俊鍙峰垏鎹負DCO,榪欐牱鍙互淇濊瘉紼嬪簭緇х畫榪愯銆備絾MSP430涓嶅宸ヤ綔鍦ㄤ綆棰戞ā寮忕殑LFXT1榪涜鐩戞祴銆?span lang=EN-US>
涓婁紶涓婃潵鐨勬椂鍊欙紝鍙戠幇鍥劇墖娌℃湁鏄劇ず鍑烘潵錛屼笉濂芥剰鎬?
MSP430鍏ラ棬
鏈漢瀛︿範鍜屼嬌鐢?span lang=EN-US>msp430涓涓湀錛屽伓鍦ㄥ井鎺ц鍧涚湅鍒頒竴絎旇錛岃杞界殑铔ソ鐨勶紝鐜拌漿杞藉埌鑷繁鍗氬浠ュ仛澶囧繕銆?span lang=EN-US>
紜歡鍒濇
榪欏彧鏄垜鍦ㄥ涔?span lang=EN-US>TI鍏徃鐢熶駭鐨?span lang=EN-US>16浣嶈秴鐨勫姛鑰楀崟鐗囨満MSP430鐨勯殢絎旓紝甯屾湜鑳藉鍏朵粬鏈嬪弸鏈夋墍鍊熼壌錛屼笉瀵逛箣澶勮繕璇峰鎸囨暀銆?span lang=EN-US>
涓嬮潰錛屽紑濮?span lang=EN-US>430涔嬫梾銆?span lang=EN-US>
璁茶В430鐨勪功鐜板湪涔熸湁寰堝浜嗭紝涓嶈繃澶у鏁伴兘鏄緇嗚鏄庡簳灞傜‖浠剁粨鏋勭殑錛岀湅浜嗕笉鍏嶆湁浜涚┖媧炲拰鏋嚗錛屾垜璁や負浜嗚В涓涓?span lang=EN-US>MCU鐨勬搷浣滈鍏堣瀵瑰叾鍩虹鐗規ф湁鎵浜嗚В錛岀劧鍚庡啀浠旂粏鐮旂┒鍚勬ā鍧楃殑鍔熻兘銆?span lang=EN-US>
1.棣栧厛浣犺鐭ラ亾msp430鐨勫瓨鍌ㄥ櫒緇撴瀯銆傚吀鍨嬪井澶勭悊鍣ㄧ殑緇撴瀯鏈変袱縐嶏細鍐傝渚濇浖緇撴瀯鈥斺?/span>紼嬪簭瀛樺偍鍣ㄥ拰鏁版嵁瀛樺偍鍣ㄧ粺涓緙栫爜錛涘搱浣涚粨鏋?span lang=EN-US>鈥斺?/span>紼嬪簭瀛樺偍鍣ㄥ拰鏁版嵁瀛樺偍鍣紱msp430緋誨垪鍗曠墖鏈哄睘浜庡墠鑰咃紝鑰屽父鐢ㄧ殑mcs51緋誨垪灞炰簬鍚庤呫?span lang=EN-US>
0錛?span lang=EN-US>0xf鐗規畩鍔熻兘瀵勫瓨鍣紱0x10錛?span lang=EN-US>0x1ff澶栧洿妯″潡瀵勫瓨鍣紱0x200錛嶏紵鏍規嵁涓嶅悓鍨嬪彿鍦板潃浠庝綆鍚戦珮鎵╁睍錛?span lang=EN-US>0x1000錛?span lang=EN-US>0x
2.澶嶄綅淇″彿鏄?span lang=EN-US>MCU宸ヤ綔鐨勮搗鐐癸紝430鐨勫浣嶄俊鍙鋒湁涓ょ錛氫笂鐢靛浣嶄俊鍙?span lang=EN-US>POR鍜屼笂鐢墊竻闄や俊鍙?span lang=EN-US>PUC銆?span lang=EN-US>POR淇″彿鍙湪涓婄數鍜?span lang=EN-US>RST/NMI澶嶄綅綆¤剼琚緗負澶嶄綅鍔熻兘錛屼笖浣庣數騫蟲椂緋葷粺澶嶄綅銆傝?span lang=EN-US>PUC淇″彿鏄?span lang=EN-US>POR淇″彿浜х敓錛屼互鍙婂叾浠栧鐪嬮棬鐙楀畾鏃舵孩鍑恒佸畨鍏ㄩ敭鍊煎嚭鐜伴敊璇槸浜х敓銆備絾鏄紝鏃犺閭g淇″彿瑙﹀彂鐨勫浣嶏紝閮戒細浣?span lang=EN-US>msp430鍦ㄥ湴鍧0xffff澶勮鍙栧浣嶄腑鏂悜閲忥紝鐒跺悗紼嬪簭浠庝腑鏂悜閲忔墍鎸囩殑鍦板潃寮濮嬫墽琛屻傚浣嶅悗鐨勭姸鎬佷笉鍐欎簡錛岃瑙佸弬鑰冧功錛屽樋鍢褲?span lang=EN-US>
3.緋葷粺鏃墮挓鏄竴涓▼搴忚繍琛岀殑鎸囨尌瀹橈紝鏃跺簭鍜屼腑鏂篃鏄暣涓▼搴忕殑鏍稿績鍜屼腑杞寸嚎銆?span lang=EN-US>430鏈澶氭湁涓変釜鎸崱鍣紝DCO鍐呴儴鎸崱鍣紱LFXT1澶栨帴浣庨鎸崱鍣紝甯歌鐨?span lang=EN-US>32768HZ錛屼笉鐢ㄥ鎺ヨ礋杞界數瀹癸紱涔熷彲鎺ラ珮棰?span lang=EN-US>450KHZ錛?st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="8" UnitName="m">8M錛岄渶鎺ヨ礋杞界數瀹癸紱XT2鎺ラ珮棰?span lang=EN-US>450KHZ錛?st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="8" UnitName="m">8M錛屽姞澶栨帴鐢靛銆傦紙緇忛獙涓彂鐜幫紝鎺?span lang=EN-US>XT2鏃訛紝闇瑕佹敞鎰?/span>鑷繁寮鍚?/span>XT2錛屽茍寤舵椂50us絳夊緟XT2璧鋒尟錛岀劧鍚庢墜宸ユ竻闄?/span>IFG1涓殑OFIFG浣嶏紝鍏舵搷浣滈『搴忎負錛氭墦寮XT2->絳夊緟XT2紼沖畾->鍒囨崲緋葷粺鏃墮挓涓?/span>XT2錛?span lang=EN-US>
430鏈変笁縐嶆椂閽熶俊鍙鳳細MCLK緋葷粺涓繪椂閽燂紝鍙垎棰?span lang=EN-US>1 2 4 8錛屼緵cpu浣跨敤錛屽叾浠栧鍥存ā鍧楀湪鏈夐夋嫨鎯呭喌涓嬩篃鍙嬌鐢紱SMCLK緋葷粺瀛愭椂閽燂紝渚涘鍥存ā鍧椾嬌鐢紝鍙夊垯涓嶅悓鎸崱鍣ㄤ駭鐢熺殑鏃墮挓淇″彿錛?span lang=EN-US>ACLK杈呭姪鏃墮挓錛屽彧鑳界敱LFXT1浜х敓錛屼緵澶栧洿妯″潡銆?span lang=EN-US>
4.涓柇鏄?span lang=EN-US>430澶勭悊鍣ㄧ殑涓澶х壒鑹詫紝鍥犱負鍑犱箮姣忎釜澶栧洿妯″潡閮借兘浜х敓錛?span lang=EN-US>430鍙互鍦ㄦ病鏈変換鍔℃椂榪涘叆浣庡姛鑰楃姸鎬侊紝鏈変簨浠舵椂涓柇鍞ら啋cpu錛屽鐞嗗畬姣曞啀嬈¤繘鍏ヤ綆鍔熻楃姸鎬併?span lang=EN-US>
鏁翠釜涓柇鐨勫搷搴旇繃紼嬫槸榪欐牱鐨勶紝褰撴湁涓柇璇鋒眰鏃訛紝濡傛灉cpu澶勪簬媧誨姩鐘舵侊紝鍏堝畬鎴愬綋鍓嶅懡浠わ紱濡傛灉澶勪簬浣庡姛鑰楋紝鍏堥鍑猴紝灝嗕笅涓鏉℃寚浠ょ殑pc鍊煎帇鍏ュ爢鏍堬紱濡傛灉鏈夊涓腑鏂姹傦紝鍏堝搷搴斾紭鍏堢駭楂樼殑錛涙墽琛屽畬鍚庯紝絳夊緟涓柇璇鋒眰鏍囧織浣嶅浣嶏紝瑕佹敞鎰忥紝鍗曚腑鏂簮鐨勪腑鏂姹傛爣蹇椾綅鑷姩澶嶄綅錛岃屽涓柇鐨勬爣蹇椾綅闇瑕佽蔣浠跺浣嶏紱鐒跺悗緋葷粺鎬諱腑鏂厑璁鎬綅SR.GIE澶嶄綅錛岀浉搴旂殑涓柇鍚戦噺鍊艱鍏?span lang=EN-US>pc錛岀▼搴忎粠榪欎釜鍦板潃緇х畫鎵ц銆?span lang=EN-US>
榪欓噷瑕佹敞鎰忥紝涓柇鍏佽浣?span lang=EN-US>SR.GIE鍜屼腑鏂祵濂楅棶棰樸傚鏋滃綋浣犳墽琛屼腑鏂▼搴忚繃紼嬩腑錛屽笇鏈涘彲浠ュ搷搴旀洿楂樼駭鍒殑涓柇璇鋒眰鏃訛紝蹇呴』鍦ㄨ繘鍏ョ涓涓腑鏂椂鎶?span lang=EN-US>SR.GIE緗綅銆?span lang=EN-US>
鍏跺疄錛屽叾浠栫殑澶栧洿妯″潡鏃墮挓娌跨潃鏃墮挓鍜屼腑鏂繖涓牳蹇冩潵鎵ц鐨勩傚叿浣撶殑緇撴瀯鎴戜篃涓嶇綏绱簡錛屽彲浠ュ弬鑰?span lang=EN-US>430緋誨垪鎵嬪唽銆?span lang=EN-US>
C璇█緙栫▼璧鋒
鍥犱負甯哥敤鐨?span lang=EN-US>430緙栫▼寮鍙戞槸c璇█錛屾墍浠ヤ笅闈㈣瑙?span lang=EN-US>C璇█瀵?span lang=EN-US>430緙栫▼鐨勬暣浣撶粨鏋勩傚熀鏈笂灞炰簬妗嗘灦緇撴瀯錛屽嵆鏁翠綋鐨勬ā鍧楀寲緙栫▼錛屽叾瀹炶繖涔熸槸紜歡緙栫▼鐨勫熀鏈硶鍒欐媺錛堝彲涓嶆槸鎴戣瀹氱殑娉曞垯鍝︼級銆?span lang=EN-US>
棣栧厛鏄▼搴忕殑澶存枃浠訛紝鍖呮嫭#include <MSP430x14x.h>,榪欐槸14緋誨垪錛屽洜涓哄父鐢?span lang=EN-US>149錛涘叾浠栧瀷鍙峰彲鑷繁淇敼銆傝繕鍙互鍖呮嫭#include "data.h" 絳夋暟鎹簱澶存枃浠訛紝鎴栧嚱鏁板彉閲忓0鏄庡ご鏂囦歡錛岄兘鏄綘鑷繁瀹氫箟鐨勫摝銆?span lang=EN-US>
鎺ョ潃灝辨槸鍑芥暟鍜屽彉閲忕殑澹版槑 void Init_Sys(void)錛屽嵆緋葷粺鍒濆鍖栥傜郴緇熷垵濮嬪寲鏄釜鏁翠綋鐨勬蹇碉紝騫夸箟涓婅鍖呮嫭鎵鏈夊鍥存ā鍧楃殑鍒濆鍖栵紝浣犲彲浠ユ妸澶栧洿妯″潡鍒濆鍖栫殑瀛愬嚱鏁板啓鍒?span lang=EN-US>Init_Sys錛堬級涓紝涔熷彲浠ュ垎鍒啓鍚勪釜妯″潡鐨勫垵濮嬪寲銆備絾緇撴瀯鐨勭畝媧侊紝鏈濂藉啓瀹岀郴緇熺殑鏃墮挓鍒濆鍖栧悗錛屽叾浠栨墍鐢ㄥ埌鐨勬ā鍧楋紙鍖呮嫭涓浜涗腑鏂垵濮嬪寲錛変篃鍦ㄨ繖閲屽垵濮嬪寲銆?span lang=EN-US>
void Init_Sys()
{
unsigned int i;
BCSCTL1&=~XT2OFF; //鎵撳紑XT2鎸崱鍣?span lang=EN-US>
do
{
IFG1 &= ~OFIFG; // 娓呴櫎鎸崱鍣ㄥけ鏁堟爣蹇?span lang=EN-US>
for (i = 0xFF; i > 0; i--); // 寤舵椂錛岀瓑寰?span lang=EN-US>XT2璧鋒尟
}
while ((IFG1 & OFIFG) != 0); // 鍒ゆ柇XT2鏄惁璧鋒尟
BCSCTL2 =SELM_2+SELS; //閫夋嫨MCLK銆?span lang=EN-US>SMCLK涓?span lang=EN-US>XT2
//浠ヤ笅瀵瑰悇縐嶆ā鍧椼佷腑鏂佸鍥磋澶囩瓑榪涜鍒濆鍖?span lang=EN-US>
........................................
_EINT(); //鎵撳紑鍏ㄥ眬涓柇鎺у埗
}
榪欓噷娑夊強鍒版椂閽熼棶棰橈紝閫氬父鎴戜滑閫夋嫨XT2涓?st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="8" UnitName="m">8M鏅舵尟錛屼篃鍗崇郴緇熶富鏃墮挓MCLK涓?st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="8" UnitName="m">8M,cpu鎵ц鍛戒護浠ユ鏃墮挓涓哄噯錛涗絾鍏朵粬澶栧洿妯″潡鍙互鍦ㄧ浉搴旂殑鎺у埗瀵勫瓨鍣ㄤ腑閫夋嫨鍏朵粬鐨勬椂閽燂紝ACLK錛涘綋浣犲閫熷害瑕佹眰寰堜綆錛屽畾鏃舵椂闂撮棿闅斿ぇ鏃訛紝灝卞彲浠ラ夋嫨ACLK錛屼緥濡傚湪瀹氭椂鍣?span lang=EN-US>Timea鍒濆鍖栦腑璁劇疆銆?span lang=EN-US>
涓葷▼搴忥細
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;//鍏抽棴鐪嬮棬鐙?span lang=EN-US>
InitSys(); //鍒濆鍖?span lang=EN-US>
//鑷繁浠誨姟涓殑鍏朵粬鍔熻兘鍑芥暟
銆傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘傘?
while(1);
}
涓葷▼搴忎箣鍚庢垜瑕佽璁蹭腑鏂嚱鏁幫紝涓柇鏄綘鍋氬崟鐗囨満浠誨姟涓笉鍙己灝戠殑閮ㄥ垎錛屼篃鍙互璇存槸鐏甸瓊浜嗭紙澶稿紶鍚楋級銆?span lang=EN-US>
/***********************************************************************
鍚勪腑鏂嚱鏁幫紝鍙寜浼樺厛綰т緷嬈′功鍐?span lang=EN-US>
***********************************************************************/
涓句釜瀹氭椂涓柇鐨勪緥瀛愶細
//鍒濆鍖?span lang=EN-US>
void Init_Timer_A(void)
{
TACTL = TASSEL0 + TACLR; // ACLK, clear TAR
CCTL0 = CCIE; // CCR0 涓柇浣胯兘
CCR0=32768; //瀹氭椂1s
TACTL|=MC0; //澧炶鏁版ā寮?span lang=EN-US>
}
// 涓柇鏈嶅姟
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0()
{
// 浣犺嚜宸辮姹備腑鏂墽琛岀殑浠誨姟
}
褰撶劧錛岃繕鏈夊叾浠栫殑瀹氭椂錛屽拰澶氱涓柇錛屽悇緋誨垪鑺墖鐨勪腑鏂悜閲忎釜鏁頒篃涓嶅悓銆?span lang=EN-US>
瀛﹀畬騫舵噦寰椾互涓婄煡璇嗗悗錛屾帴涓嬪幓鎺ㄨ崘鐪嬪井鎺ц鍧涗笂鐨?span lang=EN-US>msp430甯哥敤妯″潡搴旂敤鍘熺悊銆?/span>