資源簡介
mpx4115壓力和ds18b20溫度LED顯示,可精確0.1kpa,顯示穩定,帶預設值與報警電路,課切換壓力與溫度預設值顯示。
代碼片段和文件信息
#include??
#include?“intrins.h“
#include?
#define?uint?unsigned?int
#define?uchar?unsigned?char
//ADC0832的引腳
sbit?ADCS?=P2^0;??//ADC0832?chip?seclect
sbit?ADDI?=P3^7;??//ADC0832?k?in
sbit?ADDO?=P3^7;??//ADC0832?k?out
sbit?ADCLK?=P3^6;??//ADC0832?clock?signal
sbit?key1=P3^1;
sbit?key2=P3^2;
sbit?key3=P3^3;
sbit?key4=P3^4;
sbit?key5=P3^5;
sbit?A=P2^1;
sbit?B_B=P2^2;
sbit?C=P2^3;
sbit?D=P2^4;
sbit?E=P2^5;
sbit?LED_r=P2^6;
uchar?dispbitcode[8]={0xf70xfb0xfd0xfe0xef0xdf0xbf0x7f};?????????//位掃描
uchar?dispcode[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};???//共陽數碼管字段碼
uchar?dispcode2[]={0xbf0x860xdb0xcf0xe60xed0xfd0x870xff0xef};??//共陽數碼管字段碼,帶點
uchar?dispbuf[8];
uint?temptemp1;
uchar?getdataPH_yPH_wPL_yPL_wabcdefghpqtestN;?
float?wendu;
void?delay_1ms(void)??//12mhz?delay?1.01ms
{
???unsigned?char?xy;???
???x=3;
???while(x--)?
??{
???????y=40;
???????while(y--);
????}
}
void?delay_ms(void)
{
uchar?ij;
for(i=0;i<251;i++)
{
for(j=0;j<113;j++)
{
;
}
}
}
void?display(void)??//數碼管顯示函數
{
????P1=0xff;
????P0=0x00;
????P1=dispbitcode[0];
????P0=dispcode[dispbuf[0]];
????delay_1ms(); ??
????P1?=?dispbitcode[1];
????P0=dispcode2[dispbuf[1]];
????delay_1ms(); ?
????P1?=?dispbitcode[2];
????P0?=?dispcode[dispbuf[2]];
????delay_1ms(); ???
????P1?=?dispbitcode[3];
????P0?=?dispcode[dispbuf[3]];
????delay_1ms();
????P1?=?dispbitcode[5];
??P0?=?dispcode[dispbuf[6]];
??delay_1ms(); ??
??P1?=?dispbitcode[6];
??P0=dispcode2[dispbuf[5]];
??delay_1ms(); ?
??P1?=?dispbitcode[7];
??P0=dispcode[dispbuf[4]];
delay_1ms(); ???
????P1=?0xff;
????P0=?0x00;
}
/************
讀ADC0832函數
************/
//采集并返回
unsigned?int?Adc0832(unsigned?char?channel)?????//AD轉換,返回結果
{
????uchar?i=0;
????uchar?j;
????uint?dat=0;
????uchar?ndat=0;
????if(channel==0)channel=2;
????if(channel==1)channel=3;
????ADDI=1;
????_nop_();
????_nop_();
????ADCS=0;//拉低CS端
????_nop_();
????_nop_();
????ADCLK=1;//拉高CLK端
????_nop_();
????_nop_();
????ADCLK=0;//拉低CLK端形成下降沿1
????_nop_();
????_nop_();
????ADCLK=1;//拉高CLK端
????ADDI=channel&0x1;
????_nop_();
????_nop_();
????ADCLK=0;//拉低CLK端形成下降沿2
????_nop_();
????_nop_();
????ADCLK=1;//拉高CLK端
????ADDI=(channel>>1)&0x1;
????_nop_();
????_nop_();
????ADCLK=0;//拉低CLK端形成下降沿3
????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;
????
- 上一篇:游泳館會員管理系統課程設計
- 下一篇:數值分析試題及答案試題全
評論
共有 條評論