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

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

QQ登錄

只需一步,快速開始

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

MSP430 ADC12中斷函數(shù)實(shí)現(xiàn)單通道單次轉(zhuǎn)換程序,proteus8.7仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
這是在上一次基礎(chǔ)上追加一個(gè)ADC12采樣的功能。
在仿真的過程中,出現(xiàn)一個(gè)問題。
外部參考電壓設(shè)置為3.3v時(shí),報(bào)錯(cuò)
No power supply specified for net 3.3V in Power Rail Configuration.

原因是沒有配置3.3v的電源,所以net 3.3v不知道連在哪里。
解決辦法:在工具欄點(diǎn)擊design -> configure power rails 出現(xiàn)彈窗

在彈窗中new一個(gè)3.3v的電源,再將節(jié)點(diǎn)3.3v添加到電源中即可,其他大小的電源添加類似操作。

添加前:

添加后:


環(huán)境:
IAR For MSP430  版本1721
Proteus 8.7

IAR文件夾下為MSP430工程項(xiàng)目
Proteus文件夾下為仿真項(xiàng)目,其中還包括仿真導(dǎo)入的hex文件

功能:DSP430F247設(shè)置ADC12,采集電壓,在lcd1602上顯示電壓值。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


MSP430
12位ADC轉(zhuǎn)換器
分辨率 = VREF / 4096
ADC轉(zhuǎn)換時(shí)間
ADC12結(jié)構(gòu)與特點(diǎn)
1.參考電壓發(fā)生器
    MSP430內(nèi)部帶有參考電源,通過控制REFON信號(hào)來啟動(dòng)內(nèi)部參考電源,并通過REF2——5V來控制參考電壓。
2.模擬多路通道
    8路外部通道  4路內(nèi)部通道()
3.具有采樣保持功能的12位模數(shù)轉(zhuǎn)換內(nèi)核


ADC12轉(zhuǎn)換模式
1.單通道單次采樣
2.序列通道單次采樣
3.單通道多次采樣
4.序列通道多次采樣

