鏅傞枔锛�2018-01-02 10:46:39渚嗘簮锛氱恫绲¤綁杓�
绲愬悎鎸夐嵉绋嬪簭锛屾垜鍊戣ō瑷堥€欐ǎ涓€鍊嬪姛鑳界▼搴忥細鎸夋暩瀛楅嵉1锝�9锛屾帶鍒�闆绘杞夐亷1锝�9鍦�锛涢厤鍚堜笂涓嬮嵉鏀硅畩杞夊嫊鏂瑰悜锛屾寜鍚戜笂閸靛悗姝e悜杞�1锝�9鍦�锛屽悜涓嬮嵉鍓囧弽鍚戣綁1锝�9鍦�锛涘乏閸靛浐瀹氭杞�90搴︼紝鍙抽嵉鍥哄畾鍙嶈綁90锛汦sc閸电祩姝㈣綁鍕�銆傞€氶亷閫欏€嬬▼搴忥紝鎴戝€戜篃鍙互閫蹭竴姝ラ珨鏈冨埌濡備綍鐢ㄦ寜閸典締鎺у埗绋嬪簭瀹屾垚寰╅洔鐨勫姛鑳�锛屼互鍙婃帶鍒跺拰鍩�(zh铆)琛屾ā濉婁箣闁撳浣曞崝瑾垮伐浣�锛岃€屼綘鐨勭法绋嬫按骞充篃鍙互鍦ㄩ€欐ǎ鐨勫韪愮反缈掍腑寰楀埌閸涚厜鍜屾彁鍗�銆�
#include
sbitKEY_IN_1=P2^4;
sbitKEY_IN_2=P2^5;
sbitKEY_IN_3=P2^6;
sbitKEY_IN_4=P2^7;
sbitKEY_OUT_1=P2^3;
sbitKEY_OUT_2=P2^2;
sbitKEY_OUT_3=P2^1;
sbitKEY_OUT_4=P2^0;
unsignedcharcodeKeyCodeMap[4][4]={//鐭╅櫍鎸夐嵉绶ㄨ櫉鍒版婧栭嵉鐩ら嵉纰肩殑鏄犲皠琛�
{0x31,0x32,0x33,0x26},//鏁稿瓧閸�1銆佹暩瀛楅嵉2銆佹暩瀛楅嵉3銆佸悜涓婇嵉
{0x34,0x35,0x36,0x25},//鏁稿瓧閸�4銆佹暩瀛楅嵉5銆佹暩瀛楅嵉6銆佸悜宸﹂嵉
{0x37,0x38,0x39,0x28},//鏁稿瓧閸�7銆佹暩瀛楅嵉8銆佹暩瀛楅嵉9銆佸悜涓嬮嵉
{0x30,0x1B,0x0D,0x27}//鏁稿瓧閸�0銆丒SC閸�銆佸洖杌婇嵉銆佸悜鍙抽嵉
};
unsignedcharKeySta[4][4]={//鍏ㄩ儴鐭╅櫍鎸夐嵉鐨勭暥鍓嶇媭鎱�(t脿i)
{1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}
};
signedlongbeats=0;//闆绘杞夊嫊绡€(ji茅)鎷嶇附鏁�
voidKeyDriver();
voidmain(){
EA=1;//浣胯兘绺戒腑鏂�
TMOD=0x01;//瑷疆T0鐐烘ā寮�1
TH0=0xFC;//鐐篢0璩﹀垵鍊�0xFC67锛屽畾鏅�1ms
TL0=0x67;
ET0=1;//浣胯兘T0涓柗
TR0=1;//鍟熷嫊T0
while(1){
KeyDriver();//瑾跨敤鎸夐嵉椹呭嫊鍑芥暩
}
}
/*姝ラ€查浕姗熷暉鍕曞嚱鏁�锛宎ngle-闇€杞夐亷鐨勮搴�*/
voidStartMotor(signedlongangle){
//鍦ㄨ▓绠楀墠闂滈枆涓柗锛屽畬鎴愬悗鍐嶆墦闁�锛屼互閬垮厤涓柗鎵撴柗瑷堢畻閬庣▼鑰岄€犳垚閷
EA=0;
beats=(angle*4076)/360;//瀵︽脯鐐�4076鎷嶈綁鍕曚竴鍦�
EA=1;
}
/*姝ラ€查浕姗熷仠姝㈠嚱鏁�*/
voidStopMotor(){
EA=0;
beats=0;
EA=1;
}
/*鎸夐嵉鍕曚綔鍑芥暩锛屾牴鎿氶嵉纰煎煼(zh铆)琛岀浉鎳夌殑鎿嶄綔锛宬eycode-鎸夐嵉閸电⒓*/
voidKeyAction(unsignedcharkeycode){
staticbitdirMotor=0;//闆绘杞夊嫊鏂瑰悜
//鎺у埗闆绘杞夊嫊1-9鍦�
if((keycode>=0x30)&&(keycode<=0x39)){
if(dirMotor==0){
StartMotor(360*(keycode-0x30));
}else{
StartMotor(-360*(keycode-0x30));
}
}elseif(keycode==0x26){//鍚戜笂閸�锛屾帶鍒惰綁鍕曟柟鍚戠偤姝h綁
dirMotor=0;
}elseif(keycode==0x28){//鍚戜笅閸�锛屾帶鍒惰綁鍕曟柟鍚戠偤鍙嶈綁
dirMotor=1;
}elseif(keycode==0x25){//鍚戝乏閸碉紝鍥哄畾姝h綁90搴�
StartMotor(90);
}elseif(keycode==0x27){//鍚戝彸閸�锛屽浐瀹氬弽杞�90搴�
StartMotor(-90);
}elseif(keycode==0x1B){//Esc閸�锛屽仠姝㈣綁鍕�
StopMotor();
}
}
/*鎸夐嵉椹呭嫊鍑芥暩锛屾娓寜閸靛嫊浣�锛岃搴︾浉鎳夊嫊浣滃嚱鏁�锛岄渶鍦ㄤ富寰挵(hu谩n)涓鐢�*/
voidKeyDriver(){
unsignedchari,j;
staticunsignedcharbackup[4][4]={//鎸夐嵉鍊煎倷浠�锛屼繚瀛樺墠涓€娆$殑鍊�
{1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}
};
for(i=0;i<4;i++){//寰挵(hu谩n)妾㈡脯4*4鐨勭煩闄f寜閸�
for(j=0;j<4;j++){
if(backup[i][j]!=KeySta[i][j]){//妾㈡脯鎸夐嵉鍕曚綔
if(backup[i][j]!=0){//鎸夐嵉鎸変笅鏅傚煼(zh铆)琛屽嫊浣�
KeyAction(KeyCodeMap[i][j]);//瑾跨敤鎸夐嵉鍕曚綔鍑芥暩
}
backup[i][j]=KeySta[i][j];//鍒锋柊鍓嶄竴娆$殑鍌欎唤鍊�
}
}
}
}
/*鎸夐嵉鎺冩弿鍑芥暩锛岄渶鍦ㄥ畾鏅備腑鏂蜂腑瑾跨敤锛屾帹钖﹁鐢ㄩ枔闅�1ms*/
voidKeyScan(){
unsignedchari;
staticunsignedcharkeyout=0;//鐭╅櫍鎸夐嵉鎺冩弿杓稿嚭绱㈠紩
staticunsignedcharkeybuf[4][4]={//鐭╅櫍鎸夐嵉鎺冩弿绶╂矕鍗€(q奴)
{0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF}
};
//灏囦竴琛岀殑4鍊嬫寜閸靛€肩Щ鍏ョ珐娌栧崁(q奴)
keybuf[keyout][0]=(keybuf[keyout][0]<<1)|KEY_IN_1;
keybuf[keyout][1]=(keybuf[keyout][1]<<1)|KEY_IN_2;
keybuf[keyout][2]=(keybuf[keyout][2]<<1)|KEY_IN_3;
keybuf[keyout][3]=(keybuf[keyout][3]<<1)|KEY_IN_4;
//娑堟姈鍚庢洿鏂版寜閸电媭鎱�(t脿i)
for(i=0;i<4;i++){//姣忚4鍊嬫寜閸�锛屾墍浠ュ惊鐠�(hu谩n)4娆�
if((keybuf[keyout][i]&0x0F)==0x00){
//閫g簩(x霉)4娆℃巸鎻忓€肩偤0锛屽嵆4*4ms鍏ч兘鏄寜涓嬬媭鎱�(t脿i)鏅傦紝鍙獚鐐烘寜閸靛凡绌�(w臎n)瀹氱殑鎸変笅
KeySta[keyout][i]=0;
}elseif((keybuf[keyout][i]&0x0F)==0x0F){
//閫g簩(x霉)4娆℃巸鎻忓€肩偤1锛屽嵆4*4ms鍏ч兘鏄綀璧风媭鎱�(t脿i)鏅�锛屽彲瑾嶇偤鎸夐嵉宸茬┅(w臎n)瀹氱殑褰堣捣
KeySta[keyout][i]=1;
}
}
//鍩�(zh铆)琛屼笅涓€娆$殑鎺冩弿杓稿嚭
keyout++;//杓稿嚭绱㈠紩閬炲
keyout=keyout&0x03;//绱㈠紩鍊煎姞鍒�4鍗虫闆�
//鏍规摎绱㈠紩锛岄噵鏀剧暥鍓嶈几鍑哄紩鑵�锛屾媺浣庝笅娆$殑杓稿嚭寮曡叧
switch(keyout){
case0:KEY_OUT_4=1;KEY_OUT_1=0;break;
case1:KEY_OUT_1=1;KEY_OUT_2=0;break;
case2:KEY_OUT_2=1;KEY_OUT_3=0;break;
case3:KEY_OUT_3=1;KEY_OUT_4=0;break;
default:break;
}
}
/*闆绘杞夊嫊鎺у埗鍑芥暩*/
voidTurnMotor(){
unsignedchartmp;//鑷ㄦ檪璁婇噺
staticunsignedcharindex=0;//绡€(ji茅)鎷嶈几鍑虹储寮�
unsignedcharcodeBeatCode[8]={//姝ラ€查浕姗熺瘈(ji茅)鎷嶅皪鎳夌殑IO鎺у埗浠g⒓
0xE,0xC,0xD,0x9,0xB,0x3,0x7,0x6
};
if(beats!=0){//绡€(ji茅)鎷嶆暩涓嶇偤0鍓囩敘鐢熶竴鍊嬮﹨鍕曠瘈(ji茅)鎷�
if(beats>0){//绡€(ji茅)鎷嶆暩澶т簬0鏅傛杞�
index++;//姝h綁鏅傜瘈(ji茅)鎷嶈几鍑虹储寮曢仦澧�
index=index&0x07;//鐢�&鎿嶄綔瀵︾従鍒�8姝搁浂
beats--;//姝h綁鏅傜瘈(ji茅)鎷嶈▓鏁搁仦娓�
}else{//绡€(ji茅)鎷嶆暩灏忎簬0鏅傚弽杞�
index--;//鍙嶈綁鏅傜瘈(ji茅)鎷嶈几鍑虹储寮曢仦娓�
index=index&0x07;//鐢�&鎿嶄綔鍚屾ǎ鍙互瀵︾従鍒�-1鏅傛7
beats++;//鍙嶈綁鏅傜瘈(ji茅)鎷嶈▓鏁搁仦澧�
}
tmp=P1;//鐢╰mp鎶奝1鍙g暥鍓嶅€兼毇瀛�
tmp=tmp&0xF0;//鐢�&鎿嶄綔娓呴浂浣�4浣�
tmp=tmp|BeatCode[index];//鐢▅鎿嶄綔鎶婄瘈(ji茅)鎷嶄唬纰煎鍒颁綆4浣�
P1=tmp;//鎶婁綆4浣嶇殑绡€(ji茅)鎷嶄唬纰煎拰楂�4浣嶇殑鍘熷€奸€佸洖P1
}else{//绡€(ji茅)鎷嶆暩鐐�0鍓囬棞闁夐浕姗熸墍鏈夌殑鐩�
P1=P1|0x0F;
}
}
/*T0涓柗鏈嶅嫏鍑芥暩锛岀敤浜庢寜閸垫巸鎻忚垏闆绘杞夊嫊鎺у埗*/
voidInterruptTimer0()interrupt1{
staticbitp=0;
TH0=0xFC;//閲嶆柊鍔犺級鍒濆€�
TL0=0x67;
KeyScan();//鍩�(zh铆)琛屾寜閸垫巸鎻�
//鐢ㄤ竴鍊嬮潨鎱�(t脿i)bit璁婇噺瀵︾従浜屽垎闋�锛屽嵆2ms瀹氭檪锛岀敤浜庢帶鍒堕浕姗�
p=~p;
if(p==1){
TurnMotor();
}
}閫欏€嬬▼搴忔槸绗�8绔犲拰鏈珷鐭ヨ瓨鐨勪竴鍊嬬稖鍚堚€斺€旂敤鎸夐嵉鎺у埗姝ラ€查浕姗�杞夊嫊銆傜▼搴忎腑鏈夐€欎箞骞鹃粸鍊煎緱娉ㄦ剰锛屾垜鍊戝垎杩板涓嬶細
閲濆皪闆绘瑕佸畬鎴愭杞夊拰鍙嶈綁鍏╁€嬩笉鍚岀殑鎿嶄綔锛屾垜鍊戝苟娌掓湁浣跨敤姝h綁鍟熷嫊鍑芥暩鍜屽弽杞夊暉鍕曞嚱鏁搁€欎箞鍏╁€嬪嚱鏁镐締瀹屾垚锛屼篃娌掓湁鍦ㄥ暉鍕曞嚱鏁稿畾缇╃殑鏅傚€欏鍔犱竴鍊嬪舰寮忓弮鏁镐締鎸囨槑鍏舵柟鍚�銆傛垜鍊戦€欓噷鐨勫暉鍕曞嚱鏁竩oidStartMotor(signedlongangle)鑸囧柈鍚戞杞夋檪鐨勫暉鍕曞嚱鏁稿敮涓€鐨勫崁(q奴)鍒ュ氨鏄妸褰㈠紡鍙冩暩angle鐨勯鍨嬪緸unsignedlong鏀圭偤浜唖ignedlong锛屾垜鍊戠敤鏈夌铏熸暩鍥烘湁鐨勬璨犵壒鎬т締鍗€(q奴)鍒嗘杞夎垏鍙嶈綁锛屾鏁歌〃绀烘杞塧ngle搴�锛岃矤鏁稿氨琛ㄧず鍙嶈綁angle搴�锛岄€欐ǎ铏曠悊鏄笉鏄緢绨℃綌鍙堝緢鏄庝簡鍛紵鑰屼綘灏嶆湁绗﹁櫉鏁稿拰鐒$铏熸暩鐨勫崁(q奴)鍒ョ敤娉曟槸涓嶆槸涔熸洿鏈夐珨鏈冧簡锛�
閲濆皪绲傛闆绘杞夊嫊鐨勬搷浣�锛屾垜鍊戝畾缇╀簡涓€鍊嬪柈鐛ㄧ殑StopMotor鍑芥暩渚嗗畬鎴愶紝鐩$閫欏€嬪嚱鏁搁潪甯哥啊鍠�锛岀洝绠″畠涔熷彧鍦‥sc鎸夐嵉鍒嗘敮鍏ц瑾跨敤浜嗭紝浣嗘垜鍊戜粛鐒舵妸瀹冨柈鐛ㄦ彁鍑轰締浣滅偤浜嗕竴鍊嬪嚱鏁�銆傝€岄€欑ó鍋氭硶灏辨槸鍩轰簬閫欐ǎ涓€姊濈法绋嬪師鍓囷細鐩″彲鑳界敤鍠崹鐨勫嚱鏁镐締瀹屾垚纭欢鐨勬煇绋搷浣滐紝鐣朵竴鍊嬬‖浠跺寘鍚鍊嬫搷浣滄檪锛屾妸閫欎簺鎿嶄綔鍑芥暩绲勭箶鍦ㄤ竴璧凤紝褰㈡垚涓€鍊嬪皪涓婂堡鐨勭当涓€鎺ュ彛銆傞€欐ǎ鐨勫堡娆″寲铏曠悊锛屾渻浣垮緱鏁村€嬬▼搴忔鐞嗘竻鏅�锛屾棦鏈夊埄浜庣▼搴忕殑瑾胯│缍锛屽張鏈夊埄浜庡姛鑳界殑鎿村厖銆�
涓柗鍑芥暩涓铏曠悊鎸夐嵉鎺冩弿鍜岄浕姗熼﹨鍕曞叐浠朵簨鎯�锛岃€岀偤浜嗛伩鍏嶄腑鏂峰嚱鏁搁亷浜庡京闆滐紝鎴戝€戝氨鍙堝垎鍑轰簡鎸夐嵉鎺冩弿鍜岄浕姗熼﹨鍕曞叐鍊嬪嚱鏁革紙閫欎篃鍚屾ǎ绗﹀悎涓婅堪2鐨勭法绋嬪師鍓囷級锛岃€屼腑鏂峰嚱鏁哥殑閭忚集灏辫畩寰楃啊娼旇€屾竻鏅颁簡銆傞€欓噷閭勬湁鍊嬬煕鐩�锛屽氨鏄寜閸垫巸鎻忔垜鍊戦伕鎿囩殑瀹氭檪鏅傞枔鏄�1ms锛岃€屾湰绔犱箣鍓嶇殑瀵︿緥涓浕姗熺瘈(ji茅)鎷嶆寔绾�(x霉)鏅傞枔閮芥槸2ms锛涘緢椤劧锛岀敤1ms鐨勫畾鏅傚彲浠ュ畾鍑�2ms鐨勯枔闅�锛岃€岀敤2ms鐨勫畾鏅傚嵒寰椾笉鍒版簴纰虹殑1ms闁撻殧锛涙墍浠ユ垜鍊戠殑鍋氭硶灏辨槸锛屽畾鏅傚櫒渚濈劧瀹氭檪1ms锛岀劧鍚庣敤涓€鍊媌it璁婇噺鍋氭蹇�锛屾瘡1ms鏀硅畩涓€娆″畠鐨勫€硷紝鑰屾垜鍊戝彧閬告搰鍊肩偤1鐨勬檪鍊欏煼(zh铆)琛屼竴娆″嫊浣�锛岄€欐ǎ灏辨槸2ms鐨勯枔闅斾簡锛涘鏋滄垜瑕�3ms銆�4ms??鍛紝鎶奲it鏀圭偤char鎴杋nt鍨嬶紝鐒跺悗灏嶅畠鍊戦仦澧�锛屽垽鏂峰埌鍝€嬪€艰┎姝搁浂锛屽氨鍙互浜�銆傞€欏氨鏄湪纭欢瀹氭檪鍣ㄧ殑鍩虹涓婂鐝炬簴纰虹殑杌熶欢瀹氭檪锛屽叾瀵﹂浼肩殑鎿嶄綔鎴戝€戝湪璎涙暩纰肩鐨勬檪鍊欎篃鐢ㄩ亷浜�锛屽洖鎯充竴涓嬪惂銆�
妯欑敖锛�
涓婁竴绡囷細鐒$窔鍌虫劅鍣ㄧ恫绲$殑绲愭鍜屾妧琛�...
涓湅鍌冲嫊缍茬増娆婅垏鍏嶈铂鑱叉槑锛氬嚒鏈恫娉ㄦ槑[渚嗘簮锛氫腑鍦嬪偝鍕曠恫]鐨勬墍鏈夋枃瀛�銆佸湒鐗�銆侀煶瑕栧拰瑕栭牷鏂囦欢锛岀増娆婂潎鐐轰腑鍦嬪偝鍕曠恫(www.wangxinlc.cn)鐛ㄥ鎵€鏈夈€傚闇€杞夎級璜嬭垏0755-82949061鑱郴銆備换浣曞獟楂�銆佺恫绔欐垨鍊嬩汉杞夎級浣跨敤鏅傞爤娉ㄦ槑渚嗘簮鈥滀腑鍦嬪偝鍕曠恫鈥�锛岄仌鍙嶈€呮湰缍插皣杩界┒鍏舵硶寰嬭铂浠�銆�
鏈恫杞夎級骞舵敞鏄庡叾浠栦締婧愮殑绋夸欢锛屽潎渚嗚嚜浜掕伅缍叉垨妤�(y猫)鍏ф姇绋夸汉澹紝鐗堟瑠灞簬鍘熺増娆婁汉銆傝綁杓夎珛淇濈暀绋夸欢渚嗘簮鍙婁綔鑰�锛岀姝㈡搮鑷鏀癸紝閬曡€呰嚜璨犵増娆婃硶寰嬭铂浠�銆�
鐢㈠搧鏂拌仦
鏇村>绠″垏楂樻晥鍔犲伐绉樼睄锛氬皬绠″鏂�+Tekla鎻掍欢...
2025-05-19
B1绯诲垪鑴堟矕鍨嬩己鏈嶅伐钘濇鍔熻兘涓婄窔锛岃畵姗�...
2025-04-30
鎬ц兘韬嶅崌20%锛佺董瀹廚K300CX Plus鏁告帶绯荤当...
2025-04-11
rpi-image-gen锛氭ü鑾撴淳杌熶欢閺″儚妲嬪缓鐨勭祩...
2025-04-08
銆愮敘鍝佽В璁€銆戝叏闈㈡彁鍗囩簿瀵嗗埗閫犳娓瘈(ji茅)鎷�...
2025-03-31