欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
AD模數(shù)轉換實驗,實驗數(shù)碼管顯示電平代碼一直是0008,實際應顯示3845,代碼哪里出錯?
[打印本頁]
作者:
yangjiye
時間:
2020-10-7 10:08
標題:
AD模數(shù)轉換實驗,實驗數(shù)碼管顯示電平代碼一直是0008,實際應顯示3845,代碼哪里出錯?
#include"reg52.h"
#include"adc.h"
#define GPIO_DIG P0
#define uint unsigned int
#define uchar unsigned char
#define u8 unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
unsigned char displaydig[4];
void delay(uint i)
{
while(i--);
}
void datapros()
{
uint temp;
static u8 i;
if(i==50)
{
i=0;
temp=Read_AD_Value(0x94); //notice ???????
}
i++;
displaydig[0]=smgduan[temp/1000];
displaydig[1]=smgduan[temp%1000/100];
displaydig[2]=smgduan[temp%1000%100/10];
displaydig[3]=smgduan[temp%1000%100%10];
}
void DigDisplay()
{
u8 i;
for(i=0;i<4;i++)
{
switch(i)
{
case(0):
LSA=0;LSB=0;LSC=0; break;
case(1):
LSA=1;LSB=0;LSC=0; break;
case(2):
LSA=0;LSB=1;LSC=0; break;
case(3):
LSA=1;LSB=1;LSC=0; break;
}
GPIO_DIG=displaydig[i];
delay(100);
GPIO_DIG=0x00;
}
}
void main()
{
while(1)
{
datapros();
DigDisplay();
}
}
#include"reg52.h"
#include"adc.h"
#include"intrins.h"
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
sbit CS=P3^5;
sbit CLK=P3^6;
sbit DIN=P3^4;
sbit DOUT=P3^7;
void SPI_Write(uchar dat)
{
uchar i;
CLK=0;
for(i=0;i<8;i++)
{
DIN=dat>>7;
dat<<=1;
CLK=0; //????
CLK=1;
}
}
uint SPI_Read()
{
uchar i,dat=0;
CLK=0;
for(i=0;i<12;i++)
{
dat<<=1;
CLK=1;
CLK=0; //????????
dat|=DOUT;
}
return dat;
}
uint Read_AD_Value(uchar cmd)
{
uint AD_Value;
int i;
CS=0;
CLK=0;
SPI_Write(cmd);
for(i=6;i>0;i--);
CLK=1; //????
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
AD_Value=SPI_Read();
//_nop_();
CS=1;
return AD_Value;
}
#ifndef __ADC_H__
#define __ADC_H__
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
uint Read_AD_Value(uchar cmd);
uint SPI_Read();
void SPI_Write(uchar dat);
#endif
復制代碼
作者:
hsl32
時間:
2020-10-8 09:07
你把temp=Read_AD_Value(0x94);直接改成temp=3845;看看顯示對不對。一步一步排查。
作者:
daemondong
時間:
2020-10-9 16:31
datapros()函數(shù)寫錯了,應該這樣寫。
void datapros()
{
uint temp;
static u8 i;
if(i==50)
{
i=0;
temp=Read_AD_Value(0x94); //notice ???????
displaydig[0]=smgduan[temp/1000];
displaydig[1]=smgduan[temp%1000/100];
displaydig[2]=smgduan[temp%1000%100/10];
displaydig[3]=smgduan[temp%1000%100%10];
}
i++;
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1