亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2017-11-02 01:24:53葉春生
        網絡安全與數據管理 2017年20期
        關鍵詞:液晶顯示液晶屏按鍵

        吳 成,葉春生

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

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

        吳 成,葉春生

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

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

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

        0 引言

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

        1 系統(tǒng)整體架構

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

        圖1 系統(tǒng)整體架構圖

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

        表1 系統(tǒng)功能特點表

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

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

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

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

        2 系統(tǒng)硬件電路設計

        2.1 電機驅動模塊電路設計

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

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

        2.2 液晶顯示模塊電路設計

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

        2.3 串口通信模塊電路設計

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

        3 系統(tǒng)軟件程序設計

        3.1 按鍵控制程序設計

        按鍵控制程序利用STM32的外部中斷改變對應控制的標志位,本系統(tǒng)中利用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++)

        //串口發(fā)送,實時顯示

        {

        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]。在本系統(tǒng)中,利用主函數輪詢來判斷按鍵是否選擇了微型電機及對應工作模式,實現對微型電機的控制,微型電機正轉代碼如下所示:

        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);

        }

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

        int main(void)

        {

        ……

        while(1)

        //主函數輪詢

        {

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

        micromotor_rotate_pst();

        }

        ……

        }

        3.3 液晶顯示控制程序

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

        uint8_t Read_Busy(void)

        // 讀忙狀態(tài)

        {

        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

        }

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

        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 結論

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

        [1] 劉慧英,范寶山. 基于STM32的多步進電機控制系統(tǒng)研究[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] 李壯輝,朱清慧,任擁偉. 液晶顯示應用控制系統(tǒng)設計與實現[J]. 液晶與顯示,2013,28(6):889-894.

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

        [5] 包敬海,樊東紅,陸安山,等. 基于DS18B20的多點體溫檢測系統(tǒng)的研究[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顯示系統(tǒng)設計[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的多電機驅動及液晶顯示控制系統(tǒng)設計[J].微型機與應用,2017,36(20):6-9.

        2017-03-31)

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

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

        猜你喜歡
        液晶顯示液晶屏按鍵
        基于有限狀態(tài)機的按鍵檢測程序設計
        電子制作(2021年3期)2021-06-16 03:14:26
        基于STM32F4的多通道串口驅動TFT液晶屏顯示系統(tǒng)設計
        液晶與顯示(2020年5期)2020-05-06 13:46:58
        FPGA的TFT-LCD真彩液晶屏顯示控制
        一種多方向導光按鍵結構設計
        電子制作(2016年1期)2016-11-07 08:43:05
        基于機器視覺的液晶屏字符缺陷檢測系統(tǒng)設計
        122×32 點陣液晶顯示漢字原理實驗
        基于圖像處理的電能表液晶屏質量檢測方法
        電測與儀表(2014年9期)2014-04-15 00:27:02
        按鍵的多種狀態(tài)檢測及消抖處理方法
        家電科技(2013年4期)2013-07-09 10:55:08
        界面致穩(wěn)型柔性膽甾相液晶顯示器件的制備與性能
        解析某型號手機按鍵檢測程序的缺陷
        国产一区二区免费在线观看视频| 性欧美videofree高清精品 | 亚洲一区二区三区视频免费| 国产免费精品一品二区三| 激情视频在线观看好大| 老妇高潮潮喷到猛进猛出| 欧美性高清另类videosex| 先锋影音av最新资源| 色综合另类小说图片区| 亚洲AV无码一区二区三区少妇av| 国产影院一区二区在线| 国产乱精品女同自线免费| 欧美成人猛交69| 亚洲国产成人久久综合一区77| 美女被射视频在线观看91| 亚洲国产av精品一区二| 涩涩鲁精品亚洲一区二区| 熟女体下毛荫荫黑森林| 少妇被粗大的猛烈进出69影院一| 国产人妖视频一区二区| 欧美成人免费看片一区| 亚洲国产中文字幕九色| 国产特级毛片aaaaaa高潮流水| 一区二区三区乱码在线 | 欧洲| 一二三四视频社区在线| 四虎影视国产在线观看精品| 日本中文字幕一区二区视频| 男的和女的打扑克的视频| 国内永久福利在线视频图片| 久久九九久精品国产| 99热精品国产三级在线观看| 成人国产乱对白在线观看| 日本一二三四区在线观看| 三年片在线观看免费观看大全中国| 天天夜碰日日摸日日澡| 久久福利青草精品免费| 玩弄放荡人妻一区二区三区| 校园春色综合久久精品中文字幕| 激情综合一区二区三区| 亚洲区精选网址| 在线观看免费的黄片小视频|