999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的多電機驅動及液晶顯示控制系統設計

2017-11-02 01:24:53葉春生
網絡安全與數據管理 2017年20期

吳 成,葉春生

(華中科技大學 材料科學與工程學院,湖北 武漢 430074)

基于STM32的多電機驅動及液晶顯示控制系統設計

吳 成,葉春生

(華中科技大學 材料科學與工程學院,湖北 武漢 430074)

基于STM32設計了多步進電機驅動及液晶實時顯示控制系統。電機驅動模塊以STM32F103VBT6為控制核心,控制三個步進電機的運動,利用按鍵實現電機及對應工作模式的選擇。液晶顯示模塊以STM32F103C8T6為控制核心,用于顯示按鍵選擇的工作模式及電機工作狀態。兩模塊利用串口通信模塊實時通信。該系統具有結構簡單、操作簡潔、界面友好和可移植性強等優點。

STM32;步進電機;液晶顯示;串口通信;模塊化設計

0 引言

步進電機因其結構簡單、控制方便和具有較高的定位精度等優點,在工業控制領域應用廣泛[1-2]。在工業實際應用中,有時需要使用多個步進電機,并涉及多種工作模式,例如單步往返、連續往復和轉動固定角度等,這對控制系統的功能多樣性和操作的簡潔性提出了高要求。而步進電機的工作狀態有運動中、運動完成和處于某一角度等,利用液晶屏將電機的運動狀態實時顯示出來,能使控制系統更加人性化,便于操作人員實時觀察電機的狀態。

1 系統整體架構

該系統共分為四個功能模塊。電機驅動模塊以STM32F103VBT6為控制核心,利用按鍵控制兩個帶驅動器的步進電機和一個兩相四線微型步進電機。液晶顯示模塊以STM32F103C8T6為控制核心,驅動以KS0108為控制器的LCD12864液晶屏。串口通信模塊以MAX3232為主芯片,用于電機驅動模塊和液晶顯示模塊之間的通信,達到實時顯示按鍵操作指令和電機運動狀態的目的。電源模塊則用于給控制系統供電。系統整體架構圖如圖1所示。

圖1 系統整體架構圖

表1列出了系統需要實現的功能及實現方法。考慮到在工控領域需要的步進電機工作模式是多種多樣的,因而在系統功能設計過程中選擇了多種較為常見的工作模式。

表1 系統功能特點表

圖2 步進電機1驅動電路原理圖

圖3 液晶顯示模塊電路原理圖

本系統中的6個按鍵分別對應電機選擇、工作模式選擇、角度/距離加、角度/距離減、確認和停止功能。

在液晶實時顯示的過程中,為了使界面更加友好并具有較高的可移植性,需要對液晶的顯示界面進行設計。LCD12864液晶能顯示4行8列,最多32個漢字(或64個字符)[3]。由于在本系統中需要利用按鍵實現電機、工作模式和角度的設置,而且3個電機的工作狀態需要實時顯示,據此將液晶屏根據行劃分為四個顯示區。第一行用于按鍵選擇實時顯示,包括電機類型、工作模式和角度三個顯示單元;第二行至第四行依次為3個電機實時顯示區,包括電機類型、工作模式、角度和工作狀態四個顯示單元。其中當電機1和電機2處于運動狀態時,液晶的工作狀態顯示單元顯示“…”,電機2停止時工作狀態顯示為當前所處角度。微型電機運動時工作狀態顯示為“√”,停止則不顯示。按鍵中的“確認”按鈕被按下時,就將第一行設定好的電機、工作模式和角度更新到第二行至第四行對應電機所在的行。

2 系統硬件電路設計

2.1 電機驅動模塊電路設計

圖4 串口通信模塊電路原理圖

