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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2225|回復: 3
收起左側

如何使用單片機模擬一下下降沿?

[復制鏈接]
ID:695961 發表于 2020-3-7 18:21 | 顯示全部樓層 |閱讀模式
正在學習STC12C2052AD單片機中的PCA。


根據芯片說明書中的示例程序:《使用PCA功能擴展外部中斷的示例程序》


代碼如下:
  1. #include <STC12C2052AD.H>
  2. #include <INTRINS.H>
  3. #include "UART.H"

  4. sbit LED = P1 ^ 7;
  5. sbit EPCAI = IE ^ 6;

  6. volatile uint8 COMMAND;

  7. // PCA中斷
  8. void PcaIsr() interrupt 6
  9. {
  10.         Prints("觸發中斷。\r\n");
  11.         CCF0 = 0;
  12.         LED = !LED;
  13. }

  14. void main()
  15. {
  16.         InitUART();                // 初始化串口
  17.        
  18.         CCON = 0;                // 初始化PCA
  19.        
  20.         CL = 0;
  21.         CH = 0;
  22.        
  23.         CMOD = 0;                // 設置PCA的脈沖為系統時鐘,并禁止PCA中斷
  24.        
  25.         CCAPM0 = 0x11;        // 允許下降沿捕獲,并使能寄存器CCON的比較捕獲標志CCF0,用來產生中斷
  26.         CR = 1;
  27.         EPCAI = 1;
  28.         EA = 1;
  29.        
  30.        
  31.         while(1)
  32.         {
  33.                 if(COMMAND >= 0x02)
  34.                 {
  35.                         P16 = 0;
  36.                        
  37.                         COMMAND = 0;
  38.                 }
  39.                
  40.                 if(COMMAND == 0x01)
  41.                 {
  42.                        
  43.                         P16 = 1;
  44.                         _nop_();
  45.                         _nop_();
  46.                         _nop_();
  47.                         _nop_();
  48.                         P16 = 0;
  49.                        
  50.                         COMMAND = 0;
  51.                 }
  52.         }
  53. }
復制代碼

我將P16和P37使用導線連接,P17和LED連接,使用P16模擬一個下降沿,但是LED沒有反應。有誰用過12C2052AD的PCA的,麻煩幫我看一下,這個下降沿有問題嗎?如何才能觸發PCA中斷呢?謝謝。

回復

使用道具 舉報

ID:584814 發表于 2020-3-7 22:17 | 顯示全部樓層
先拉高小延時再變低就是一個下降沿
回復

使用道具 舉報

ID:280000 發表于 2020-3-9 21:48 | 顯示全部樓層
可以用單片機定時器去檢測
回復

使用道具 舉報

ID:401564 發表于 2020-3-10 00:38 | 顯示全部樓層
你不能用單片機自身來產生的
當單片機指令去執行的時候,不管什么中斷,都得等這條指令執行完了之后,才去響應中斷的
所以,要么是指令執行之后端口就是低電平了,PCA并沒有捕獲到一個完整的下降沿
要么就壓根就沒有觸發中斷
你可以通過一個IO串聯一個10K電阻給一個100uF的電容充電,而電容的正極就連著PCA就行了
當指令執行端口為低電平的時候,電容是通過10K電阻來放電的,時間要很長,至少能保證指令完成之后才產生下降沿
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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