找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1205|回复: 1
打印 上一主题 下一主题
收起左侧

这个430单片机ad转换程序为什么lcd显示为000

[复制链接]
跳转到指定楼层
楼主
10黑币
ad转换显示出问题,有无大佬帮看一下


  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. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:903700 发表于 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();
  }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表