兩個采用驅動器驅動的步進電機,控制信號包括電機使能、步進脈沖和運動方向,均為5 V信號。由于目前大部分采用驅動器的步進電機的控制信號均為5 V,因而該模塊電路具有較好的可移植性。步進電機1的電路原理圖如圖2所示,步進電機2的電路原理圖與此類似。兩相四線微型電機共有A+、A-、B+和B-四個控制信號[4],利用STM32的普通IO口加上L298N驅動板實現控制。兩相四線微型電機驅動電路的設計,使得電機驅動模塊電路功能更加多樣化,具有一定的普適性。

2.2 液晶顯示模塊電路設計

本系統中液晶屏采用并行數據傳輸方式,本身不帶字庫功能,采用5 V電壓驅動。液晶顯示模塊電路原理圖如圖3所示。電路中的74HC244芯片為8路正相緩沖器,用于提高STM32引腳的帶負載能力及實現數據緩沖作用[5]。電路圖左側的RS、RW、E、CS1、CS2和RET為液晶屏控制信號,對應表示數據/命令信號、讀寫信號、使能信號、片選信號、片選信號和復位信號。DB0-DB7為液晶屏并行數據輸入端口。液晶屏利用排插與液晶顯示控制板相連。

2.3 串口通信模塊電路設計

串口通信模塊電路采用MAX3232作為控制芯片,采用RS232標準接口,使得控制板具有很高的可移植性。串口通信模塊電路原理圖如圖4所示。

3 系統軟件程序設計

3.1 按鍵控制程序設計

按鍵控制程序利用STM32的外部中斷改變對應控制的標志位,本系統中利用STM32的PE10控制電機選擇、PE11控制工作模式選擇、PE12控制角度/距離加、PB14控制角度/距離減、PB15控制確定、PD8控制停止。以PE12控制角度加為例,關鍵代碼如下:

EXTI_Key_Config();

// 按鍵引腳IO口初始化、中斷初始化

NVIC_key_Configuration();

//按鍵中斷向量寄存器初始化

void EXTI15_10_IRQHandler()

{

delay_ms(10);

//延時消抖

if(EXTI_GetITStatus(EXTI_Line12)!= RESET)

{

if(angle_set == 90)

//設置角度最大90°

angle_set = 90;

else

angle_set++;

angle_info_usart[1] = angle_set;

for(i=0; i<3; i++)

//串口發送,實時顯示

{

USART_SendData(USART1,angle_info_usart[i]);

while(USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);

}

}

EXTI_ClearITPendingBit(EXTI_Line12);

}

圖5 電機轉動固定角度邏輯控制圖

3.2 電機旋轉固定角度程序設計

對于電機1和電機2,由于采用步進電機驅動器驅動,利用STM32的定時器來進行脈沖輸出來驅動電機,并利用定時器的溢出中斷來進行脈沖計數,達到旋轉固定角度或者直線移動固定距離的目的。以定時器3控制電機2正向轉動固定角度為例,邏輯控制圖如圖5所示。

而微型電機由于是兩相四線結構,共有A1、A2、B1和B2四路信號。在對其進行控制時,采用A+B+、A+B-、A-B-、A-B+的通電順序驅動電機正轉,采用A+B+、A-B+、A-B-、A+B-的通電順序驅動電機反轉,其中A+表示A相通正向電壓,A-表示A相通反向電壓,其他依此類推[6]。在本系統中,利用主函數輪詢來判斷按鍵是否選擇了微型電機及對應工作模式,實現對微型電機的控制,微型電機正轉代碼如下所示:

void micromotor_rotate_pst(void)

//正轉,通斷次序:A+B+、A+B-、A-B-,A-B+

{

Coil_A1B1();

// A+B+

delay_ms(1);

Coil_A1B2();

// A+B-

delay_ms(1);

Coil_A2B2();

// A-B-

delay_ms(1);

Coil_A2B1();

// A-B+

delay_ms(1);

}

在主函數中,輪詢微型電機選擇和模式選擇的狀態標志位,達到利用按鍵控制微型電機工作模式的目的。關鍵代碼如下:

int main(void)

{

……

while(1)

//主函數輪詢

{

if(motor_confirm == micromotor && mode_confirm == rotate_pst_mode)

micromotor_rotate_pst();

}

……

}

