thanh
// VĐK AT89S8253
//---
#include "Display_utils.h" // khai bao thu vien 7 thanh unsigned short shifter,digits_array_index; // khai bao kieu du lieu cac bien unsigned int digit, number; // khai bao kieu du lieu cac bien
unsigned short digits_array[4]; // khai bao kich thuoc cho mang so
unsigned int cnt=0; // khai bao gia tri dau cho bien cnt bit tmp; // khai bao kieu du lieu cho bien tmp
int n = 0; // gia tri bat dau cua bien n
cho vong lap delay
void external_ISR()org 0x0003 ilevel 0{ // thiet lap ngat ngoai ISR uu tien muc 0
EA_bit =0; // Vo hieu hoa ngat
tmp = 1; // tang gia tri bien tmp
}
//============CHUONG TRINH CHINH ==================// void main(){
unsigned int j=0;
tmp=0; // gia tri ban dau cua bien tmp
P0= 0xFF; // thiet lap port P0 là chan output
P3 =0xFF; // thiet lap port P0 là chan input
IE= 0x81; // thiet lap cac ngat
//=======================================
digit = 0; // khoi tao cac bien
digits_array_index = 0; shifter = 1;
//======================================= while(1){
//======================================= // thuc hien chuc nang ngat
if(tmp){ // neu phim dc bam thi tang cnt
cnt= cnt + 1;
tmp = 0; // neu tmp=0 ket thuc ngat hien thi len led 7
//====== vong lap chinh ===================
for(n=0;n<500;n++) // thuc hien quet led 7 thanh {
digit = (cnt/500u)%50u; // xuat ra so hang nghin digits_array[3] = mask(digit); // luu den mang so
digit = (cnt/50u)%10u; // xuat ra so hang tram digits_array[2] = mask(digit); // luu den mang so
digit = (cnt/10u)%10u; // xuat ra so hang chuc digits_array[1] = mask(digit); // luu den mang so
digit = cnt % 10u; // xuat ra so hang don vi digits_array[0] = mask(digit); // luu den mang so
P0 = digits_array[digits_array_index]; // dua gia tri phu hop den Port0 P1 = shifter; // bat hien thi led 7 thanh shifter <<= 1; // di chuyen den so tiep theo
if(shifter > 8u) // neu shifter > 500 t quay ve gia hh tri dau
shifter = 1;
delay_ms(500); // delay 0.5s
digits_array_index++; // tang gia tri bien
if(digits_array_index >3u) // neu tang > 3 thi quay tro ve mang 0
} } }
Begin Cnt = 0; Cnt = 0; P3.B1 = 0x00; Cnt = cnt +1; Hiển thị 7 thanh End
S đ thu t toán chơ ồ ậ ương trình đ m s b m nút s d ng ng t và hi n th ế ố ấ ử ụ ắ ệ ị trên led 7 thanh