MPX4115压力传感器
AT89c51单片机
LED共阳极显示

单片机最小系统

显示模块

AD0832与单片机的连接

传感器与AD的连接

单片机源程序如下:
#include #include //ADC0832 引脚 sbit ADCS=P2^0; sbit ADDI=P3^7; sbit ADDO=P3^7; sbit ADCLK=P3^6; unsigned char dispbitcode[8]={0xF7,0xFB,0xFD,0xFE,0xEF,0xDF,0xBF,0x7F}; //位扫描 unsigned char dispcode[11]={0xC0,0xF9,0xA4,0xbB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF}; //段选码 共阳极 unsigned char dispbuf[4]; unsigned int temp; unsigned char getdata; void delay_1ms(void) { unsigned char x,y; x=3; while(x--) {y=40; while(y--); } } void display(void) {char k; for(k=0;k<4;k++) { P1=~dispbitcode[k]; P0=~dispcode[dispbuf[k]]; if(k==1) P0=P0+0x80; delay_1ms(); } } unsigned int ADC0832(unsigned char channel) //AD转换,返回结果 {unsigned char i=0; unsigned char j; unsigned int dat=0; unsigned char ndat=0; if(channel==0) channel=2; if(channel==1) channel=3; ADDI=1; _nop_(); _nop_(); ADCS=0; _nop_(); _nop_(); ADCLK=1; _nop_(); _nop_(); ADCLK=0; _nop_(); _nop_(); ADCLK=1; ADDI=channel&0x1; _nop_(); _nop_(); ADCLK=0; _nop_(); _nop_(); ADCLK=1; ADDI=(channel>>1)&0x1; _nop_(); _nop_(); ADCLK=0; ADDI=1; _nop_(); _nop_(); dat=0; for(i=0;i<8;i++) { dat|=ADDO; ADCLK=1; _nop_(); _nop_(); ADCLK=0; _nop_(); _nop_(); dat<<=1; if(i==7) dat|=ADDO; } for(i=0;i<8;i++) {j=0; j=j|ADDO; ADCLK=1; _nop_(); _nop_(); ADCLK=0; _nop_(); _nop_(); j=j<<7; ndat=ndat|j; if(i<7) ndat>>=1; } ADCS=1; ADCLK=0; ADDO=1; dat<<=8; dat|=ndat; return(dat); } void main(void) { while(1) { unsigned int temp; ……………………
上一篇:让控制器中按键处理数据的方法变得简单
下一篇:51单片机+hx711电子秤
推荐阅读
史海拾趣



ASM10DTBD-S664






京公网安备 11010802033920号