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。

主站蜘蛛池模板: 国产区精品高清在线观看| 国产99久久亚洲综合精品西瓜tv| h网址在线观看| 国产亚洲精品97AA片在线播放| 精品亚洲国产成人AV| 欧美在线黄| 国产草草影院18成年视频| 久热这里只有精品6| 国模视频一区二区| 国产丝袜一区二区三区视频免下载| 青青草国产免费国产| 一级成人a做片免费| 免费看黄片一区二区三区| 亚洲欧美日韩综合二区三区| 日韩在线1| 在线免费a视频| 成人午夜视频网站| 国产精鲁鲁网在线视频| 中文字幕在线观| 九色视频一区| 亚洲伊人久久精品影院| 国产精品制服| 久久久久人妻一区精品| 国产在线观看精品| 久爱午夜精品免费视频| 狠狠色丁婷婷综合久久| 国产一级无码不卡视频| 朝桐光一区二区| 91毛片网| 日本一本正道综合久久dvd| 91无码视频在线观看| 色有码无码视频| 在线观看91精品国产剧情免费| 精品综合久久久久久97| 日韩欧美一区在线观看| 22sihu国产精品视频影视资讯| 97视频在线精品国自产拍| 国内丰满少妇猛烈精品播| 91在线播放国产| 激情无码字幕综合| 午夜福利网址| 有专无码视频| 中文无码精品A∨在线观看不卡| 国产在线视频福利资源站| 亚洲视频无码| 国产特级毛片| 中文无码伦av中文字幕| 亚洲第一极品精品无码| 亚洲精品va| 日本欧美成人免费| 99久久精品免费观看国产| 国产欧美日韩一区二区视频在线| 在线无码av一区二区三区| 国产麻豆aⅴ精品无码| 精品一区二区无码av| 国产欧美精品一区二区| 91成人精品视频| 亚洲欧美精品一中文字幕| 国产精品无码作爱| 国产原创自拍不卡第一页| 色综合中文字幕| 91伊人国产| 色成人亚洲| 麻豆精品在线| 亚洲免费福利视频| 8090成人午夜精品| 国产精品永久在线| 丁香婷婷久久| 国产一区三区二区中文在线| 亚洲成人黄色在线| 亚洲第一成网站| 九色综合伊人久久富二代| 永久免费AⅤ无码网站在线观看| 欧美日韩免费观看| 99精品免费在线| 免费在线a视频| 欧美成人免费一区在线播放| 亚洲乱伦视频| 精品国产女同疯狂摩擦2| 1级黄色毛片| 亚洲综合九九| 欧美午夜在线播放|