找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3174|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于STM32的外部中斷實(shí)驗(yàn)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:265406 發(fā)表于 2017-12-22 17:36 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
嵌入式上課做的小課題
   
實(shí)驗(yàn)?zāi)康?
    學(xué)習(xí)外部中斷的使用
   
硬件資源:
    1,DS0(連接在PA8),DS1(連接在PD2)
    2,按鍵KEY0(PC5)/KEY1(PA15)/KEY_UP(PA0,也稱(chēng)之為WK_UP)
   
實(shí)驗(yàn)現(xiàn)象:
    本實(shí)驗(yàn),利用外部中斷,實(shí)現(xiàn)與實(shí)驗(yàn)2類(lèi)似的效果,即:通過(guò)開(kāi)發(fā)板上載有的3個(gè)按鈕(KEY_UP、KEY0 、KEY1),來(lái)控制板上的2個(gè)LED(DS0和DS1),其中KEY0控制DS0,按一次亮,再按一次,就滅。KEY1控制DS1,效果同KEY0。KEY_UP則同時(shí)控制    DS0和DS1,按一次,他們的狀態(tài)就翻轉(zhuǎn)一次。
   
注意事項(xiàng):
    1,不要把1820和PA0的跳線帽跳上,否則可能導(dǎo)致按鍵"不靈".

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "key.h"
  5. #include "usart.h"
  6. #include "exti.h"

  7. int main(void)
  8. {        

  9.         delay_init();                     //延時(shí)函數(shù)初始化        
  10.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2
  11.         uart_init(9600);         //串口初始化為9600
  12.         LED_Init();                           //初始化與LED連接的硬件接口
  13.          EXTIX_Init();                //外部中斷初始化
  14.   LED0=0;                                //點(diǎn)亮LED
  15.         while(1)
  16.         {         

  17.                 if(ii == 0)
  18.                 {
  19.                         delay_us(100);
  20.                         LED0 =0;
  21.                         delay_us(1);
  22.                         LED0 = 1;
  23.                         //LED0 = 0 ;
  24.                 }
  25.                 else if(ii == 1)
  26.                 {
  27.                         delay_us(10);
  28.                         LED0 =0;
  29.                         delay_us(1);
  30.                         LED0 = 1;
  31.                
  32.                 }
  33.                 else if(ii == 2)
  34.                 {
  35.                              LED0 = 0 ;
  36. //                        delay_us(100);
  37. //                        LED0 =0;
  38. //                        delay_us(1);
  39. //                        LED0 = 1;
  40.                
  41.                 }
  42.                
  43.                 else if(ii == 3)
  44.                 {
  45.                         
  46.                         LED0 =1;
  47.                
  48.                 }
  49.                
  50.                 //elay_ms(1000);         
  51.         }
  52. }


復(fù)制代碼

所有資料51hei提供下載:
按鍵控制LED燈亮滅程度實(shí)驗(yàn).rar (294.67 KB, 下載次數(shù): 22)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:265966 發(fā)表于 2017-12-25 15:48 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

板凳
ID:235207 發(fā)表于 2017-12-25 21:04 | 只看該作者
學(xué)習(xí)學(xué)習(xí),看起來(lái)可以的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表