-
大小: 80KB文件類型: .zip金幣: 2下載: 1 次發(fā)布日期: 2021-05-20
- 語(yǔ)言: 其他
- 標(biāo)簽: 51單片機(jī)??步進(jìn)電機(jī)??lcd1602??矩陣鍵盤??
資源簡(jiǎn)介
51單片機(jī)的步進(jìn)電機(jī)控制,lcd1602顯示電機(jī)轉(zhuǎn)動(dòng)方向及轉(zhuǎn)速,用矩陣鍵盤調(diào)整方向及速度,包含c源碼及proteus仿真

代碼片段和文件信息
/***************************************************
程序使用1毫秒定時(shí)器中斷實(shí)現(xiàn)轉(zhuǎn)速精確控制
步進(jìn)電機(jī)用8拍驅(qū)動(dòng)(A-AB-B-BC-C-CD-D-DA)
****************************************************/
#include?
#include?“LCD1602.H“
#define???uchar?unsigned?char?
#define???uint??unsigned?int?
#define???ulong?unsigned?long
/*****端口定義************/
#define?P_key??P3
sbit?motor_a=P1^0;
sbit?motor_b=P1^1;
sbit?motor_c=P1^2;
sbit?motor_d=P1^3;
bit???run=0;
uint??speed;
uint??temp_t1temp_t2;
uchar?KeyValue?;
uchar?motor_step;
void??Disply(void);?//顯示
uchar?GetKey(void);//返回鍵盤值0--16
void??ScanKey(void);//鍵盤掃描處理
void??SetMotorSpeed(uint?nSpeed);//設(shè)置電機(jī)轉(zhuǎn)速?nSpeed:轉(zhuǎn)速?step/s
void??delayNms(uint?z);//延時(shí)
?
/*****主函數(shù)************/
void?main()
{
???lcd1602_init();
???motor_a=0;
???motor_b=1;
???motor_c=1;
???motor_d=1;?
???motor_step=0;
???TMOD?=?0x01;
???TH0?=?0x0FC;
???TL0?=?0x18;
???EA?=?1;
???ET0?=?1;
???TR0?=?1;
???while(1)
???{?
????Disply();
ScanKey();
???}
}
/*****延時(shí)************/??
void?delayNms(uint?z)
{
uint?x;
for(?;z>0;z--)
for(x=124;x>0;x--)
;
}
/*****設(shè)置電機(jī)轉(zhuǎn)速************/
void??SetMotorSpeed(uint?nSpeed)//?nSpeed:轉(zhuǎn)速?step/s
{
??speed=nSpeed;
??if(speed!=0)
??{
????run=1;
//計(jì)算每步需要多少毫秒
temp_t2=1000/nSpeed;
??}
??else
??{
????run=0;
??}
}
/*****1毫秒定時(shí)器************/
void?Timer0Interrupt(void)?interrupt?1
{
???if(run)
???{
?????temp_t1++;
?if(temp_t1>temp_t2)
?{
????temp_t1=0;
????motor_step++;
????if(motor_step>7)??motor_step=0;
????????switch?(motor_step)
????{
???????case?0:
???????{
??????????motor_a=0;?motor_b=1;
??????motor_c=1;?motor_d=1;
??????break;
????????}
????????case?1:
????????{
??????????motor_a=0;?motor_b=0;
??????motor_c=1;?motor_d=1;
??????break;
????????}
????????case?2:
????????{
??????????motor_a=1;?motor_b=0;
??????motor_c=1;?motor_d=1;
??????break;
????????}
????????case?3:
????????{
??????????motor_a=1;?motor_b=0;
??????motor_c=0;?motor_d=1;
??????break;
????????}
????????case?4:
????????{
??????????motor_a=1;?motor_b=1;
??????motor_c=0;?motor_d=1;
??????break;
????????}
????????case?5:
????????{
??????????motor_a=1;?motor_b=1;
??????motor_c=0;?motor_d=0;
??????break;
????????}
????????case?6:
????????{
??????????motor_a=1;?motor_b=1;
??????motor_c=1;?motor_d=0;
??????break;
????????}
????????case?7:
????????{
??????????motor_a=0;?motor_b=1;
??????motor_c=1;?motor_d=0;
??????break;
????????}
???????default:?break; ???
?????}
?
??}
}
????TH0?=?0x0FC;
????TL0?=?0x18;
}
/***********顯示************/
void?Disply(?)?
{
????uchar?DisBuff[16];
DisBuff[0]=‘S‘;
DisBuff[1]=‘p‘;
DisBuff[2]=‘e‘;
DisBuff[3]=‘e‘;
DisBuff[4]=‘d‘;
DisBuff[5]=speed>9999???speed%100000/10000+0x30?:?0x20;
DisBuff[6]=speed>999???speed%10000/1000+0x30?:?0x20;
DisBuff[7]=speed>99???speed%1000/100+0x30?:?0x20;
DisBuff[8]=speed>9???speed%100/10+
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-01-22?11:26??lcd1602?motor\
?????文件??????109105??2011-12-27?19:46??lcd1602?motor\Last?Loaded?sx.DBK
?????文件????????1985??2006-06-11?08:38??lcd1602?motor\LCD1602.H
?????文件????????5421??2011-12-28?00:30??lcd1602?motor\main.c
?????文件???????12344??2011-12-28?00:30??lcd1602?motor\main.LST
?????文件???????15267??2011-12-28?00:30??lcd1602?motor\main.OBJ
?????文件??????????34??2011-12-28?00:30??lcd1602?motor\main.__i
?????文件???????14072??2011-12-28?00:30??lcd1602?motor\motor_1602
?????文件????????4865??2011-12-28?00:30??lcd1602?motor\motor_1602.hex
?????文件??????????62??2011-12-28?00:30??lcd1602?motor\motor_1602.lnp
?????文件???????21572??2011-12-28?00:30??lcd1602?motor\motor_1602.M51
?????文件?????????908??2011-12-28?11:38??lcd1602?motor\motor_1602.opt.bak
?????文件?????????184??1993-05-05?07:51??lcd1602?motor\motor_1602.plg
?????文件????????2171??2011-12-27?23:21??lcd1602?motor\motor_1602.Uv2.bak
?????文件???????55401??1993-05-05?07:51??lcd1602?motor\motor_1602.uvopt
?????文件???????13422??1993-05-05?07:51??lcd1602?motor\motor_1602.uvproj
?????文件????????1064??2011-12-28?00:35??lcd1602?motor\motor_1602_Opt.Bak
?????文件????????2170??2011-12-27?20:05??lcd1602?motor\motor_1602_Uv2.Bak
?????文件????????6376??2011-12-28?00:27??lcd1602?motor\STARTUP.A51
?????文件???????10782??2011-12-28?00:27??lcd1602?motor\STARTUP.LST
?????文件?????????750??2011-12-28?00:27??lcd1602?motor\STARTUP.OBJ
?????文件??????116440??2011-12-28?00:34??lcd1602?motor\sx.DSN
?????文件?????????840??2013-01-22?11:26??lcd1602?motor\sx.PWI
?????文件?????????109??2011-12-27?17:40??lcd1602?motor\新建文本文檔.txt
評(píng)論
共有 條評(píng)論