久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4696|回復: 0
打印 上一主題 下一主題
收起左側

LPC2148的ADC多通道數據采集程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:219534 發表于 2017-7-14 00:00 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
這個是課設:
多通道.doc (41 KB, 下載次數: 108)

  1. #include "config.h"
  2. #include "stdio.h"
  3. #define   GPIOSET(PIN)  IO0SET = PIN    // 方便修改置位端口
  4. #define   GPIOCLR(PIN)        IO0CLR = PIN    // 方便修改清位端口
  5. #define   LCD_CON           0x00000250           // 液晶顯示控制字
  6. #define  E_CLK  (1<<4)                    //clock input   同步時鐘輸入端         P0.4
  7. const uint32  RW_SID=  (1<<6);         //data input/output 串行數據輸入、輸出端        P0.6      
  8. const uint32  CS =     (1<<9);                  //P0.9
  9. unsigned char IC_DAT1[] = "多通道數據采集系統";

  10. /*************************************************************
  11. *  名稱:delay()
  12. *  功能:延時程序
  13. **************************************************************/
  14. void delay(uint32 dly)
  15. {
  16.         uint32 i;
  17.        
  18.         for ( ; dly>0; dly--)
  19.                 for (i=0; i<10; i++);
  20. }
  21.   
  22. /******************************************************************
  23. *  名稱:SeddByte()
  24. *  功能:發送1字節數據
  25. *******************************************************************/
  26. void     SendByte(uint8    data)   
  27.     {   
  28.       uint8   i;
  29.       IO0SET=CS;  
  30.       for(i=0;i<8;i++)   
  31.        {  
  32.                         IO0CLR=E_CLK ;delay(5);
  33.                         if(data&0x80)
  34.                         {
  35.                                 IO0SET=RW_SID;delay(5);
  36.                         }
  37.                         else IO0CLR=RW_SID;   
  38.                         {
  39.                                 IO0SET=E_CLK;delay(5);
  40.                         }
  41.                         data=data<<1;   
  42.        }
  43.        IO0CLR=CS;  
  44.     }
  45.   
  46. /******************************************************************
  47. *  名稱:ReceieveByte()
  48. *  功能:接收1字節數據
  49. *******************************************************************/   
  50. unsigned char ReceieveByte(void)   
  51.   {   
  52.           uint8     i,d1,d2;   
  53.     for(i=0;i<8;i++)   
  54.         {   
  55.                 IO0CLR=E_CLK;delay(5);  
  56.                 IO0SET=E_CLK;delay(5);
  57.                 if(RW_SID)d1++;   
  58.                 d1=d1<<1;   
  59.         }   
  60.     for(i=0;i<8;i++)   
  61.         {   
  62.                 IO0CLR=E_CLK;delay(5);  
  63.                 IO0SET=E_CLK;delay(5);  
  64.                 if(RW_SID)d2++;   
  65.                 d2=d2<<1;   
  66.         }   
  67.      return     (d1&0xF0+d2&0x0F);   
  68.     }
  69.   
  70. /***************************************************************
  71. *  名稱:SendCMD()
  72. *  功能:向LCD12864發送命令
  73. ****************************************************************/  
  74. void     SendCMD(uint8     data)   
  75.     {
  76.         SendByte(0xF8);                                         
  77.         SendByte(data&0xF0);                                        
  78.                 SendByte((data&0x0F)<<4);                    
  79.         }
  80.   
  81. /*************************************************************
  82. * 名稱:SendData()
  83. * 功能:向LCD12864發送數據
  84. **************************************************************/  
  85. void     SendData(uint8     data)   
  86.     {
  87.         SendByte(0xFA);                                         
  88.         SendByte(data&0xF0);                                       
  89.                  SendByte((data&0x0F)<<4);                    
  90.         }
  91.        
  92. /****************************************************************
  93. * 名稱:lcd_mesg()
  94. * 功能:在LCD12864上顯示漢字
  95. *****************************************************************/
  96.    
  97. void     lcd_mesg(uint8     x_add, unsigned char * word)   
  98.     {   
  99.          SendCMD(x_add);                               
  100.               while(*word)
  101.               {
  102.                  SendData(*(word++));             
  103.               }
  104.     }
  105. /*************************************************************
  106. *  名稱:initinal()
  107. *  功能:LCD12864字庫初始化
  108. **************************************************************/
  109.    
  110. void     initlcm(void)   
  111.     {   
  112.          delay(200);     
  113.          SendCMD(0x30);                //功能設置,一次送8位數據,基本指令集   
  114.          SendCMD(0x0C);                //0000,1100     整體顯示,游標off,游標位置off   
  115.          SendCMD(0x01);                //0000,0001     清DDRAM   
  116.          SendCMD(0x02);                //0000,0010     DDRAM地址歸位   
  117.          SendCMD(0x80);                //1000,0000     設定DDRAM 7位地址000,0000到地址計數器AC   
  118. }

  119. int main (void)
  120. {
  121.         PINSEL0=0x00000000;
  122. PINSEL1=0X00000000;
  123. PINSEL2&=~(0x00000006);    //設置所有I/O口為GPIO口
  124. IO0DIR =LCD_CON;
  125. initlcm();                             //12864初始化程序            
  126.         lcd_mesg(0x80,IC_DAT1);
  127.         delay(100);
  128.         uint32 ADC_Data;
  129.         char str[20];
  130.         PINSEL0 = 0x00000005;        // 管腳連接串口
  131.         PINSEL1 = 1 << 28;                // P0.30連接到AD0.3       
  132.         /* 進行ADC模塊設置 */
  133.         AD0CR = (1 << 3)                                                |        // SEL=8,選擇通道3
  134.                         ((Fpclk / 1000000 - 1) << 8)        |        // CLKDIV=Fpclk/1000000-1,轉換時鐘為1MHz
  135.                         (0 << 16)                                                |        // BURST=0,軟件控制轉換操作
  136.                         (0 << 17)                                                |        // CLKS=0, 使用11clock轉換
  137.                         (1 << 21)                                                |          // PDN=1,正常工作模式
  138.                         (0 << 22)                                                |          // TEST1:0=00,正常工作模式
  139.                         (1 << 24)                                                |        // START=1,直接啟動ADC轉換
  140.                         (0 << 27);                                                         // 直接啟動ADC轉換時,此位無效
  141.         delay(1000);
  142.         ADC_Data = AD0DR;                // 讀取ADC結果,并清除DONE標志位
  143.        
  144.         while (1)
  145.         {
  146.                 AD0CR |= 1 << 24;                                        // 進行第一次轉換
  147.                 while ((ADDR & 0x80000000) == 0);        // 等待轉換結束
  148.                 AD0CR |= 1 << 24;                                        // 再次啟動轉換
  149.                 while ((AD0DR & 0x80000000) == 0);        // 等待轉換結束
  150.                 ADC_Data = AD0DR;                                        // 讀取ADC結果
  151.                 ADC_Data = (ADC_Data >> 6) & 0x3ff;
  152.                 ADC_Data = ADC_Data * 2480;                        // 參考電壓經過3/4分壓
  153.                 ADC_Data = ADC_Data / 1024;
  154.                 sprintf(str, "%4d mV VIN3", ADC_Data);
  155.                 unsigned char IC_DAT2[] ;
  156.                 char IC_DAT2[]=str[20];
  157.         initlcm();                             //12864初始化程序            
  158.                 lcd_mesg(0x80,IC_DAT1);
  159.         }
  160.         return 0;               
  161. }
  162. /*********************************************************************************************************
  163. **                            End Of File
  164. ********************************************************************************************************/

