資源簡介
嵌入式課設做的設計,用的STM32F103ZET6,使用按鍵控制步進電機狀態,包括加速減速停止正反轉等,帶LCD顯示。

代碼片段和文件信息
#include?“zihanshu.h“
#include?“delay.h“
u8?Disp[]=“Speed:“;
u8?Disp2[]={0x300x310x320x330x340x350x360x370x380x39};//0-9的地址碼
u8?Disp3[]=“foreward“;//正轉的英文????
u8?Disp4[]=“reversal“;//反轉的英文????
u8?Disp5[]=“?static?“;//靜止
u8?Disp6[]=“XZIT?15DX2“;
int?keyflag;
int?keyflag2;
int?mn;
int?i=18;
/*對io口進行配置*/
void?shuchu_Init(void)
{
/*使能時鐘*/
RCC->APB2ENR|=1<<3;??????? ?
RCC->APB2ENR|=1<<6;????
RCC->APB2ENR|=1<<5;?
??RCC->APB2ENR|=1<<7;?
/*設置端口狀態*/
GPIOB->CRL&=0XFF0FFFFF;?//清除其他位并保證要設置的位不變
GPIOB->CRL|=0X00300000;//PB.5?推挽輸出??? ?
????GPIOB->ODR=0x0;??????//PB.5?輸出低
GPIOB->CRH&=0XFFFFFFF0;????
GPIOB->CRH|=0X00000003;//PB.8?推挽輸出?
GPIOB->ODR=0x0; ???//輸出為低
GPIOE->CRL&=0XFF000000;
GPIOE->CRL|=0X00388888;//PE.5推挽輸出PE1234輸入
GPIOE->ODR=0x1f;??????//PE.5輸出低?1234輸入高
GPIOD->CRL&=0X00000000;?
GPIOD->CRL|=0X11111111;??//PD推挽輸出最大頻率10mhz? ?
????GPIOD->ODR=0x00;?
GPIOF->CRL&=0XFFFF000F;?
GPIOF->CRL|=0X00003330;???//PF推挽輸出 ?
????GPIOF->ODR=0xff;?????
}
/*向LCD寫入一個字節的命令*/
void?LcdWriteCom(u8?com) ??//寫入命令
{
LCD1602_E?=?0;?????//使能
LCD1602_RS?=?0; ???//選擇發送命令
LCD1602_RW?=?0; ???//選擇寫入
LCD1602_DATAPINS?=?com;?
delay_ms(1);
LCD1602_E?=?1; ??????????//寫入時序
delay_ms(5); ??//保持時間
LCD1602_E?=?0;
}
/*向LCD寫入一個字節的數據*/ ???
void?LcdWriteData(u8?dat) //寫入數據
{
LCD1602_E?=?0; //使能清零
LCD1602_RS?=?1; //選擇輸入數據
LCD1602_RW?=?0; //選擇寫入
LCD1602_DATAPINS?=?dat;?//寫入數據
delay_ms(1);
LCD1602_E?=?1;???//寫入時序
delay_ms(5);??//保持時間
LCD1602_E?=?0;
}
???
/*顯示speedis的部分??初始化有清屏*/
void?LcdInit() ??
{
? LcdWriteCom(0x38);??//開顯示
LcdWriteCom(0x0c);??//開顯示不顯示光標
LcdWriteCom(0x06);??//寫一個指針加1
LcdWriteCom(0x01);??//清屏
LcdWriteCom(0x80);??//設置數據指針起點?1?0000000
}
/*顯示速度的部分???初始化不能清屏*/
void?LcdInit2() ??
{
? LcdWriteCom(0x38);??//開顯示
LcdWriteCom(0x0c);??//開顯示不顯示光標
LcdWriteCom(0x06);??//寫一個指針加1
//LcdWriteCom(0x01);??//清屏
LcdWriteCom(0x86);??//設置數據指針起點?1?0000110
}
/*顯示正反轉和靜止的部分?初始化不能清屏*/
void?LcdInit3() ??
{
? LcdWriteCom(0x38);??//開顯示
LcdWriteCom(0x0c);??//開顯示不顯示光標
LcdWriteCom(0x06);??//寫一個指針加1
//LcdWriteCom(0x01);??//不清屏
LcdWriteCom(0x88);??//設置數據指針起點
}
void?LcdInit4() ??
{
? LcdWriteCom(0x38);??//開顯示
LcdWriteCom(0x0c);??//開顯示不顯示光標
LcdWriteCom(0x06);??//寫一個指針加1
//LcdWriteCom(0x01);??//不清屏
LcdWriteCom(0xc3);??//設置數據指針起點
}
/*****************************************************************/
/*顯示speed?is*/
void?xianshi()
{ u8?i;
u8?k=6;
LcdInit();???????//初始化對應
for(i=0;i {
LcdWriteData(Disp[i]);
}
}
/*********************************************************************/
/*****************顯示數字??顯示速度用***********************************/
void?xianshi2(u8?n)
{
LcdInit2();
LcdWriteData(n); //發送數字的碼
}
/******顯示字符動態顯示狀態*********/
void?xianshi3(u8?m[])
{
u8?i;
LcdInit3();?????//對應的初始化,不清屏否則speedis被清除
for(i=0;i<8;i++)
{
LcdWriteData(m[i]);
}
}
void
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-14?21:23??ARM課設\
?????目錄???????????0??2018-07-11?10:32??ARM課設\OBJ\
?????文件??????224879??2018-07-11?10:32??ARM課設\OBJ\delay.crf
?????文件?????????312??2018-07-11?10:32??ARM課設\OBJ\delay.d
?????文件??????238940??2018-07-11?10:32??ARM課設\OBJ\delay.o
?????文件??????236636??2018-07-11?10:32??ARM課設\OBJ\dianji.axf
?????文件????????1807??2018-07-11?10:32??ARM課設\OBJ\dianji.build_log.htm
?????文件??????225543??2018-07-11?10:32??ARM課設\OBJ\dianji.crf
?????文件?????????349??2018-07-11?10:32??ARM課設\OBJ\dianji.d
?????文件????????7161??2018-07-11?10:32??ARM課設\OBJ\dianji.hex
?????文件???????47968??2018-07-11?10:32??ARM課設\OBJ\dianji.htm
?????文件?????????362??2018-07-11?10:32??ARM課設\OBJ\dianji.lnp
?????文件???????66638??2018-07-11?10:32??ARM課設\OBJ\dianji.map
?????文件??????238036??2018-07-11?10:32??ARM課設\OBJ\dianji.o
?????文件?????????479??2018-07-08?14:51??ARM課設\OBJ\dianji.sct
?????文件????????3177??2018-07-11?10:32??ARM課設\OBJ\dianji_Target?1.dep
?????文件??????????55??2018-07-11?10:32??ARM課設\OBJ\startup_stm32f10x_hd.d
?????文件???????49300??2018-07-11?10:32??ARM課設\OBJ\startup_stm32f10x_hd.lst
?????文件????????6712??2018-07-11?10:32??ARM課設\OBJ\startup_stm32f10x_hd.o
?????文件??????226200??2018-07-11?10:32??ARM課設\OBJ\sys.crf
?????文件?????????255??2018-07-11?10:32??ARM課設\OBJ\sys.d
?????文件??????251804??2018-07-11?10:32??ARM課設\OBJ\sys.o
?????文件??????228347??2018-07-11?10:32??ARM課設\OBJ\zihanshu.crf
?????文件?????????383??2018-07-11?10:32??ARM課設\OBJ\zihanshu.d
?????文件??????257856??2018-07-11?10:32??ARM課設\OBJ\zihanshu.o
?????目錄???????????0??2018-07-08?14:37??ARM課設\SYSTEM\
?????目錄???????????0??2018-07-08?14:37??ARM課設\SYSTEM\delay\
?????文件????????5968??2018-06-30?20:02??ARM課設\SYSTEM\delay\delay.c
?????文件????????1995??2015-05-19?13:12??ARM課設\SYSTEM\delay\delay.h
?????目錄???????????0??2018-07-08?14:37??ARM課設\SYSTEM\sys\
?????文件???????85714??2011-02-09?14:59??ARM課設\SYSTEM\sys\core_cm3.h
............此處省略18個文件信息
- 上一篇:智能駕駛進程與毫米波雷達技術動態
- 下一篇:MicroHard P900 應用手冊
評論
共有 條評論