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
EA_bit =1; // cho phep dung ngat }
//============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
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
if(digits_array_index >3u) // neu tang > 3 thi quay tro ve mang 0 digits_array_index = 0; } } }
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
START Dem=0; ctac==0? dem++; dem<=5000? dem=0;