欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2251|回復: 0
收起左側

STM32f103單片機工業控制急停模擬系統程序設計

[復制鏈接]
ID:827939 發表于 2023-10-20 18:27 | 顯示全部樓層 |閱讀模式
該項目名稱為工業控制急停模擬系統,主要內容是模擬工業控制急停系統,通過檢測外部急停信號,完成急停控制輸出,并定時產生警報燈顯示,將警報數據傳輸到計算機系統上。綜合運用嵌入式系統與設計中微控制器外部中斷、定時器、GPIO 和串口等內部資源,結合檢測技術、輸出控制技術以及串口通信傳輸的知識實現工業控制急停模擬系統的功能。
1、外部中斷檢測急停按鍵:將急停按鍵接到相應 GPI0 端口,設置 GPIO 為外部中斷模式,設置合適的優先級和邊沿檢測方式,設計外部中斷服務程序;
2、定時驅動 LED 提示報警閃爍:為了影響主程序的運行,LED 定時提示閃爍采用定時方式,選擇適合的定時器,設置其工作模式、分頻比、定時時間。編寫定時中斷服務程序。使警示 LED閃爍提示;
3、利用串口傳輸信息到 PC 機:選擇其中一個串行接口,設置波特率 9600,無校驗,停止位為 1 位,對應將數據傳輸到 PC 機的串口調試助手上,設計串口數據信息傳輸;
4、利用 GPIO 輸出控制繼電器(繼電器可用 LED 模擬):將 GPIO 設置為通用推挽輸出,控制繼電器輸出。通過綜合以上模塊軟件,實現以下功能:1 )未按下緊急按鍵時,將正常運行信息通過串口發生至上位機;警示 LED常亮;2 )當按下緊急按鍵時,警示 LED 定時閃爍;將急停信息通過串口發生至上位機;并將輸出控制的繼電器切斷(可用 LED 代替)。

單片機源程序如下:
  1. #include  "delay.h"
  2. #include  "led.h"
  3. #include  "key.h"
  4. #include  "usart.h"
  5. #include  "exti.h"
  6. #include   "TIM2.h"
  7. #include "sys.h"
  8. char flag;
  9. int main(void)
  10. {

  11.   delay_init();                     //延時函數初始化
  12.         uart_init(9600);            //串口初始化為9600  
  13.         LED_Init();                              //初始化與LED連接的硬件接口
  14.         KEY_Init();                                //        按鍵端口初始化
  15.         EXTIX_Init();                         //外部中斷初始化
  16.   TIM2_TimBaseInit();
  17.          while(1)
  18.         {
  19.                 if(!flag)
  20.                 {
  21.                 led_zc();
  22.                 delay_ms(1000);
  23.                 printf("正常\r\n");
  24.         }
  25. }
  26. }
  27. void TIM2_IRQHandler(void)
  28. {
  29.         TIM_ClearFlag(TIM2 , TIM_FLAG_Update);//設置NVIC中斷分組為2 , 2:2位搶占優先級,2級響應優先級
  30.                
  31.                 if(flag)
  32.                 {
  33.                         PAout(8)^=1;
  34.                         PDout(2) =1;
  35.                         printf("警報警報\r\n");
  36.                         TIM_GetITStatus(TIM2,TIM_IT_Update);
  37.                 }
  38. }

  39. void EXTI0_IRQHandler(void)
  40. {
  41.         delay_ms(10);
  42.         if(WK_UP==1)                 
  43.         {                                 
  44.                 flag +=1;        
  45. //                if(flag>1)flag=0;
  46.                 EXTI_ClearITPendingBit(EXTI_Line0);
  47.         }
  48. }
復制代碼

原理圖: 無
仿真: 無
代碼: 程序.7z (185.55 KB, 下載次數: 10)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表