3.3 液晶顯示控制程序

對液晶顯示的控制主要包括了讀忙狀態、寫數據、寫指令和讀數據四個操作。在對液晶進行讀寫操作前,必須檢測液晶屏的忙狀態[7]。只有當液晶屏處于空閑狀態時,才能對其進行讀寫操作,代碼如下:

uint8_t Read_Busy(void)

// 讀忙狀態

{

uint8_t If_Busy_flag = 0;

Port_IN_Config();

// 配置并行數據輸入

Set(RS, 0);

// RS=0,指令

Set(RW, 1);

// RW=1,讀操作

OCM12864_Enable();

Delay_ms(2);

//延時,確保使能完成

If_Busy_flag=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7);

// 讀取忙標志位

OCM12864_Disable();

// 使能液晶屏

return If_Busy_flag;

//當讀寫操作已添加足夠延時,可設置返回0

}

對液晶進行寫指令、寫數據和讀數據操作前,必須先檢測液晶的忙狀態。需要選擇相應的讀寫模式和數據命令模式,寫數據功能的代碼如下:

void Write_LCD_Data(u8 data)

{

while(Read_Busy()== IS_Busy);

//忙檢測

Port_OUT_Config();

//并行數據輸出

Set(RS, 1);

//RS=1

Set(RW, 0);

//RW=0

GPIOA->ODR=((GPIOA->ODR & 0xff00) | data);

//寫數據到并行口

OCM12864_Enable();

//使能液晶屏

Delay_ms(1);

//延時,確保寫數據完成

OCM12864_Disable();

//失能液晶屏

}

由于該液晶屏本身不帶字庫,因而首先需要利用字模軟件將字符提取出字模并寫入程序中[8]。在液晶屏上實現任意坐標顯示字符的代碼如下:

void show(u8 x,u8 y,u8 xl,u8 yl,u8 row_xl,u8 row_yl,u8*chn)

