历史上的今天
返回首页

历史上的今天

今天是:2025年04月21日(星期一)

正在发生

2020年04月21日 | 51单片机实验16:A/D模数转换(XPT2046)

2020-04-21 来源:eefocus

关于A/D模数转换以及XPT2046芯片的内容请参考:https://blog.csdn.net/cax1165/article/details/87024388


#include

#include

 

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

 

uc code x[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uc dig[5];

 

void delay(uc x)

{

uc i,j;

for(i=1;i<=x;i++)

for(j=1;j<=110;j++);

}

 

void datapros()

{

ui temp;

static uc i;

if(i==50)

{

i=0;

temp=Read_AD_Data(0x94);

}

i++;

dig[1]=x[temp%10];

dig[2]=x[temp%100/10];

dig[3]=x[temp%1000/100];

dig[4]=x[temp/1000];

}

 

void digdisplay()

{

uc i;

for(i=1;i<=4;i++)

{

switch(i)

{

case(1):

LSA=0;LSB=0;LSC=0;break;

case(2):

LSA=1;LSB=0;LSC=0;break;

case(3):

LSA=0;LSB=1;LSC=0;break;

case(4):

LSA=1;LSB=1;LSC=0;break;

}

P0=dig[i];

delay(1);

P0=0x00;

}

}

void main()

{

while(1)

{

datapros();

digdisplay();

}

}

#include

 

void SPI_Write(uc dat)

{

uc i;

for(i=1;i<=8;i++)

{

din=dat>>7;

dat<<=1;

clk=1;

clk=0;

}

}

 

ui SPI_Read()

{

ui i,dat=0;

for(i=1;i<=12;i++)

{

clk=1;

dat<<=1;

        dat|=dout;

        clk=0;

}

return dat;

}

 

ui Read_AD_Data(uc cmd)

{

ui vae;

clk=0;

cs=0;

SPI_Write(cmd);

clk=1;

clk=0;

vae=SPI_Read();

cs=1;

return vae;

}

#ifndef _XPT2046_H_

#define _XPT2046_H_

 

#include

#include

 

#ifndef uc

#define uc unsigned char

#endif

#ifndef ui

#define ui unsigned int

#endif

#ifndef ul

#define ul unsigned long

#endif

 

sbit din=P3^4;

sbit cs=P3^5;

sbit clk=P3^6;

sbit dout=P3^7;

 

void SPI_Write(uc dat);

ui SPI_Read();

ui Read_AD_Data(uc cmd);

 

#endif

推荐阅读

史海拾趣

API Delevan公司的发展小趣事

随着技术的不断进步,API Delevan公司始终保持着对创新的追求。研发团队不断攻克技术难关,推出了一系列具有创新性的电感器、RF线圈、功率电感器等产品。这些产品不仅提高了性能,还降低了能耗,满足了客户的多样化需求。同时,公司还注重产品升级,不断提升产品的竞争力。

CANDD公司的发展小趣事

随着市场竞争的加剧,CANDD公司意识到单打独斗已经无法满足市场的需求。于是,公司开始积极寻求与其他企业的合作机会。通过与知名电子品牌商的合作,CANDD公司成功将其技术应用于更广泛的产品领域,进一步扩大了市场份额。同时,公司还与其他技术提供商建立了战略联盟,共同研发新技术,实现了互利共赢。

协顺电子(Finecables)公司的发展小趣事

在品质和创新的支撑下,协顺电子开始积极拓展市场。公司通过参加各类展会、举办技术交流会等方式加强与客户的沟通和交流,同时也不断完善自己的销售网络和售后服务体系。此外,协顺电子还注重品牌建设,通过广告宣传、公关活动等方式提升品牌知名度和美誉度。这些努力使得公司的市场份额不断扩大,品牌影响力也逐渐增强。

安谱隆(Ampleon)公司的发展小趣事

在恩智浦剥离射频业务后,安谱隆迅速吸引了资本市场的关注。建广资产成功竞标,以18亿美元(约116.82亿元人民币)的价格收购了安谱隆。这一交易不仅显示了建广资产对安谱隆技术实力和市场潜力的认可,也为安谱隆未来的发展注入了新的动力。在建广资产的支持下,安谱隆开始了其独立发展的新篇章。

Gennum ( Semtech )公司的发展小趣事
如果电路不工作,可以逐步断开或替换部分元件,以确定问题所在。
Collins Electronics Corp公司的发展小趣事

在电子行业竞争日益激烈的情况下,Collins Electronics Corp面临着巨大的挑战。为了保持竞争优势,公司加大了研发投入,不断优化产品性能。同时,他们还加强了对市场趋势的研究,以便及时调整产品策略。在一次行业技术革新中,公司凭借敏锐的市场洞察力和强大的研发能力,成功推出了一款符合市场需求的新产品,赢得了市场份额。

问答坊 | AI 解惑

适用于多平台的新型的按键扫描程序

以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,AVR,PIC,甚至是ARM平台上面测试这个程序性能。当然,我自己也是在多个项目用过,效果非常好的。好了,工程人员的习惯,废话就应该少说,开始吧。 核心算法: ...…

查看全部问答>

vs2005中新建的pocket PC2003 项目与wince4.0是什么关系?

vs2005中新建的pocket PC2003 项目与wince4.0是什么关系? 我新建的是pocket PC2003 项目,看文档说明书的时候,人家都说是,wince3.0 4.0什么的, 我想知道 pocket PC2003 到底是对应wince哪个版本呢? 先谢了..…

查看全部问答>

弱弱的问一句 bootloader 是那个文件?

弱弱的问一句: \\WINCE600\\OSDesigns\\2451\\2451\\RelDir\\smdk2450_ARMV4I_Release 下的 EBOOT.bin 和 EBOOT.nb0 ,是不是就是大家说的Bootloader 啊 ? 在没有bootloader 的裸片子上,是不是先烧EBOOT.nb0 后就可以烧 NK.nb0 了? …

查看全部问答>

打开DHCP之后,Microsoft ActiveSync无法连接

wince 2440开发板。我发现个奇怪的问题,如果DHCP打开的话,Microsoft  ActiveSync就连接不上了 刚刚开始玩wince. 本来开始不知道有个DHCP需要开启,就没有开,wince一开就Microsoft  ActiveSync就能连上, 后来出现 Tim ...…

查看全部问答>

关于把自己定制的内核下载到开发板的问题

我的开发板有个操作系统,已经做好操作系统了,现在我想把自己定制的内核下载到开发板上.   我在PB->Target->Configure Remote Connection->Download(Ethernet)->configure中找不到我的开发板的设备,请问这是什么原因? …

查看全部问答>

eeworld论坛没做好!搞得人很不爽!希望设计者多努力!

弹出下载界面,我点击取消,第二次居然说积分不过!他妈的吗,垃圾啊…

查看全部问答>

做的DS12C887时钟 12864液晶 秒只能跳1秒就停

做的DS12C887时钟 12864液晶 秒只能跳1秒就停 P0口接的12864液晶 P1口接的大侠们帮我看一下是什么问题#include <reg51.h>#define uchar unsigned char#define uint  unsigned int/* 端口定义*/#define LCD_data  ;P0  ...…

查看全部问答>

lm3s9b96上接3g上网卡或wifi的usb 开发

本人新人一个。。 以前不做这块的,刚去一个新单位,领导要开发这么一个东西。 主要目的就是通过usb口接的3g或wifi模块同外部设备进行数据传输。   大家有什么方案建议之类的没有? 例程最好了。学习文档之类的也非常感谢。   多 ...…

查看全部问答>

步进程序停不了?请教

   #include <reg52.h>#define uint unsigned int#define uchar unsigned charuchar code FFW[]={ 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 };sbit K1 = P3^0;//启动按键sbit K3 = P3^2; //停按键void DelayMS(uint ms)//延时{  ...…

查看全部问答>

OLED显示器的DC生产测试中测量误差的来源

测量误差的来源是由测试系统的精度、以及在对OLED给出信号和进行测量期间所未曾想到的瞬态过程引起的。在进行快速的生产测试时,在稳定状态下进行精确DC测量的能力,是与尽可能快地完成测试的需求相互牵制的。测试周期的时间长短是由源/测量以及 ...…

查看全部问答>