Professional Documents
Culture Documents
TTVXL - D3DTVT - Epu
TTVXL - D3DTVT - Epu
TRNG I HC IN LC
KHOA IN T - VIN THNG
BO CO
THC TP MN VI X L
: D3_DTVT
Nhm 1 3dtvt
Nhm 1 3dtvt
S khi ca AT89C51
AT89C51 c cc c trng c bn sau : 4Kbyte Flash,128 byte RAM, 32 ng xut
nhp,hai b nh thi/m 16 bit,mt cu trc ngt hai u tin v 5nguyn nhn ngt,mt post
ni tip song cng,mch dao ng v to xung clock trn chip. AT89C51 c thit k vi logic
tnh cho hot ng c tn s gim xung 0 v h tr hai ch tit kim nng lng c la
chn bng phn mm.Ch ngh dng CPU trong khi vn cho php RAM,cc b dnh
thi/m,port ni tip v h thng ngt tip tc hot ng. Ch ngun gim duy tr ni dung
ca RAM nhng khng cho mch dao ng cung cp xung clock nhm v hiu ha cc hot
ng khc ca chip cho n khi c reset cng tip theo.
Trong h AT89C51 ta i nghin cu vi iu khin 8051
3. Gii thiu chung v 8051
a. S chn:
Nhm 1 3dtvt
Nhm 1 3dtvt
BI 1 : IU KHIN IO VI LED N
1. Lp mch
2. Nguyn l hot ng
Led ni t chn vi iu khin xung t vy nu chn vi iu khin l 5V n s
sng,0V n tt.
3. Lp trnh
Trc ht iu khin 1 LED, iu khin 1 LED ta ch vic gn chn ni t ca
LED vi 0 hoc 1 th in p chn s l 0V hoc 5V tng ng vi in p n
s sang hoc tt.Lm tng t vi cc chn cn li ca vi iu khin ta s c mt dy cc
n LED sang theo mun. y ta s iu khin 8 LED.
CODE:
#include <REGX51.H>
Nhm 1 3dtvt
//lap vo han//
{
led1=bat;
//bat led 1 //
tre(1000);
led1=tat;
tre(1000);
led2=bat;
tre(1000);
led2=tat;
Nhm 1 3dtvt
tre(1000);
led3=bat;
tre(1000);
led3=tat;
tre(1000);
led4=bat;
tre(1000);
led4=tat;
tre(1000);
led5=bat;
tre(1000);
led5=tat;
tre(1000);
led6=bat;
tre(1000);
led6=tat;
tre(1000);
led7=bat;
tre(1000);
led7=tat;
Nhm 1 3dtvt
tre(1000);
led8=bat;
tre(1000);
led8=tat;
tre(1000);
led1=bat;
tre(1000);
led2=bat;
tre(1000);
led3=bat;
tre(1000);
led4=bat;
tre(1000);
led5=bat;
tre(1000);
led6=bat;
tre(1000);
led7=bat;
tre(1000);
led8=bat;
tre(1000);
led8=bat;
Nhm 1 3dtvt
tre(1000);
led8=tat;
tre(1000);
led7=bat;
tre(1000);
led7=tat;
tre(1000);
led6=bat;
tre(1000);
led6=tat;
tre(1000);
led5=bat;
tre(1000);
led5=tat;
tre(1000);
led4=bat;
tre(1000);
led4=tat;
tre(1000);
led3=bat;
Nhm 1 3dtvt
tre(1000);
led3=tat;
tre(1000);
led2=bat;
tre(1000);
led2=tat;
tre(1000);
led1=bat;
tre(1000);
led1=tat;
tre(1000);
}
}
Sau khi chy chng trnh,kim tra li va m phng trn protus ta s c mch sau:
Nhm 1 3dtvt
/************************************/
void tre(int time)
{
int n;// khai bao bien cuc bo
for(n=0;n<time;n++);
Nhm 1 3dtvt
}
/*******************************************/
void main()
{
while(1)
{
P2=0xFF;tre(5000);
P2=0xFE;tre(5000);
P2=0xFD;tre(5000);
P2=0xFB;tre(5000);
P2=0xF7;tre(5000);
P2=0xEF;tre(5000);
P2=0xDF;tre(5000);
P2=0xBF;tre(5000);
P2=0x7F;tre(5000);
P2=0x7f;tre(10000);
P2=0xBF;tre(10000);
P2=0xDF;tre(10000);
P2=0xEF;tre(10000);
P2=0xF7;tre(10000);
P2=0xFB;tre(10000);
P2=0xFD;tre(10000);
P2=0xFE;tre(10000);
Nhm 1 3dtvt
P2=0x7e;tre(5000);
P2=0xBD;tre(5000);
P2=0xDB;tre(5000);
P2=0xE7;tre(5000);
P2=0xE7;tre(5000);
P2=0xDB;tre(5000);
P2=0xBD;tre(5000);
P2=0x7e;tre(5000);
}
Nhm 1 3dtvt
Nhm 1 3dtvt
2. Nguyn l hot ng
Khi cm ngun vo mch tt c cc chn ca cc cng IO ca vi iu khin 5V(nu
cng 0 khng lp in tr treo th s l 0V). Nhn s mch khng c s chnh lch in
p nn khng c n no sng. Ta mun led no sng ta ch vic a ra in p 0V chn vi
iu khin ni vi thanh .
Thanh hin
Thanh tt
Gi tr(P2)
hin th s 1: B,C
cc thanh cn li
1111 1001
hin th s 2: A,B,D,E,G cc thanh cn li
1010 0100
.
hin th s 8: Tt c cc thanh khng thanh no 1000 0000
Ngoi led 7 thanh cn c th hin th 1 ch s.v d :
Hin th ch A: thanh hin A,B,C,E,F,G;thanh tt D;gi tr ca P2 :1000 1000
3. Lp trnh
- Cch 1 : ging nh bi th nht, lp trnh d hiu khng cn tnh ton nhng phi
vit copy,past v chnh sa nhiu
- Cch 2 : cng ging nh bi trn chng ta iu khin tng cng khng theo tng
chn nh cch 1,tuy nhin phi tnh ton nhiu.
y chng ta s lm theo cch 2,ta c code sau:
#include <REG2051.H>// dinh nghia
//khai bao bien toan cuc
unsigned char i;
unsigned char so_dem[] =
{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
//so
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
Nhm 1 3dtvt
{0x00 ,
8,
{
P1 = (so_dem2[i]|so_dem[j]); //khai bao hang don vi
taotre(7000);
//tao tre
if(i==9)
{
j++;
P1=(so_dem[j]|so_dem2[i]); //khai bao hang chuc
if(j==10)
//cho hang
chuc den 9 roi ve 0
j=0;
}
}
}
}
Sau khi chy chng trnh v kim tra li th kt qu hin th trn protus nh sau :
Nhm 1 3dtvt
Nhm 1 3dtvt
BI 3 : C BN PHM
(c ma trn phm)
1. Nhim v : quyt bn phm 16 phm (4x4),xem phm no c bm,cc phm c nh
3. Nguyn l qut :
- V sao mch phm u theo ma trn? v nu c 16 nt bm thng thng th cn
phi u vi 16 chn vi iu khin. Cn nu u theo ma trn th ta ch cn 8 chn vi
iu khin cng c th iu khin c 16 phm bm
- C hai cch qut phm theo ct v theo hng. y, chng ta chn cch qut phm
theo hng.
- Bc 1: Ta a chn P3.0 ni hng 1 xung 0V. Ri ta kim tra gi tr logic ca cc
chn P3.4,P3.5,P3.6.P3.7. Nu phm 1 c bm th ct 1_P3.4 s c gi tr bng
0V.Nu phm 2 c bm th ct 2_P3.5 s c gi tr bng 0V.Nu phm 3 c
bm th ct 3_P3.6 s c gi tr bng 0V. Nu phm 4 c bm th ct 4_P3.7 s c
gi tr bng 0V. Ta cn c vo xc nh xem phm no c bm.
- Bc 2: Ta a chn P3.1 ni hng 2 xung 0V. Ri ta kim tra gi tr logic ca cc
chn P3.4,P3.5,P3.6.P3.7. Nu phm 5 c bm th ct 1_P3.4 s c gi tr bng
0V.Nu phm 6 c bm th ct 2_P3.5 s c gi tr bng 0V.Nu phm 7 c
bm th ct 3_P3.6 s c gi tr bng 0V. Nu phm 8 c bm th ct 4_P3.7 s c
gi tr bng 0V. Ta cn c vo xc nh xem phm no c bm.
Nhm 1 3dtvt
Nhm 1 3dtvt
if (!H_1)
{
C_1 = 1;
C_2 = 1;
C_3 = 1;
C_4 = 1;
H_1 = 0;
if(!C_1) stt = 1;
else if (!C_2) stt = 2;
else if (!C_3) stt = 3;
else if (!C_4) stt = 4;
}
if (!H_2)
{
C_1 = 1;
C_2 = 1;
C_3 = 1;
C_4 = 1;
H_2 = 0;
if(!C_1)
stt = 5;
else if (!C_2) stt = 6;
else if (!C_3) stt = 7;
else if (!C_4) stt = 8;
}
if(!H_3)
{
C_1 = 1;
C_2 = 1;
C_3 = 1;
C_4 = 1;
H_3 = 0;
if(!C_1)
stt = 9;
else if (!C_2) stt = 10;
else if (!C_3) stt = 11;
else if (!C_4) stt = 12;
}
if(!H_4)
{
C_1 = 1;
C_2 = 1;
C_3 = 1;
C_4 = 1;
H_4 = 0;
if(!C_1)
stt = 13;
else if (!C_2) stt = 14;
Nhm 1 3dtvt
Nhm 1 3dtvt
gian
2. Gii thiu v LCD:
LCD 16x2 hin th c hai hng mi hng hin th c 16 k t.(LCD c 14 chn
c hin th nh hnh v :
Thng s ca LCD :
+Kch thc hin th : 16 k t x 2 dng
+Mu hin th: en/trng
+Ch giao tip : 8 bt v 4 bt
+C ch hin th : 5x7 hoc 5x10
Cu trc ca LCD :
LCD c tng s 14 chn chia lm 3 nhm:
Nhm 1: (3 chn) Cp ngun VDD, VSS : cp 5V, 0V
VEE: thay i in p thay i tng phn
Nhm 2: (8 chn) Vo ra thng tin vi VK : T chn D0-D7
Nhm 3 : (3 chn) iu khin vic vo ra thng tin : E,RS,R/W
E :(bt /tt ) (cho php/ khng cho php trao i thng tin vi VK )
RS :(loi thng tin trao i)Thng tin trao i l lnh iu khin hay l
d liu hin th
Nhm 1 3dtvt
R/W : (hng truyn ca thng tin) c trng thi t LCD hay thng tin cho VK
LCD hin th.
Tn
M t chc nng
Cp ngun
Cp ngun
0V (GND)
Ni vi dng ngun (+4.5V~+5.5V)
iu chnh in p chn ny s tng gim tng
phn ca LCD. cho nn n thng c ni vi bin
tr.
Nu RS=0 : LCD nhn lnh t VK
Nu RS=1: LCD nhn d liu t VK hin th
Chn chc nng ghi/ c
RS=1 : chn chc nng c d liu t LCD vo VK
RS=0 : chn chc nng ghi d liu t VKvo LCD
hin th
Cho php/ ko cho php LCD trao i thng tin vi
VK.
Ch khi E chuyn t 10 th tn hiu cc chn D0D7 mi c a vo LCD.
VEE
Contrast
RS
RW
Read/Write
D0
D1
9
10
11
D2
D3
D4
12
D5
Nhm 1 3dtvt
13
14
D6
D7
T nhng c im v chc nng c cp trn ta c s VDK sau :
3. Nguyn tc hot ng
Cc chn Vcc Vee Vss : cp dng ngun -5V v t tng ng th VEE dng iu
khin ch tng phn ca LCD.
Chn chn thanh ghi RS(regiter select):C hai thanh ghi trong LCD,chn RS c
dng chn thanh ghi,nh sau : nu RS=0 thi thanh ghi m lnh c chn cho php
ngi dng gi 1 lnh chng hn nh xa mn hnh,a con tr v u dngnu RS=1
th thanh ghi d liu c chn cho php ngi dng gi d liu cn hin th trn LCD.
Chn c/ghi (R/W):u vo c/ghi cho php ngi dng ghi thng tin trn LCD
khi RW=0 hoc c thng tin t n khi RW=1.
Nhm 1 3dtvt
Chn cho php E(Enable):chn cho php E c s dng bi LCD cht d liu
ca n.Khi d liu c cp n chn d liu th mt xung mc cao xung thp phi c
p n chn ny LCD cht d liu trn cc chn d liu.Xung ny phi rng ti thiu
450ns.
Chn D0-D7: y l 8 chn d liu 8bit c dng gi ni dung ln LCD hoc
c ni dung ca cc thanh ghi trong LCD. hin th cc ch ci v cc con s chng ta
s dng m ASCII ca cc ch ci t A-Z,a-f v cc con s t 0-9 n cc chn ny khi
RS=1.
Cng c cc m lnh c gi n LCD xa mn hnh hoc a con tr v u
dng hoc nhp nhy con tr.
*Ch : Chng ta c th s dng RS=0 kim tra bit bn xem LCD c sn sng
nhn thng tin.C bn l bt D7 v c th c c thi R/W=1 v RS=0 nh sau:
Nu R/W=1, RS=0, D7=1(c bn) th LCD bn th LCD bn bi cc cng vic bn
trong v s khng nhn bt k thng tin mi no.Khi D7=0 th LCD sn sng nhn thng
tin mi.Lu chng ta nn kim tra c bn trc khi ghi bt k d liu no ln LCD.
Sau y l bng m lnh ca LCD:
M(Hex)
Lnh n thanh ghi ca LCD
1
Xa mn hnh hin th
2
Tr v u dng
3
Gim con tr (dch con tr sang bn tri)
4
Tng con tr (dch con tr sang bn phi)
5
Dch hin th sang phi
6
Dch hin th sang tri
7
Tt con tr,tt hin th
8
Tt hin th,bt con tr
A
Bt hin th,tt con tr
C
Bt hin th,nhp nhy con tr
E
Tt con tr,nhp nhy con tr
F
Dch v tr con tr sang tri
10
Dch vi tr con tr sang phi
14
18
Dch ton b hin th sang tri
1C
Dch ton b hin th sang phi
80
p con tr v u dng th nht
C0
p con tr v u dng th 2
38
Hai dng v ma trn 5x7
iu khin LCD qua cc bc sau:
- Bc 0: chn b phn cng.dng tuc vt xoay bin tr 5k iu chnh tng phn ca
Nhm 1 3dtvt
LCD.Xoay cho n khi cc vung (cc im nh)ca LCD hin ln th xoay ngc bin tr li
1 cht.
-Bc 1: Khi to cho LCD.
-Bc 2: Gn gi tr cho cc bit iu khin cc chn RS,R/W,EN cho ph hp vi cc ch
.Hin th k t ln LCD hay thc hin 1 lnh ca LCD.
-Bc 3: Xut byte d liu ra cng iu khin 8 bit d liu ca LCD.
-Bc 4: Kim tra c bn xem LCD sn sng nhn d liu mi cha
-Bc 5: Quay vng li bc 1.
4. Lp trnh
Code :
#include <REGX52.H>
#include <string.H>
//------------Khoi tao bien va cac gia tri gan-------------//
sbit RS_LCD = P2^5;
sbit RW_LCD = P2^6;
sbit E_LCD = P2^7;
//---------------Sau day la cac chuong trinh con------------//
unsigned char min,sec,hour,x0,x1;
//ngat do bo dinh thoi 0
void timer0_isr() interrupt 1
{
x0++;
if (x0==100)
{
x0 = 0;
x1++ ;
if (x1 == 100)
{
x1 = 0;
sec ++;
if (sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
Nhm 1 3dtvt
}
}
}
//--------------Ham tre khoang thoi gian rat ngan phuc vu viec kiem tr co ban---------------//
void delay()
{
unsigned int i;
for(i=0;i<125;i++);
}
//--------------Ham kiem tra co ban (busy_flag)--------------??
void kt_ban()
{
unsigned char x;
P0 = 0xff;
RS_LCD = 0;
RW_LCD = 1;
do
{
E_LCD = 1;
delay();
E_LCD = 0;
x=P0;
x=x&0x80;
}
while(x!=0x80);
}
//---------------Ham ghi lenh giao tiep voi LCD---------------//
void ghi_lenh(unsigned char lenh)
{
kt_ban();
P0 = lenh;
RS_LCD = 0;
// Chon thanh ghi lenh
RW_LCD = 0;
// Chon che do ghi du lieu tu 8051 vao LCD
E_LCD = 1;
delay();
E_LCD = 0;
}//------------*******-----------------//
//-----------Ham ghi ky tu ra LCD------------//
void ghi_kytu(unsigned char kytu)
{
kt_ban();
P0 = kytu;
RS_LCD = 1;
RW_LCD = 0;
Nhm 1 3dtvt
E_LCD =1;
delay();
E_LCD = 0;
}
//-----------Ham ghi chuoi ky tu ra LCD------------//
void ghi_chuoi(char *str)
{
while(*str)
{
//
delay(50);
ghi_kytu(*str);
str++;
}
}
//-----------Ham khoi tao LCD------------//
void setting_LCD()
{
ghi_lenh(0x38);
ghi_lenh(0x01);
// Xoa man hinh
ghi_lenh(0x0f);
// Co dich hien thi
}
/*CHUONG TRINH CHINH */
void main()
{
TMOD = 0x02; //Bit chon che do thu nhat cho timer0
TH0 = 155;
//155-255 100 lan dem thi ngat
IE = 0x82;
//cho phep ngat tu ben ngoai (ngat ngoai 0)
TR0 = 1;
//Cho phep timer0 chay
setting_LCD();
while(1)
{
ghi_lenh(0x80);
ghi_lenh(0x0c);
ghi_chuoi ("Nhom 18-d3dtvt");
ghi_lenh(0xc0);
ghi_lenh(0x0c);
ghi_kytu(hour/10+0x30); // chuyen sag bang ASCII
ghi_kytu(hour%10+0x30);
ghi_kytu(':') ;
ghi_kytu(min/10+0x30);
ghi_kytu(min%10+0x30);
ghi_kytu(':') ;
ghi_kytu(sec/10+0x30);
ghi_kytu(sec%10+0x30);
Nhm 1 3dtvt
}
}
Hin th m phng :
Nhm 1 3dtvt
BI 5 : LED MA TRN
1. Nhim v : iu khin LED ma trn 8x8 dng ch chy NHOM-18
LED ma trn:
2. C s l thuyt
Da trn nguyn tc nh qut mng hnh,ta c th thc hin vic hin th ma trn n bng
cch qut theo hng v qut theo ct.Mi led trn ma trn c th coi l mt im nh.a ch ca
mi im nh c xc nh ng thi vi b gii m hng v gii m ct.im nh ny dc
xc nh trng thi nh vi iu khin 8051.
Nh vy ti mi thi im ch c trng thi ca mt im nh c xc nh.Tuy nhin
khi xc nh a ch v trng thi ca im nh tip theo th cc im nh cn li s chuyn v
trng thi tt(nu LED ang sng th s tt dn).V th hin th c ton b hnh nh ca ma
trn n.Ta c th qut ma trn nhiu ln vi tc qut rt ln,ln hn nhiu ln thi gian tt
ca n.Mt ngi ch nhn bit c ti a 24hnh/s do nu tc quet rt ln th s khng
nhn ra c s thay i nh ca n m s thy c ton b hnh nh cn hin th.
Nhm 1 3dtvt
3. Nguyn l hot ng
Nhm 1 3dtvt
//chu N
0XFF,0X00,0X00,0XE7,0XE7,0X00,0X00,//chu H
0XFF,0XFF,0X81,0X00,0X3C,0X00,0X81, // chu o
0XFF,0X00,0X00,0X9F,0XCF,0XCF,0X9F,0X00,0X00, //chu M
0XFF,0XFF,0XF7,0XF7,0XF7,0XF7,
// dau -
0XFF,0XFF,0XFF,0XFF,0XCC,0X00,0X00,0XFC,// so 1
0XFF,0XFF,0X00,0X00,0X24,0X24,0X00,0X00, // so 8
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF};
void delay(unsigned int t)
{
unsigned int i;
for(i=0;i<=t;i++);
Nhm 1 3dtvt
}
void scan(void)
{
P3=hang[n];
if(p<=75) P2=cot[p];
if(p>8) P1=cot[p-8];
if(p>16) P0=cot[p-16];
}
void main(void)
{
m=0;
while(1)
{
for(n=0;n<=7;n++)
{
p=n+m;
scan();
delay(100);
}
delay(3000);
m++;
Nhm 1 3dtvt
if(m==75) m=0;
}
}
Hin th trn protus :
Nhm 1 3dtvt
Nhm 1 3dtvt
Nhm 1 3dtvt
Nu ngt ngoi thuc loi tc ng mc, nguyn nhn ngt ngoi phi c duy tr trng thi
tch cc cho n khi ngt theo yu cu thc s c to ra. Sau nguyn nhn ngt phi trng
thi th ng trc khi trnh phc v ngt c thc thi xong hoc trc khi c mt ngt khc
c to ra.
Thng thng, mt cng vic c thc thi bn trong trnh phc v ngt lm cho nguyn nhn
ngt tr tn hiu yu cu ngt tr v trng thi khng tch cc.
2. Lp trnh
Code :
#include <REGX51.H>
#include <string.h>
//khai bao va dinh nghia
unsigned const t = 100;
unsigned char giay = 0,gio=3,phut=45;
unsigned char date=29,month=9;
//unsigned char count=0;
//dinh nghia LCD
sbit BF = P2^7;
sfr databus=0xA0;
///
sbit rs = P3^0;
sbit rw = P3^1;
sbit e = P3^3;
Nhm 1 3dtvt
Nhm 1 3dtvt
{
ready();
databus = c;
rs = 0;//chon thanh ghi lenh
rw = 0;//chon che do ghi
e = 1;//dua chan chot tu 1 xuong 0 de day du lieu tren bus vao LCD
e = 0;
}
//khoi tao LCD
void lcd_init(void)
{
control(0x01);// xoa man hinh hien thi truoc do
control(0x38);//0x38:giao tiep 8 bit,hien thi 2 dong va che do 5x8 diem anh
//0x37:giao tiep 8 bit,hien thi 1 dong,kieu ky tu 5x10 diem anh
control(0x0c);//0x0f: bat hien thi,nhap nhay con tro
//0x0c:tat con tro
control(0x06);//dich con tro sang phai 1 vi tri khi co thao tac doc/ghi du lieu tren
DDRAM,nhung
// khong dich toan bo noi dung hien thi.neu muon dich toan
bo thi nap vao 0x05
}
//chuong trinh ghi du lieu
void putchar(unsigned char c)
{
Nhm 1 3dtvt
ready();
databus = c;
rs = 1;// chon thanh ghi du lieu
rw = 0; // chon che do ghi
e = 1;
e = 0;
}
Nhm 1 3dtvt
do_dai--;//tru do_dai di mot don vi,co den khi bang 0 di thoat khoi while
}
}
//hien thi so nguyen
void integer(unsigned int d )
{
unsigned char nghin,tram,chuc,don_vi;
if(d>999)
{
don_vi = d%10; //duoc chuc so hang don vi
d = d/10; //duoc so da bo di hang don vi ->lam viec voi so d moi
//sau moi lan chia cho 10 va lay phan nguyen thi lai duoc 1 so moi
mat di mot hang ben phai
chuc = d%10; //duoc chu so hang chuc
d=
d/10;
Nhm 1 3dtvt
{
don_vi = d%10; //duoc chuc so hang don vi
d = d/10; //duoc so da bo di hang don vi ->lam viec voi so d moi
//sau moi lan chia cho 10 va lay phan nguyen thi lai duoc 1 so moi
mat di mot hang ben phai
chuc = d%10; //duoc chu so hang chuc
d=
d/10;
Nhm 1 3dtvt
}
//dua con tro toi vi tri bat ky
void lcd_gotoxy(unsigned char x,y) //y la cot y = 0->15, x la hang x = 1,2
{
unsigned char i;
if(x == 1 )
control(0x80); //ep con tro ve dau dong thu nhat
else
control(0xc0); //ep com tro ve dau dong thu 2
if(y<16)
{
for(i=0;i<y;i++)
control(0x14);
}
}
///NGAT NGOAI///////////////////////////////
//khoi tao ngat ngoai 0
void ex_init(void)
{
//EA = 0;//cam cac ngat toan cuc
IT0 = 1;//kich boi suon xuong
EX0 = 1; // cho phep ngat ngoai 0
EA = 1; // cho phep ngat toan cuc
Nhm 1 3dtvt
}
// ISR cho ngat ngoai 0
void ngatngoai_isr(void) interrupt 0
{
//count++;
//TH0 = 0xf7;
//EX0 = 0;
giay++;
if(giay == 60)
{
giay = 0;
phut++;
if(phut == 60)
{
phut = 0;
gio++;
if(gio == 24)
{
gio = 0;
date++;
if(date == 30)
{
date = 1;
Nhm 1 3dtvt
month++;
if(month == 12 )
month = 1;
}
}
}
}
// EX0 = 1;
}
/////////////////////////////////
//chuong trinh hien thiso
void hienthi_so(unsigned char q)
{
unsigned char dv,ch;
ch = q/10;
dv = q%10;
putchar(48+ch); //hien thi hang chuc
putchar(48+dv);
}
//chuong trinh hien thi thoi gian
void hienthi_time(unsigned char h,m,s)
{
Nhm 1 3dtvt
lcd_gotoxy(1,1);
lcd_putsf("pm");
//hien thi dau ':'
lcd_gotoxy(1,6);
lcd_putsf(":");
//hien thi phut
lcd_gotoxy(1,7);
hienthi_so(m);
//hien thi dau ':'
lcd_gotoxy(1,9);
lcd_putsf(":");
//hien thi giay
lcd_gotoxy(1,10);
hienthi_so(s);
}
else if(h == 12)
Nhm 1 3dtvt
{
lcd_gotoxy(1,4);
hienthi_so(h);
lcd_gotoxy(1,1);
lcd_putsf("pm");
//hien thi dau ':'
lcd_gotoxy(1,6);
lcd_putsf(":");
//hien thi phut
lcd_gotoxy(1,7);
hienthi_so(m);
//hien thi dau ':'
lcd_gotoxy(1,9);
lcd_putsf(":");
//hien thi giay
lcd_gotoxy(1,10);
hienthi_so(s);
}
else
{
lcd_gotoxy(1,4);
hienthi_so(h);
Nhm 1 3dtvt
lcd_gotoxy(1,1);
lcd_putsf("am");
//hien thi dau ':'
lcd_gotoxy(1,6);
lcd_putsf(":");
//hien thi phut
lcd_gotoxy(1,7);
hienthi_so(m);
//hien thi dau ':'
lcd_gotoxy(1,9);
lcd_putsf(":");
//hien thi giay
lcd_gotoxy(1,10);
hienthi_so(s);
}
}
//hien thi lich
void hienthi_lich(unsigned char dt,mt)
{
//hien thi ngay
lcd_gotoxy(2,6);
hienthi_so(dt);
//hien thi dau '/'
Nhm 1 3dtvt
lcd_gotoxy(2,8);
lcd_putsf("/");
//hien thi thang
lcd_gotoxy(2,9);
hienthi_so(mt);
//hien thi dau '/'
lcd_gotoxy(2,11);
lcd_putsf("/");
//hien thi nam
lcd_gotoxy(2,12);
integer(2011);
Nhm 1 3dtvt
//for(a=0;a<24;a++)
//{
hienthi_time(gio,phut,giay);
hienthi_lich(date,month);
taotre(5000);
//
//
}
}
M phng :
control(0x18);
Nhm 1 3dtvt
BI 7 : MCH O TN S
Code :
#include <AT89X51.H>
#include <stdio.h>
#include<string.h>
#define RS P3_5
#define RW P3_6//RW=0 => ghi
#define EN P3_7//RW=1 => doc
//RS=0 => code
//RS=1 => data
#define lcd_PORT P1
Nhm 1 3dtvt
//===========================
void delay_ms(int n)
{
int k,j;
for(k=0;k<n;k++)
{
for(j=0;j<500;j++);
}
}
//==========================
void delay_5ms(){
int i,j;
for(i=0;i<250;i++)
for(j=0;j<4;j++){}
}
//===========================
void delay_15ms(){
int i,j;
for(i=0;i<250;i++)
for(j=0;j<100;j++){}
}
Nhm 1 3dtvt
//============================
void lcd_command(unsigned char c) //CT con ghi du lieu len LCD
{
RS=0;
RW=0;
lcd_PORT=c;
EN=1;
EN=0;
delay_5ms();
}
//==============================
void lcd_data(unsigned char c) //CT con doc du lieu tu LCD
{
RS=1;
RW=0;
lcd_PORT=c;
EN=1;
EN=0;
delay_5ms();
}
//=============================
void lcd_gotoxy(int x, int y)
{
Nhm 1 3dtvt
if((x<1||x>2)&&(y<1||y>16))
{
x=1;
y=1;
}
if(x == 1)
lcd_command(0x7F+y);
else
lcd_command(0xBF+y);
}
//===============================
void lcd_init() // Khoi tao LCD
{
delay_15ms();
lcd_command(0x38);
lcd_command(0x0C);
// lcd_command(0x06);
lcd_command(0x01); // Xoa man hinh LCD
}
//================================
void lcd_clear()
Nhm 1 3dtvt
{
lcd_command(0x01);
}
//===============================
void lcd_home()
{
lcd_command(0x80);
}
//=============================
void lcd_putsf(unsigned char *s)
{
while (*s)
{
lcd_data(*s);
s++;
}
}
//============================
void HienThi_ADC(unsigned char t)
{
unsigned char v;
if(t<10)
lcd_data(t+48);
Nhm 1 3dtvt
else if(t<100)
{
lcd_data(t/10+48);
lcd_data(t%10+48);
}
else
{
v=t/10;
lcd_data(v/10+48);
lcd_data(v%10+48);
lcd_data(t%10+48);
}
}
Nhm 1 3dtvt
WR=0;
delay_ms(5);
//
WR=1;
//
while(!INTR);
RD=0;
gt=P2;
lcd_command(0x01);
lcd_command(0x83);
lcd_putsf("8051 & ADC");
lcd_command(0xC0);
lcd_putsf("Nhiet do:");
HienThi_ADC(gt);
delay_ms(150);
}
}
M phng :
Nhm 1 3dtvt
Nhm 1 3dtvt
BO CO THC TP VI X L
ti : LED CUBE 8X8X8
1. Tm hiu chung
1.1
Atmega32
Ngai vi:
+2 timer/counter 8 bit vi cc mode :so snh v chia tn s
+1 timer/counter 16 bit vi cc mode:so snh,chia tn s,capture,PWM
+1 timer thi gian thc(Real time clock) vi b dao ng ring bit
Nhm 1 3dtvt
I/O port:
+32 chn I/O(Atmega16) v 21 chn I/O (Atmega8) lp trnh c
+v 40 chan (Atmega16) ,28 chn(Atmega8),64
chn(AT90can128);
Ngun cp:
2,7->5.5 V vi ATmega32L
4.5->5.5V vi ATmega32H
Nhm 1 3dtvt
1.2
ULN2803
Nhm 1 3dtvt
1.3 IC 74HC595
Chn 11 l chn xung clock. Khi c 1xung t thp ln cao th nhn 1 bit d liu
vo chn Data.
Chn 14 l chn data cho tng bit d liu khi c xung vo chn 11. Cc bit d liu
ny dch t chn QA ti chn QH, nu cc bit y QA n QH th d liu trn
xung chn 9 l chn SDO (chn trn)
Chn 12 l chn cht d liu (STR). d liu sau khi c a vo chn data, khi
c xung t 0 ln 1 vo chn STR th d liu s c xut ra khi IC74hc595.
Nhm 1 3dtvt
Nhm 1 3dtvt
Ta dng PORTA xut d liu cho ULN2803 iu khin cc tng ca led cube.
Mi tng tng ng vi 1bit ca PORTA.
Nhm 1 3dtvt
Nhm 1 3dtvt
Nhm 1 3dtvt
hienthi(temp5);
hienthi(temp6);
hienthi(temp7);
hienthi(temp8);
chot=0;
chot=1;
}
void tat()
{
hienthi(0x00);
hienthi(0x00);
hienthi(0x00);
hienthi(0x00);
hienthi(0x00);
hienthi(0x00);
hienthi(0x00);
hienthi(0x00);
chot=0;
chot=1;
}
Nhm 1 3dtvt
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x07;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x07;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x07;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x07;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L1=1;delay_ms(1);L1=0;
}
for(i=0;i<=m;i++)
{
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x1c;temp6=0x1c;temp7=0x00;tem
p8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x1c;temp4=0x00;temp5=0x00;temp6=0x1c;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x1c;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x1c;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x1c;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x1c;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x1c;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x1c;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x1c;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x1c;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x1c;temp4=0x00;temp5=0x00;temp6=0x1c;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x1c;temp6=0x1c;temp7=0x00;tem
p8=0x00;xuat();L1=1;delay_ms(1);L1=0;
}
for(i=0;i<=m;i++) //d
{
Nhm 1 3dtvt
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x70;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x70;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x70;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x70;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L1=1;delay_ms(1);L1=0;
}
for(i=0;i<=m;i++) //t
{
temp1=0x00;temp2=0x07;temp3=0x07;temp4=0x07;temp5=0x07;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
for(i=0;i<=m;i++) //t
{
temp1=0x00;temp2=0x1c;temp3=0x1c;temp4=0x1c;temp5=0x1c;temp6=0x07;temp7=0x00;tem
p8=0x00;xuat();L8=1;delay_ms(1);L8=0;
Nhm 1 3dtvt
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
for(i=0;i<=m;i++) //t
{
temp1=0x00;temp2=0x70;temp3=0x70;temp4=0x70;temp5=0x70;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
for(i=0;i<=m;i++) //v
{
//temp1=0x00;temp2=0x80;temp3=0x80;temp4=0x80;temp5=0x80;temp6=0x80;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;temp
8=0x07;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x07;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x07;xuat();L6=1;delay_ms(1);L6=0;
Nhm 1 3dtvt
temp1=0x07;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x07;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x07;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x07;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x07;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
for(i=0;i<=m;i++) //v
{
//temp1=0x00;temp2=0x80;temp3=0x80;temp4=0x80;temp5=0x80;temp6=0x80;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x1c;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x1c;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x1c;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x1c;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x1c;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x1c;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x1c;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x1c;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x1c;temp4=0x00;temp5=0x00;temp6=0x1c;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x1c;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
for(i=0;i<=m;i++) //v
{
//temp1=0x00;temp2=0x80;temp3=0x80;temp4=0x80;temp5=0x80;temp6=0x80;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x70;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x70;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x70;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x70;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x70;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x70;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x70;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
Nhm 1 3dtvt
temp1=0x00;temp2=0x00;temp3=0x70;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x70;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
for(i=0;i<=m;i++) //t
{
temp1=0x00;temp2=0x07;temp3=0x07;temp4=0x07;temp5=0x07;temp6=0x07;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
for(i=0;i<=m;i++) //t
{
temp1=0x00;temp2=0x1c;temp3=0x1c;temp4=0x1c;temp5=0x1c;temp6=0x07;temp7=0x00;tem
p8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
Nhm 1 3dtvt
}
for(i=0;i<=m;i++) //t
{
temp1=0x00;temp2=0x70;temp3=0x70;temp4=0x70;temp5=0x70;temp6=0x70;temp7=0x00;te
mp8=0x00;xuat();L8=1;delay_ms(1);L8=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L7=1;delay_ms(1);L7=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L6=1;delay_ms(1);L6=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L5=1;delay_ms(1);L5=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L4=1;delay_ms(1);L4=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L3=1;delay_ms(1);L3=0;
temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x00;temp6=0x00;temp7=0x00;te
mp8=0x00;xuat();L2=1;delay_ms(1);L2=0;
}
}
void main(void)
{
PORTA=0x00; DDRA=0xFF;
PORTB=0x00; DDRB=0x00;
PORTC=0x00; DDRC=0x07;
PORTD=0x00; DDRD=0x00;
TCCR0=0x00; TCNT0=0x00; OCR0=0x00
TCCR1A=0x00; TCCR1B=0x00;
TCNT1H=0x00; TCNT1L=0x00;
ICR1H=0x00; ICR1L=0x00;
OCR1AH=0x00; OCR1AL=0x00;
OCR1BH=0x00; OCR1BL=0x00;
Nhm 1 3dtvt
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00; MCUCSR=0x00
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
while (1)
{ tat();
phaohoa(25);
hinhhopgoc1(30);
hinhhopgoc3(30);
hinhhopgoc2(30);
hinhhopgoc4(30);
//khung1(100,1);
danglen(100,1);
quet1(100,1);
quet2(100,1);
cheo2(20);
// khung1(100,1);
quacau(20);
hinhhoptrungtam(10);
traitim2(10,1);
Nhm 1 3dtvt
traitimdac(30);
dtvt(25);
};
}