復制代碼


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级黄色片一级黄色片 | 亚洲网在线 | 亚洲不卡 | 国产精品成人一区二区三区夜夜夜 | 成人欧美在线 | 日韩中文字幕一区 | 国产欧美视频一区 | 国产精品一区二区欧美 | 亚洲天堂日韩精品 | 国产精品永久久久久 | 国产又爽又黄的视频 | 91麻豆精品国产91久久久更新资源速度超快 | 草逼网站| 噜久寡妇噜噜久久寡妇 | 中文字幕在线网 | 久久精品99国产精品 | 日韩在线欧美 | 一区二区av | 久久av网 | 国产精品视频999 | 日韩欧美在线视频 | 天天视频一区二区三区 | 欧美一区二区三区在线 | 在线观看中文字幕 | 国产精品成人一区 | 完全免费在线视频 | 久久黄视频| 中文二区| 看av网址| 成人av网页| 在线观看不卡av | 国产精品久久久久久久久久 | 国产福利在线 | 懂色中文一区二区在线播放 | 一级在线毛片 | 一区二区三区回区在观看免费视频 | 久久天天躁狠狠躁夜夜躁2014 | 国产一区视频在线 | 日韩成人在线视频 | 亚洲国产伊人 | 国产在线观看一区二区三区 |