ghép nối 8051 với 8255 để thực hiện việc đếm sản phẩm
anh (chị) giúp em với
anh (chị) giúp em với
banmun08 (721) | ||||
Toanlt_GP (368) | ||||
tiendientu343 (344) | ||||
hany_mitu (281) | ||||
TranTuyen_BG (275) | ||||
Capkama (271) | ||||
VDuy_NĐ (260) | ||||
Minh (257) | ||||
tieuthantien_3t (173) | ||||
Hangvt_gc (171) |
// chuong trinh *** san pham qua 8255
// duoc viet boi " Hand in Hand" Group
// dtvtk7a============
// khong co viec gi kho - chi so tien ko nhieu
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
//=====================
sbit RD1 = P2^0;
sbit WR1 = P2^1;
sbit A0 = P2^2;
sbit A1 = P2^3;
sbit C0 = P2^4;
sbit C1 = P2^5;
sbit C2 = P2^6;
sbit C3 = P2^7;
//=============================================
unsigned char M[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned sp,chuc,tram,nghin,donvi;
void delay(unsigned char x)
{
int i,j;
for(i=0;i<x;i++)
for(j=0;j<125;j++) ;
}
void hienthi(unsigned char a)
{
nghin = a/1000;
tram = (a%1000)/100;
chuc = ((a%1000)%100)/10;
donvi = ((a%1000)%100)%10;
A1=A0=0;// chon cong A
C0=1;
P0=M[nghin];
WR1=0;
WR1=1;
delay(10);
A1=A0=0;// chon cong A
C0=0;
P0=0xFF;
WR1=0;
WR1=1;
//========
A1=A0=0;// chon cong A
C1=1;
P0=M[tram];
WR1=0;
WR1=1;
delay(10);
A1=A0=0;// chon cong A
C1=0;
P0=0xFF;
WR1=0;
WR1=1;
//======
A1=A0=0;// chon cong A
C2=1;
P0=M[chuc];
WR1=0;
WR1=1;
delay(10);
A1=A0=0;// chon cong A
C2=0;
P0=0xFF;
WR1=0;
WR1=1;
//============
A1=A0=0;// chon cong A
C3=1;
P0=M[donvi];
WR1=0;
WR1=1;
delay(10);
A1=A0=0;// chon cong A
C3=0;
P0=0xFF;
WR1=0; // ghi vao gia tri
WR1=1;
}
void main(void)
{
A1=A0=1; // dat tu dieu khien
P0=0x80; // cong A la cong ra
WR1=0;
RD=1;
WR1=1;
IE=0x85;// ngat ngoai 0
IT0=1;
sp=0;
while(1)
{
hienthi(sp);
}
}
void ***(void) interrupt 0
{
sp++;
}
|
|