III: MẠCH MÔ PHỎNGKhi dung protues để mô phỏng mạch vì con cảm biến trong protues không mô phỏng được nên em dùng 1 nút nhấn button để thay thế.
Trang 1ĐỒ ÁN VI ĐIỀU KHIỂN
ĐỀ TÀI: Thiết kế bộ đếm sản phẩm dùng cảm biến hồng ngoại
Hiển thị trên 6 LED 7 thanh
File đính kèm 011.rar
GVHD: Nguyễn Anh Dũng SVTH : Vương Sỹ Hải
Khuất Đình Vinh Nguyễn văn Chiến
…***…
MỤC LỤC
I: sơ đồ nguyên lý……….2
II: code ……… 3
III: mạch mô phỏng……….4
Trang 2I: SƠ ĐỒ NGUYÊN LÝ
U 1
8 0 5 2
2 1
2 3
2 5
2 7
1 7
1 6
2 9
1 1
1 0
1 9
9
3 9
3 7
3 5
3 3
1 3 5 7
1 2
1 4
P 2 0
P 2 2
P 2 4
P 2 6
R D
W R
P S E N
A L E / P
T X D
R X D
X 1
R S T
P 0 0
P 0 2
P 0 4
P 0 6
P 1 0 / T 2
P 1 1 / T 2 X
P 1 2
P 1 4
P 1 6
I N T 0
T 0
R 8
R
R 1 1
R
C 3
5 V
Q 4
A 1 0 1 5
Q 5
A 1 0 1 5
R 4
R
L 2
2 l e d 7 t h a n h 1 2 3 4 5
c * e d g
-+
U 2 A
L M 3 5 8
3
5 V
C 4
C 2
Q 3
A 1 0 1 5
R 7
R
R 3
R
C 1 C
D 1
L E D
R 1
R
Q 2
A 1 0 1 5
R 6
R
R 2
R
U 3
L 1
4 L E D 7 T H A N H 1 2 3 4 5 6
e d 1 c g *
Q 1
A 1 0 1 5
A 1 0 1 5
5 V
Y 1
S W 1
R 9
R
5 V
R 1 0
R
R 5
J 1
N G U O N D C 5 V
1
II: CODE
# include<stdio.h>
# include<reg52.h>
# include<math.h>
unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned long int d,i;
void delay (void)
{
for(i=0;i<=30;++i);
}
void hienthi (unsigned long int n)
{
unsigned char donvi,chuc,tram,nghin,chucnghin,tramnghin;
tramnghin=n/100000;
chucnghin=(n%100000)/10000;
nghin=((n%100000)%10000)/1000;
tram=(((n%100000)%10000)%1000)/100;
Trang 3donvi=((((n%100000)%10000)%1000)%100)%10;
{
P1=0x01;
P2=M[tramnghin];
delay();
P1=0x02;
P2=M[chucnghin];
delay();
P1=0x04;
P2=M[nghin];
delay();
P1=0x08;
P2=M[tram];
delay();
P1=0x10;
P2=M[chuc];
delay();
P1=0x20;
P2=M[donvi];
delay();
}}
void main (void)
{
IE=0x84; //10000100
IT1=1;
d=0;
while(1)
{
hienthi(d);
}
}
void ngatngoai_1(void) interrupt 2
{
d++;
}
Trang 4III: MẠCH MÔ PHỎNG
Khi dung protues để mô phỏng mạch vì con cảm biến trong protues không mô phỏng được
nên em dùng 1 nút nhấn button để thay thế