單片機(jī)源程序如下:

  1. #include "msp430x24x.h"
  2. #define set_rs P1OUT |= BIT3
  3. #define rst_rs P1OUT &= ~BIT3
  4. #define set_rw P1OUT |= BIT4
  5. #define rst_rw P1OUT &= ~BIT4
  6. #define set_en P1OUT |= BIT5
  7. #define rst_en P1OUT &= ~BIT5
  8. #define dataout P2DIR = 0xff
  9. #define dataport P2OUT
  10. #define uchar unsigned char
  11. #define CPU_F1 ((double)8000000)
  12. #define delay_us8M(x) __delay_cycles((long)(CPU_F1*(double)x/1000000.0))
  13. #define delay_ms8M(x) __delay_cycles((long)(CPU_F1*(double)x/1000.0))

  14. void write_com(uchar com);
  15. void write_data(uchar data);

  16. long result = 0;
  17. long v_data = 0;
  18. /**
  19.   單通道單次采樣
  20. */

  21. #pragma vector = ADC12_VECTOR
  22. __interrupt void ADC12ISR(void){
  23.   while((ADC12IFG & BIT1) == 0);
  24.   result = ADC12MEM1;
  25. }

  26. void main( void )
  27. {
  28.   // Stop watchdog timer to prevent time out reset
  29.   WDTCTL = WDTPW + WDTHOLD;
  30.   
  31.   P1DIR |= BIT3 + BIT4 + BIT5;
  32.   dataout;
  33.   rst_en;
  34.   write_com(0x38);//8 bit data, doule line, 5x7 point matrix
  35.   write_com(0x0c);//open display, close cusor,close blink
  36.   write_com(0x06);//auto plus 1 after write or read
  37.   write_com(0x01);//clear screen
  38.   
  39.   P6SEL |= BIT1;//將P6.1設(shè)置為第二功能,即 使能ADC通道
  40.   //這里如果想要保險(xiǎn)的話,先設(shè)置ENC=0,但其實(shí)ENC默認(rèn)為0
  41.   //1.打開ADC,設(shè)置采樣時(shí)間 4*SHT0_8(b1000)*256
  42.   ADC12CTL0 = ADC12ON + SHT0_8;
  43.   //2.設(shè)置采樣保持器的脈沖觸發(fā)模式,轉(zhuǎn)換模式=單通道單次轉(zhuǎn)換,轉(zhuǎn)換通道1
  44.   ADC12CTL1 = SHP + CONSEQ_0 + CSTARTADD_1;
  45.   //3.既然選擇了通道1,就要配置通道1,
  46.   //設(shè)置轉(zhuǎn)換通道端口為1即P6.1
  47.   ADC12MCTL1 |= INCH_1;
  48.   //4.設(shè)置為外部參考電壓源
  49.   ADC12MCTL1 |= SREF_2;
  50.   delay_ms8M(1);
  51.   //5.ENC=1,不能再修改配置
  52.   //啟動(dòng)一次AD轉(zhuǎn)換時(shí),ENC和ADC12SC要同時(shí)設(shè)置
  53.   ADC12CTL0 |= ENC + ADC12SC;
  54.   //開啟中斷
  55.   _EINT();
  56.   while(1){
  57. //    _EINT();
  58.     ADC12CTL0 |= ENC + ADC12SC;
  59.     ADC12IE = 0X02;
  60.     delay_ms8M(4);
  61.     v_data = (long)result * 33;//3.3V參考電壓
  62.     v_data = v_data * 10;
  63.     v_data = v_data / 4096;//這里把電壓放大了100倍,便于顯示小數(shù)點(diǎn)后兩位
  64.     write_com(0x01);//清屏
  65.     write_com(0x80);//移到第一行第一列
  66.     write_data(v_data/100 + '0');
  67.     write_data('.');
  68.     write_data(v_data/10%10 + '0');
  69.     write_data(v_data%10 + '0');
  70.     write_data('V');
  71.     delay_ms8M(100);
  72. //    //這里其實(shí)可以不關(guān)閉中斷,那相應(yīng)的開始也就不要打開
  73. //    _DINT();
  74.   }

  75. }

  76. void write_com(uchar com){
  77.   rst_rs;
  78.   rst_rw;
  79.   rst_en;
  80.   _NOP();
  81.   set_en;// write command rs=0,rw=0,en=1
  82.   P2OUT = com;
  83.   delay_ms8M(5);
  84. //  _NOP();
  85. //  _NOP();
  86. //  check_busy();
  87.   rst_en;
  88. }

  89. void write_data(uchar data){
  90.   set_rs;
  91.   rst_rw;
  92.   rst_en;
  93.   _NOP();
  94.   set_en;//write data rs=2,rw=0,en=1
  95.   P2OUT = data;
  96.   delay_ms8M(5);
  97. //  _NOP();
  98. //  _NOP();
  99. //  check_busy();
  100.   rst_en;
  101. }
復(fù)制代碼

所有資料51hei提供下載:
MSP430_ADC12.zip (290.39 KB, 下載次數(shù): 43)

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 激情网站 | 一区两区小视频 | 久久精品视频网 | 日韩久久久久久 | 久久久久久久久国产精品 | 激情做爰呻吟视频舌吻 | 天天操夜夜操狠狠操 | 金银在线 | 日韩一区二区在线视频 | 五月婷婷色综合 | www.一区 | 91久久久精品 | 日韩一区二区三区精品 | 中文字幕在线观看网站 | 欧美精品在线免费观看 | 亚洲视频在线观看一区 | 亚洲激情网站 | 91一级片 | 日韩福利视频 | 黄色免费av | 免费黄色小说网站 | 欧美成人精品欧美一级乱黄 | 国产永久视频 | 欧美日韩在线一区二区三区 | 青青久久久 | 免费看黄色片子 | 成人毛片网| 中文字幕在线免费看 | 国产日韩欧美亚洲 | 午夜美女福利视频 | 18在线观看免费入口 | 日韩黄网| 超碰成人在线观看 | 亚洲网站在线观看 | 99热在线免费观看 | 国产成人在线免费观看 | 国产精品欧美一区二区 | 波多野结衣久久 | 亚洲精品一二三区 | 在线观看免费毛片 | www亚洲|