找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

atmega128 AD 轉(zhuǎn)換

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:80436 發(fā)表于 2015-5-21 23:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /*********************************包含頭文件********************************/
  2. #include <iom128v.h>
  3. #include <macros.h>

  4. /********************************數(shù)碼管段碼表*******************************/
  5. extern const unsigned char tab[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  6.                                   0x7F,0x6F};

  7. /*********************************端口定義**********************************/
  8. #define  sclon   PORTG |=BIT(0);     //時鐘高
  9. #define  scloff   PORTG &=~BIT(0);
  10. #define  dion   PORTG |=BIT(1);      //數(shù)據(jù)高
  11. #define  dioff   PORTG &=~BIT(1);

  12. /*********************************全局變量**********************************/
  13. unsigned int adc_rel;
  14. int dat;

  15. /****************************************************************************
  16. 函數(shù)功能:ADC初始化函數(shù)
  17. 入口參數(shù):
  18. 出口參數(shù):
  19. ****************************************************************************/
  20. void adc_init(void)
  21. {
  22. ADCSRA=0x00;  //關(guān)ADC
  23. ADMUX = (1<<REFS1)|(1<<REFS0); // 2.56V
  24. ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
  25. }

  26. /****************************************************************************
  27. 函數(shù)功能:ADC中斷函數(shù)
  28. 入口參數(shù):
  29. 出口參數(shù):
  30. ****************************************************************************/
  31. #pragma interrupt_handler adc_isr:iv_ADC
  32. void adc_isr(void)
  33. {
  34.    int data_H,data_L;
  35.   ADCSRA = 0x00;  
  36.   adc_rel=ADC;
  37.   ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADIE);
  38. }

  39. /****************************************************************************
  40. 函數(shù)功能:數(shù)據(jù)輸出程序
  41. 入口參數(shù):temp
  42. 出口參數(shù):
  43. ****************************************************************************/
  44. void dataOUT(unsigned char temp)
  45. {
  46.     unsigned char i,temp1;
  47.     temp1 = tab[temp];
  48.     for(i = 0;i < 8;i++ )
  49.     {
  50.         scloff;
  51.   if((temp1&0x80)!= 0x80)
  52.          {  dioff;}
  53.         else
  54.          { dion;}  
  55.   sclon;
  56.         temp1 <<=1;
  57.   scloff;
  58.     }
  59. }

  60. /****************************************************************************
  61. 函數(shù)功能:延時子程序
  62. 入口參數(shù):
  63. 出口參數(shù):
  64. ****************************************************************************/
  65. void delay(void)
  66. {
  67.    int i;
  68.     for(i=0;i<200;i++);
  69. }

  70. /****************************************************************************
  71. 函數(shù)功能:顯示子程序
  72. 入口參數(shù):k
  73. 出口參數(shù):
  74. ****************************************************************************/
  75. void display(unsigned int k)
  76. {
  77.    dataOUT(k/1000);
  78.   PORTG &=0x03;
  79.   delay();
  80.   dataOUT(k/100%10);
  81.   PORTG |=0x04;
  82.   delay();
  83.   dataOUT(k/10%10);
  84.   PORTG &=0x0B;      
  85.   PORTG |=0x08;
  86.   delay();
  87.   dataOUT(k%10);
  88.   PORTG |=0x0C;
  89.   delay();
  90. }

  91. /****************************************************************************
  92. 函數(shù)功能:主程序
  93. 入口參數(shù):
  94. 出口參數(shù):
  95. ****************************************************************************/
  96. void main(void)
  97. {
  98.    DDRE=0x00;
  99.   DDRG=0xff;
  100.   adc_init();
  101.   SEI();
  102.   display(0);
  103.   while(1)
  104.   {
  105.     delay();
  106.    display(adc_rel);
  107.   }
  108. }
復(fù)制代碼

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

使用道具 舉報

沙發(fā)
ID:614322 發(fā)表于 2019-9-21 11:05 | 只看該作者
學(xué)習(xí)一下,謝謝!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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