MPX4115压力传感器
AT89c51单片机
LED共阳极显示
单片机最小系统 显示模块 AD0832与单片机的连接 传感器与AD的连接
) 报告内容应包括:设计、应用背景,功能描述,电路设计(分模块讲述),软件部分(描述清楚流程图,不需要程序代码),参考文献;
单片机源程序如下:
- #include <reg51.h>
- #include <intrins.h>
- //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黑下载附件…………
复制代码
所有资料51hei提供下载:
自动检测.rar
(248.43 KB, 下载次数: 515)
|