那曲檬骨新材料有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>STM8S單片機入門:關機模式開關機按鈕資料下載

STM8S單片機入門:關機模式開關機按鈕資料下載

2021-04-22 | pdf | 412.31KB | 次下載 | 2積分

資料介紹

開關機功能是使用電池供電系統的最基本功能。如果使用機械式開關(2段撥動開關,自鎖開關等)等直接接通和切斷電源,不說機械部件的可靠性,至少自動關機(一般在長時間不操作、電池電量低時需要自動關機)功能就比較難實現。所以電池供電系統一般采用按鈕開關,用一個按鈕配合軟件實現按一次開機、再按一次關機的功能及自動關機的功能。 這部分內容就講述如何在上實現一鍵式的開關機功能。開關機功能要使用單片機的一個引腳(PD4)作為輸入端,連接到按鈕,接收按紐按下產生的電信號,然后再使用另一個引腳(PD3)作為輸出端去驅動由三極管8550構成的一個電子開關實現對系統電源的控制。而STM8S單片機本身就直接接在電池上,利用單片機的停機模式,將單片機本身的電流降低到μA級,對電池的消耗就可以忽略不計了。 1、電路設計 電路圖如下,C1是STM8S單片機VCAP電容,保持內部1.8V電壓的穩定,是STM8S單片機唯一必須接要的外部元件,選用容量為1μF的瓷片電容,而且從電路可靠性講,這個電容越靠近單片機IC越好。 K1是按鈕,一端接到單片機的PD4引腳上,另一端接地,這樣按鈕被按下就會產生一個低電平的脈沖。 Q1是三極管,通過發光二極管D1和限流電阻R1接到單片機的PD3上。這樣當PD3輸出低電平時,Q1導通,VCC上有電壓,可以對系統供電,反之PD3輸出高電平時,Q1截止VCC沒有電壓。 發光二極管D1還兼作電源指示燈的作用, Q1導通時發光反之不發光。 剩余的C2~C5都是電源退藕電容,用于消除電源上的干擾信號。P1、P2兩個接線端分別接3.6V鋰電池的正負極。 2、軟件設計 軟件要實現的功能是,在PD4引腳上監控按鈕按下產生的低電壓脈沖信號,并根據這個信號來設置PD3引腳的輸出電平去控制Q1的導通和截止,以及設置單片機自身的工作狀態,以此實現對電源供電的控制。 1)引腳工作模式設置 首先要做的,就是設置單片機引腳的工作模式,把PD4設置為輸入模式,D3設置為輸出模式。 在STM8S_StdPeriph_Lib庫中,可以使用這個函數進行設置: void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef GPIO_Pin, GPIO_Mode_TypeDef GPIO_Mode) GPIOx是端口編號,取值有GPIOA、GPIOB、GPIOC、GPIOD,分別對應單片機的PAx、PBx、PCx、PDx端口,GPIO_Pin是引腳編號,取值有GPIO_PIN_1~GPIO_PIN_7,函數通過GPIOx和GPIO_Pin兩個參數指定一個唯一的引腳。 GPIO_Mode是工作模式了。表示輸入模式的取值有四種,分別是要不要上拉,要不要中斷的四種組合: GPIO_MODE_IN_FL_NO_IT Input floating, no external interrupt GPIO_MODE_IN_PU_NO_IT Input pull-up, no external interrupt GPIO_MODE_IN_FL_IT Input floating, external interrupt GPIO_MODE_IN_PU_IT Input pull-up, external interrupt 要上拉的話,單片機內部會自動為引腳提供一個上拉電流,在沒有外部輸入的情況下,引腳就是高電平了。 表示輸出模式的取值有8種,分別是是否開漏輸出、輸出高低電平、是否高速輸出的組合: GPIO_MODE_OUT_OD_LOW_FAST Output open-drain, low level, 10MHz GPIO_MODE_OUT_PP_LOW_FAST Output push-pull, low level, 10MHz GPIO_MODE_OUT_OD_LOW_SLOW Output open-drain, low level, 2MHz GPIO_MODE_OUT_PP_LOW_SLOW Output push-pull, low level, 2MHz GPIO_MODE_OUT_OD_HIZ_FAST Output open-drain, high-impedance level,10MHz GPIO_MODE_OUT_PP_HIGH_FAST Output push-pull, high level, 10MHz GPIO_MODE_OUT_OD_HIZ_SLOW Output open-drain, high-impedance level, 2MHz GPIO_MODE_OUT_PP_HIGH_SLOW Output push-pull, high level, 2MHz 在這個應用中,需要把PD4設置為帶上拉(因為按鈕未按下時要呈高電平)、有中斷的輸入模式。開機時,PD3要設置為低電平的輸出模式(低電平才能讓Q1導通)。關機時PD3要設置為不帶上拉的輸入模式,所以這部分代碼要這樣寫: GPIO_Init(GPIOD, GPIO_PIN_4, GPIO_MODE_IN_PU_IT); //PD4設置為帶上拉、有中斷的輸入模式 GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_OUT_PP_LOW_FAST); //開機時把PD3設置低電平的輸入模 GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);//關機時把PD3設置低電平的輸入模式 額外提一下,除了GPIO_Init函數可以設置引腳是輸出高電平還是低電平,還可以用下面四個函數繼續引腳的高低電平: void GPIO_Write(GPIO_TypeDef* GPIOx, uint8_t PortVal) //輸出PortVal指定的電平 void GPIO_WriteHigh(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins) //輸出高電平 void GPIO_WriteLow(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins) //輸出低電平 void GPIO_WriteReverse(GPIO_TypeDef* GPIOx, GPIO_Pin_TypeDef PortPins) //高低電平翻轉一次 2)停機模式設置 STM8S單片機有停機模式,在停機模式下,單片機功耗降到最低,所有時鐘停止工作,但可以保留RAM寄存器的值,停機模式只能可以通過下面幾種方式退出: -外部中斷(GPIO) -CAN接收中斷 -SPI傳輸結束 -I2C中斷(從地址匹配) -復位 通過執行HALT指令,也就是執行庫函數的halt()函數進入停機模式。 3)設置外部中斷 外部中斷通過SetExtIntSensitivity函數設置: void EXTI_SetExtIntSensitivity(EXTI_Port_TypeDef Port, EXTI_Sensitivity_TypeDef SensitivityValue) 其中Port是要設置外部中斷的端口,取值有GPIOA、GPIOB、GPIOC、GPIOD,分別對應單片機的PAx、PBx、PCx、PDx端口; SensitivityValue是外部中斷類型,有以下幾種取值,分別表示下降沿和低電平觸發中斷、上升沿觸發中斷、下降沿觸發中斷、上升沿和下降沿觸發中斷: EXTI_SENSITIVITY_FALL_LOW Interrupt on Falling edge and Low level EXTI_SENSITIVITY_RISE_ONLY Interrupt on Rising edge only EXTI_SENSITIVITY_FALL_ONLY Interrupt on Falling edge only EXTI_SENSITIVITY_RISE_FALL Interrupt on Rising and Falling edges 在這個應用中,按鈕按下是產生下降沿,要選取EXTI_SENSITIVITY_FALL_ONLY模式。 設置中斷模式后,還需要啟用中斷,使用enableInterrupts()函數啟用。 4)外部中斷處理程序 在ST官方提供的STM8S_StdPeriph_Lib庫自帶的模板中,中斷處理程序都在stm8s_it.c中實現。stm8s_it.c中已經根據中斷向量設置好了每種中斷處理程序的入口函數。只需在相應函數中填入內容即可。 這個應用中是要編寫GPIOD端口的外部中斷處理函數,所以要在這個中 這個應用中是要編寫GPIOD端口的外部中斷處理函數,所以要在這個中斷處理函數中增加開關機的內容: INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6) { } 5)整體程序設計和源代碼
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
澳门赌场| 大发888打不开| 老虎机破解器| 最新娱乐城注册送体验金| 百家乐代理| 代理百家乐官网最多占成| 百家乐官网网上赌有作假吗| 百家乐官网翻天腾讯视频| 没费用百家乐官网分析器| 百家乐有没有攻略| 线上百家乐官网网站| 百家乐投资心得| 百家乐平注常赢玩法更| ,| 百家乐官网论坛代理合作| 2024一2043风水气位| 网页百家乐的玩法技巧和规则 | 全讯网网址导航| 阿巴嘎旗| 7位百家乐官网扑克桌| 百家乐路单生| 喀喇沁旗| 2024属虎人全年运势| 百家乐7人桌布| 皇冠平台| 百家乐官网预约| 百家乐赌场方法| 金彩娱乐城| 立即博百家乐官网的玩法技巧和规则 | 大发888游戏平台 送1666元礼金领取lrm | 澳门百家乐官网21点| 皇室百家乐娱乐城| 大发888 bet娱乐场下载| 百家乐官网棋牌交友| 新澳博百家乐娱乐城| 察雅县| 百家乐闲庄概率| 德州扑克攻略| 怎么玩百家乐官网呀 | 青鹏棋牌官网下载| 百家乐官网扫描技术|