历史上的今天
今天是: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
史海拾趣
|
以下假设你懂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哪个版本呢? 先谢了..… 查看全部问答> |
|
弱弱的问一句: \\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中找不到我的开发板的设备,请问这是什么原因? … 查看全部问答> |
|
做的DS12C887时钟 12864液晶 秒只能跳1秒就停 P0口接的12864液晶 P1口接的大侠们帮我看一下是什么问题#include <reg51.h>#define uchar unsigned char#define uint unsigned int/* 端口定义*/#define LCD_data ;P0 ...… 查看全部问答> |
|
本人新人一个。。 以前不做这块的,刚去一个新单位,领导要开发这么一个东西。 主要目的就是通过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测量的能力,是与尽可能快地完成测试的需求相互牵制的。测试周期的时间长短是由源/测量以及 ...… 查看全部问答> |




