找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這個430單片機ad轉(zhuǎn)換程序為什么lcd顯示為000

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:903700 發(fā)表于 2021-4-29 21:07 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
10黑幣
ad轉(zhuǎn)換顯示出問題,有無大佬幫看一下


  1. #include"msp430f249.h"
  2. #include"string.h"

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. const uchar table1[]="wp:";

  6. unsigned char str[]={"0123456789"};
  7. #define SET_RS P2OUT|=BIT0
  8. #define RST_RS P2OUT&=~BIT0
  9. #define SET_RW P2OUT|=BIT1
  10. #define RST_RW P2OUT&=~BIT1
  11. #define SET_E P2OUT|=BIT2
  12. #define RST_E P2OUT&=~BIT2
  13. long data;
  14. unsigned char b;

  15. void delayus(int ms)
  16. {
  17.   uint i,j;
  18.   for(i=0;i<ms;i++)
  19.     for(j=0;j<1141;j++);
  20. }
  21. void write_com(uchar com)
  22. {
  23.   RST_RS;
  24.   RST_RW;
  25.   P1OUT=com;
  26.   SET_E;
  27.   delayus(1);
  28.   RST_E;
  29. }
  30. void write_dat(uchar dat)
  31. {
  32.   SET_RS;
  33.   RST_RW;
  34.   P1OUT=dat;
  35.   SET_E;
  36.   delayus(1);
  37.   RST_E;
  38. }
  39. void disp(void)
  40. {
  41.   uchar i;
  42.   WDTCTL=WDTPW+WDTHOLD;
  43.   P1DIR=0xFF;
  44.   P2DIR=BIT0+BIT1+BIT2;
  45.   RST_E;
  46.   write_com(0x38);
  47.   delayus(5);
  48.   write_com(0x01);
  49.   delayus(5);
  50.   write_com(0x0C);
  51.   delayus(5);
  52.   write_com(0x06);
  53.   delayus(5);
  54.   write_com(0x80);
  55.   delayus(5);
  56.   for(i=0;i<sizeof(table1);i++)
  57.     write_dat(table1[i]);
  58.   unsigned char t0=0,t1=0,t2=0;

  59.   t0=data/100;
  60.   t1=(data%100)/10;
  61.   t2=data%10;
  62.   write_com(0x80+0x40);
  63.   delayus(5);
  64.   write_dat(str[t0]);
  65.   delayus(5);
  66.   write_dat(str[t1]);
  67.   delayus(5);
  68.   write_dat(str[t2]);

  69.   while(1)
  70.   {}
  71. }
  72. void main(void)
  73. {
  74.   char k,m;
  75.   volatile unsigned int i;
  76.   m=10;
  77.   WDTCTL=WDTPW+WDTHOLD;
  78.   P1DIR=0xFF;
  79.   P2DIR=0XFF;
  80.   P6SEL|=0X01;
  81.   ADC12CTL0=ADC12ON;
  82.   ADC12CTL1=SHP;
  83.   ADC12MCTL0=SREF_1;
  84.   for(i=0;i<0x3600;i++){}
  85.   ADC12CTL0|=ENC;
  86.   while(1)
  87.   {
  88.     ADC12CTL0|=ADC12SC;
  89.     while((ADC12IFG&BIT0)==0);
  90.     k++;
  91.     data=data+ADC12MEM0;
  92.     if(k==m)
  93.     {
  94.       data=data/m;
  95.       data=data*50;
  96.       data=data*10;
  97.       data=data*10;
  98.       data=data/4096;



  99.     k=0;

  100.     }
  101.     disp();
  102.   }
  103. }
復(fù)制代碼


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

使用道具 舉報

樓主
ID:903700 發(fā)表于 2021-4-29 21:12 | 只看該作者
#include"msp430f249.h"
#include"string.h"

#define uchar unsigned char
#define uint unsigned int
const uchar table1[]="wp:";

unsigned char str[]={"0123456789"};
#define SET_RS P2OUT|=BIT0
#define RST_RS P2OUT&=~BIT0
#define SET_RW P2OUT|=BIT1
#define RST_RW P2OUT&=~BIT1
#define SET_E P2OUT|=BIT2
#define RST_E P2OUT&=~BIT2
long data;
unsigned char b;

void delayus(int ms)
{
  uint i,j;
  for(i=0;i<ms;i++)
    for(j=0;j<1141;j++);
}
void write_com(uchar com)
{
  RST_RS;
  RST_RW;
  P1OUT=com;
  SET_E;
  delayus(1);
  RST_E;
}
void write_dat(uchar dat)
{
  SET_RS;
  RST_RW;
  P1OUT=dat;
  SET_E;
  delayus(1);
  RST_E;
}
void disp(void)
{
  uchar i;
  WDTCTL=WDTPW+WDTHOLD;
  P1DIR=0xFF;
  P2DIR=BIT0+BIT1+BIT2;
  RST_E;
  write_com(0x38);
  delayus(5);
  write_com(0x01);
  delayus(5);
  write_com(0x0C);
  delayus(5);
  write_com(0x06);
  delayus(5);
  write_com(0x80);
  delayus(5);
  for(i=0;i<sizeof(table1);i++)
    write_dat(table1[i]);
  unsigned char t0=0,t1=0,t2=0;

  t0=data/100;
  t1=(data%100)/10;
  t2=data%10;
  write_com(0x80+0x40);
  delayus(5);
  write_dat(str[t0]);
  delayus(5);
  write_dat(str[t1]);
  delayus(5);
  write_dat(str[t2]);

  while(1)
  {}
}
void main(void)
{
  char k,m;
  volatile unsigned int i;
  m=10;
  WDTCTL=WDTPW+WDTHOLD;
  P1DIR=0xFF;
  P2DIR=0XFF;
  P6SEL|=0X01;
  ADC12CTL0=ADC12ON;
  ADC12CTL1=SHP;
  ADC12MCTL0=SREF_1;
  for(i=0;i<0x3600;i++){}
  ADC12CTL0|=ENC;
  while(1)
  {
    ADC12CTL0|=ADC12SC;
    while((ADC12IFG&BIT0)==0);
    k++;
    data=data+ADC12MEM0;
    if(k==m)
    {
      data=data/m;
      data=data*50;
      data=data*10;
      data=data*10;
      data=data/4096;
   
     

    k=0;
      
    }
    disp();
  }
}
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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