{

u8 n1,n2,k,i,a;

for(i=0;i

{

for(k=0;k

{

for(n2=0;n2

{

Set_Page(0);

//設置頁

Set_Line(x+i*xl+n2);

//設置行

Set_Column(y+k*yl);

//設置列

a=i*xl*yl*row_yl+k*xl*yl+n2*yl;

for(n1=0;n1

Write_LCD_Data(chn[a+n1]);

//寫入點陣

Delay_ms(1);

}

}

}

}

4 結論

通過系統軟硬件調試后,該系統能同時控制兩個帶驅動器的步進電機和一個兩相四線步進電機,并能利用按鍵設置電機的多種工作模式,液晶顯示屏能實時顯示按鍵的設置過程和電機的工作狀態,達到了預期的設計目標。該系統結構簡單,操作簡潔,界面友好,功能較為全面。由于采用模塊化設計,該控制系統具有較強的可移植性,適用性較為廣泛。

[1] 劉慧英,范寶山. 基于STM32的多步進電機控制系統研究[J]. 測控技術,2010,29(6):54-57.

[2] Wang Yanwen, Zhang Yanping, Ge Biao. Design of stepper motor drive based on AMIS30512[C]. Information and Communication Engineering (EICE2012),2012:6.

[3] 李壯輝,朱清慧,任擁偉. 液晶顯示應用控制系統設計與實現[J]. 液晶與顯示,2013,28(6):889-894.

[4] 趙曉光,李建初. 基于AT89C52單片機的步進電機控制系統研究[J]. 硅谷,2013(3):80-81.

[5] 包敬海,樊東紅,陸安山,等. 基于DS18B20的多點體溫檢測系統的研究[J]. 自動化與儀表,2010,25(2):20-22.

[6] 向海健. 基于L297/298的步進電機工作模式的單片機接口[J]. 微計算機信息,2007,23(26):302-303.

[7] 孫林軍,賀鋒濤. 基于STM32控制液晶的接口實現[J]. 電視技術,2013,37(1):77-79.

[8] 楊偉,肖義平. 基于STM32F103C8T6單片機的LCD顯示系統設計[J]. 微型機與應用,2014,33(20):29-31.

Design of control system of multiple motors driving and LCD display based on STM32

Wu Cheng, Ye Chunsheng

(School of Material Science and Engineering, Huazhong University of Science and Technology, Wuhan 430074, China)

The control system of multiple stepper motors driving and LCD real-time display based on STM32 is designed. The motor driving module takes STM32F103VBT6 as the control core, controls the motion of three stepper motors, and uses keys to select the motors and the corresponding modes. The LCD module takes STM32F103C8T6 as the control core, which is used to display the working modes selected by keys and the working states of the motors. The two modules use serial communication module to achieve real-time communication. The system has the advantages of simple structure and operation, friendly interface and high portability.

STM32; stepper motor; liquid-crystal display; serial communication; modular design

TP391

A

10.19358/j.issn.1674- 7720.2017.20.002

吳成,葉春生.基于STM32的多電機驅動及液晶顯示控制系統設計[J].微型機與應用,2017,36(20):6-9.

2017-03-31)

吳成(1992-),男,在讀碩士研究生,主要研究方向:裝備自動化、嵌入式控制系統。

葉春生(1962-),通信作者,男,博士,副教授,主要研究方向:材料加工裝備及自動化。E-mail:csye@hust.edu.cn。

主站蜘蛛池模板: 在线国产91| 国产成人精品一区二区免费看京| 久久a毛片| 四虎永久免费网站| 日本精品影院| 久久精品中文无码资源站| 丰满人妻一区二区三区视频| 婷婷激情五月网| 亚洲人成网站在线播放2019| 扒开粉嫩的小缝隙喷白浆视频| 欧美a在线看| 久久精品视频亚洲| 久久无码av三级| 久久国产精品77777| 国产精品太粉嫩高中在线观看| 狼友视频一区二区三区| 国产在线高清一级毛片| 免费a在线观看播放| 久久精品无码一区二区国产区| 久久99精品久久久久纯品| 国产精品无码制服丝袜| 人妻21p大胆| 91娇喘视频| 四虎永久在线精品国产免费| 国产尤物jk自慰制服喷水| 国产剧情无码视频在线观看| 色综合久久88| 国产精品久久久精品三级| 亚洲品质国产精品无码| 欧美成人精品一区二区| 中国国语毛片免费观看视频| 97在线公开视频| 欧美亚洲国产精品第一页| 亚洲精品中文字幕午夜| 日本欧美视频在线观看| 香蕉在线视频网站| 777午夜精品电影免费看| 亚洲天堂首页| 日韩A∨精品日韩精品无码| 国产在线观看91精品| 手机在线免费不卡一区二| 伊人久热这里只有精品视频99| 91亚洲国产视频| 日韩欧美中文亚洲高清在线| 欧美在线黄| 免费国产在线精品一区| 国产剧情一区二区| 在线看片中文字幕| 19国产精品麻豆免费观看| 欧美一区国产| 日韩天堂网| 毛片免费视频| 国产成人做受免费视频| 97色婷婷成人综合在线观看| 欧美日本中文| 日本欧美中文字幕精品亚洲| jizz国产在线| 在线观看av永久| 久久香蕉国产线看观看精品蕉| 国产一级无码不卡视频| 久久99精品国产麻豆宅宅| 她的性爱视频| 国产精选小视频在线观看| 久久无码av三级| 日韩欧美中文字幕在线韩免费| 高清无码手机在线观看| 成人欧美在线观看| 久久久久久午夜精品| 在线日韩日本国产亚洲| 五月天婷婷网亚洲综合在线| 无码高清专区| 久久99精品久久久久纯品| 亚洲精品视频免费| 国产午夜福利亚洲第一| V一区无码内射国产| 久久久久亚洲Av片无码观看| 曰韩免费无码AV一区二区| 久久亚洲国产最新网站| 亚洲人网站| 中文字幕天无码久久精品视频免费| 97久久超碰极品视觉盛宴| 欧美性色综合网|