Mô phỏng nguyên bản bổn: proteus 7.8
Trình tựBiên dịch khí:keil 4/keil 5
Biên trình ngôn ngữ: C ngôn ngữ
Thiết kế đánh số: S0018
Công năng miêu tả
Bổn chương trình học thiết kế dùng MPX4115Truyền cảm khíTới kiểm tra đo lường áp lực tham số,ADC0832Tiến hành mô số thay đổi sau, lợi dụngĐơn phiến cơAT89C52Tiến hành số liệu xử lý sau, dùng bốn cái bát đoạnChữ số quảnBiểu hiện áp lực giá trị. Áp lực đo lường phạm vi đong đo ở 15.3KPA~114.9KPA, phân độ giá trị vị 0.1kpa.
Giảng giải video
51 đơn phiến cơThai nguôi giận áp giám sát
Mô phỏng mạch điện
Tổng thể thiết kế phương án
Lần này thiết kế là căn cứ vào8051 đơn phiến cơĐo lường cùng biểu hiện. Lợi dụng truyền cảm khí đem áp lực thay đổi vì điện tín hào sau, ở trải qua ADC0832Mô số thay đổi khíKinh A/D thay đổi sau từ đơn phiến cơ tiến hành hữu hiệu xử lý, sau đó dùng chữ số quản tiến hành biểu hiện.
Đơn phiến cơ nhỏ nhất hệ thống
Từ AT89C52 đơn phiến cơ,Đồng hồ mạch điện,Trở lại vị trí cũ mạch điện tạo thànhAT89C51Là một loại mang 4K byte lập loèNhưng biên trìnhNhưng sát trừChỉ đọc tồn trữ khíThấp điện áp, cao tính năngCMOS8 vịHơi xử lý khí,Tục xưng đơn phiến cơ. AT89C52 là một loại mang 2K byte lập loè nhưng biên trình nhưng sát trừ chỉ đọc tồn trữ khí đơn phiến cơ. Đơn phiến cơ nhưng sát trừ chỉ đọc tồn trữ khí có thể lặp lại sát trừ 100 thứ. Nên linh kiện chủ chốt chọn dùng ATMEL mật độ cao phi dễ thất tồn trữ khí chế tạo kỹ thuật chế tạo, cùng công nghiệp tiêu chuẩn với đem nhiều công năng MCS-518Mệnh lệnh tậpCùng phát ra quản chân tương kiêm dung. VịCPUCùng lập loè tồn trữ khí tổ hợp ở từ đơn cáiChipTrung, ATMEL AT89C51 là một loại hiệu suất caoHơi khống chế khí,AT89C52 là nó một loại tinh giản phiên bản. AT89C đơn phiến cơ vì rất nhiềuKhảm nhập thứcKhống chế hệ thốngCung cấp một loại linh hoạt tính cao thả giới liêm phương án.
A/D thay đổi mô khối
ADC0832 là nước Mỹ quốc giaChất bán dẫn công tySinh sản một loại 8 vị độ phân giải,Song thông đạoA/D thay đổi chip. Bởi vì nó thể tích tiểu, kiêm dung tính, tương đối có lời mà thâm chịu đơn phiến cơ người yêu thích cập xí nghiệp hoan nghênh, này trước mắt đã có rất cao phổ cập suất. Học tập cũng sử dụng ADC0832 chính là sử chúng ta hiểu biết A/D thay đổi khí nguyên lý, có trợ giúp chúng ta đơn phiến cơ kỹ thuật trình độ đề cao. 8 vị độ phân giải song thông đạo A/D thay đổi đưa vào phát raĐiện bìnhCùng TTL/CMOS tương kiêm dung 5VNguồn điệnCung cấp điện khiĐưa vào điện ápỞ 0~5V chi gian công tác tần suất vì 250KHZ, thay đổi thời gian vì 32μS. ADC0832 vì 8 vị độ phân giải A/D thay đổi chip, này tối cao phân biệt có thể đạt tới 256 cấp, có thể thích ứng giống nhau bắt chước lượng thay đổi yêu cầu. Này bên trong nguồn điện đưa vào cùngTham khảo điện ápPhục dùng, khiến cho chip bắt chước điện áp đưa vào ở 0~5V chi gian.
Truyền cảm khí mô khối
MPX4115 hệ liệt áp điệnĐiện trởTruyền cảm khí là một cáiKhuê áp lực truyền cảm khí.Cái này truyền cảm khí kết hợp cao cấpHơi điện cơKỹ thuật, lá mỏng mạ vàng thuộc. Còn có thể vì cao tiêu chuẩn bắt chướcPhát ra tín hiệuCung cấp một cái cân đối áp lực. Ở 0℃-85℃ độ ấm hạ khác biệt không vượt qua 1.5%, độ ấm bồi thường là -40℃-125℃. Vì khắc phục quấy nhiễu, ở MPX4115 phát ra mạch điện trung gia tăng rồi RCSóng lọc mạch điện.Như sau đồ sở kỳ:
Trình tự
Đọc ADC0832 hàm số
// thu thập cũng phản hồi
unsigned int Adc0832(unsigned char channel) //AD thay đổi, phản hồi kết quả
{
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;// kéo thấp CS đoan
_nop_();
_nop_();
ADCLK=1;// kéo cao CLK đoan
_nop_();
_nop_();
ADCLK=0;// kéo thấp CLK đoan, hình thành giảm xuống duyên 1
_nop_();
_nop_();
ADCLK=1;// kéo cao CLK đoan
ADDI=channel&0x1;
_nop_();
_nop_();
ADCLK=0;// kéo thấp CLK đoan, hình thành giảm xuống duyên 2
_nop_();
_nop_();
ADCLK=1;// kéo cao CLK đoan
ADDI=(channel>>1)&0x1;
_nop_();
_nop_();
ADCLK=0;// kéo thấp CLK đoan, hình thành giảm xuống duyên 3
ADDI=1;// khống chế mệnh lệnh kết thúc
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDO;// thu số liệu
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;// hình thành một lần đồng hồ mạch xung
_nop_();
_nop_();
dat<<=1;
if(i==7)dat|=ADDO;
}
for(i=0;i<8;i++)
{
j=0;
j=j|ADDO;// thu số liệu
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;// hình thành một lần đồng hồ mạch xung
_nop_();
_nop_();
j=j<<7;
ndat=ndat|j;
if(i<7)ndat>>=1;
}
ADCS=1;// kéo thấp CS đoan
ADCLK=0;// kéo thấp CLK đoan
ADDO=1;// kéo cao số liệu đoan, trở lại mới bắt đầu trạng thái
dat<<=8;
dat|=ndat;
return(dat); //return ad k
}
// khởi độngI2C tổng tuyến,Tức gửi đi lúc đầu điều kiện
void StartI2C()
{
SDA = 1; // gửi đi lúc đầu điều kiện số liệu tín hiệu
_nop_();
SCL = 1;
_nop_(); // lúc đầu thành lập thời gian lớn hơn 4.7us
_nop_();
_nop_();
_nop_();
_nop_();
SDA = 0; // gửi đi lúc đầu tín hiệu
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL = 0; // đồng hồ thao tác
_nop_();
_nop_();
}
// kết thúc I2C tổng tuyến, tức gửi đi I2C kết thúc điều kiện
void StopI2C()
{
SDA = 0; // gửi đi kết thúc điều kiện số liệu tín hiệu
_nop_(); // gửi đi kết thúc điều kiện đồng hồ tín hiệu
SCL = 1; // kết thúc điều kiện thành lập thời gian lớn hơn 4us
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SDA = 1; // gửi đi I2C tổng tuyến kết thúc mệnh lệnh
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
// gửi đi một chữ tiết số liệu
void SendByte(unsigned char c)
{
unsigned char BitCnt;
for(BitCnt = 0;BitCnt < 8;BitCnt++) // một chữ tiết
{
if((c << BitCnt)& 0x80) SDA = 1; // phán đoán gửi đi vị
else SDA = 0;
_nop_();
SCL = 1; // đồng hồ tuyến vì cao, thông tri từ cơ bắt đầu tiếp thu số liệu
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL = 0;
}
_nop_();
_nop_();
SDA = 1; // phóng thích cáp sạc, chuẩn bị tiếp thu trả lời vị
_nop_();
_nop_();
SCL = 1;
_nop_();
_nop_();
_nop_();
if(SDA == 1) bAck =0;
else bAck = 1; // phán đoán hay không thu được trả lời tín hiệu
SCL = 0;
_nop_();
_nop_();
}
// tiếp thu một chữ tiết số liệu
unsigned char RevByte()
{
unsigned char retc;
unsigned char BitCnt;
retc = 0;
SDA = 1;
for(BitCnt=0;BitCnt<8;BitCnt++)
{
_nop_();
SCL = 0; // trí đồng hồ tuyến vì thấp, chuẩn bị tiếp thu
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
SCL = 1; // trí đồng hồ tuyến vì cao khiến cho số liệu hữu hiệu
_nop_();
_nop_();
retc = retc << 1; // tả di bổ linh
if (SDA == 1)
retc = retc + 1; // đương số liệu vì 1 tắc thu được số liệu +1
_nop_();
_nop_();
}
SCL = 0;
_nop_();
_nop_();
return(retc); // phản hồi thu được số liệu
}
Chủ hàm số
void main(void)
{
unsigned int OverCounter = 0;
unsigned char ptemp;
bit OverFlg = 0;
unsigned int temp,ppress = 0;
float press;
while(1)
{
getdata=Adc0832(0);
if(14<getdata<243) // đương áp lực giá trị xen vào 15kpa đến 115kpa chi gian khi, tuần hoàn tuyến tính biến hóa
{
int vary=getdata; //yq= ( get_AD_result()*5.0/255.0/5.1-0.04 )/0.00369-3.45;
press = (vary*5.0/255.0/5.1+0.04)/0.004-3.45; // tế điều 0.004 trị số
temp=(int)(press*10); // phóng đại 10 lần, dễ bề mặt sau tính toán
if(temp!= ppress)
{
ppress = temp;
OverFlg = 1;
}
dispbuf[3]=temp/1000; // lấy áp lực giá trị trăm vị
dispbuf[2]=(temp%1000)/100; // lấy áp lực giá trị mười vị
dispbuf[1]=((temp%1000)%100)/10; // lấy áp lực giá trị hàng đơn vị
dispbuf[0]=((temp%1000)%100)%10; // lấy áp lực giá trị thập phần vị
display();
if (temp > 100)
{
if(OverFlg == 1)
{
OverCounter++;
WIICByte(W24C04ADD,0x01,(OverCounter/0xff)); // thấp vị
WIICByte(W24C04ADD,0x02,(OverCounter%0xff)); // địa vị cao
OverFlg = 0; // thanh trừ tiêu chí
}
}
}
}
}
Thiết kế báo cáo
Tư liệu danh sách && download liên tiếp
Võng bàn download liên tiếp
- Thường thấy sử dụng vấn đề cập phương pháp giải quyết – tất đọc!!!!
- Nguyên trình tự
- proteus mô phỏng
- Khai đề báo cáo
- Giảng giải video
- Thiết kế báo cáo
Altium DesignerTrang bị phá giải
KEIL+proteus đơn phiến cơ mô phỏng thiết kế giáo trình
KEIL trang bị phá giải
ProteusNguyên linh kiện chủ chốtTra tìm
Proteus trang bị
Proteus giản dị sử dụng giáo trình
Đơn phiến cơ học tập tư liệu
Tương quan số liệu sổ tay
Biện hộ kỹ xảo
Thiết kế báo cáo thường dùng miêu tả
Con chuột song kích mở ra gia thịnh đơn phiến cơ 51 STM32 đơn phiến cơ chương trình họcĐề cương luận văn.url