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

QQ登錄

只需一步,快速開始

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

51單片機(jī)怎么通過鍵盤來給DA設(shè)置模擬電壓 在線等求助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
10黑幣
怎么通過鍵盤來給DA設(shè)置模擬電壓,這是原理圖


  1. /**************************************************************************************
  2. *                DA-PWM輸出實(shí)驗(yàn)              *
  3. 實(shí)現(xiàn)現(xiàn)象: 具體接線操作請(qǐng)參考視頻
  4.    下載程序后DA模塊上的指示燈呈呼吸燈效果,由暗變亮再由亮變暗
  5. 注意事項(xiàng):要將AD/DA模塊上的短接片將OUT和LED短接,板子絲印上有。                     
  6. ***************************************************************************************/
  7. #include "reg52.h"    //此文件中定義了單片機(jī)的一些特殊功能寄存器
  8. typedef unsigned int u16;   //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
  9. typedef unsigned char u8;
  10. //--定義使用的IO口--//
  11. sbit PWM=P2^1;
  12. bit DIR;
  13. //--定義一個(gè)全局變量--//
  14. u16 count,value,timer1;
  15. /*******************************************************************************
  16. * 函 數(shù) 名         : Timer1Init
  17. * 函數(shù)功能     : 定時(shí)器1初始化
  18. * 輸    入         : 無
  19. * 輸    出         : 無
  20. *******************************************************************************/
  21. void Timer1Init()
  22. {
  23. TMOD|=0X10;//選擇為定時(shí)器1模式,工作方式1,僅用TR1打開啟動(dòng)。
  24. TH1 = 0xFF;
  25. TL1 = 0xff;   //1us
  26.   
  27. ET1=1;//打開定時(shí)器1中斷允許
  28. EA=1;//打開總中斷
  29. TR1=1;//打開定時(shí)器   
  30. }

  31. /*******************************************************************************
  32. * 函 數(shù) 名       : main
  33. * 函數(shù)功能   : 主函數(shù)
  34. * 輸    入       : 無
  35. * 輸    出      : 無
  36. *******************************************************************************/
  37. void main()
  38. {
  39. Timer1Init();  //定時(shí)器1初始化
  40. while(1)
  41. {
  42.   if(count>100)      
  43.   {  
  44.    count=0;
  45.    if(DIR==1)        //DIR控制增加或減小
  46.    {
  47.      value++;
  48.    }   
  49.    if(DIR==0)
  50.    {
  51.      value--;
  52.    }
  53.    
  54.   }
  55.   if(value==1000)
  56.   {
  57.     DIR=0;
  58.   }
  59.   if(value==0)
  60.   {
  61.     DIR=1;
  62.   }
  63.    
  64.   if(timer1>1000)  //PWM周期為1000*1us
  65.   {
  66.    timer1=0;
  67.   }
  68.   if(timer1 <value)
  69.   {
  70.    PWM=1;
  71.   }
  72.   else
  73.   {
  74.    PWM=0;
  75.   }  
  76. }  
  77. }
  78. /*******************************************************************************
  79. * 函 數(shù) 名       : Time1
  80. * 函數(shù)功能   : 定時(shí)器1的中斷函數(shù)
  81. * 輸    入       : 無
  82. * 輸    出       : 無
  83. *******************************************************************************/
  84. void Time1(void) interrupt 3    //3 為定時(shí)器1的中斷號(hào)  1 定時(shí)器0的中斷號(hào) 0 外部中斷1 2 外部中斷2  4 串口中斷
  85. {
  86. TH1 = 0xFF;
  87. TL1 = 0xff;   //1us
  88. timer1++;
  89.     count++;

  90. }
復(fù)制代碼


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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