HÃY CÙNG THẢO LUẬN-CHIA SẺ KIẾN THỨC ĐIỆN-ĐIỆN TỬ
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
HÃY CÙNG THẢO LUẬN-CHIA SẺ KIẾN THỨC ĐIỆN-ĐIỆN TỬ

Trang bị điện - điện tử - ĐHGTVT
 
Trang ChínhTrang Chính  Ebook&SoftwareEbook&Software  Latest imagesLatest images  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng Nhập  

 

 Lập trình tạo xung trong 89C51

Go down 
2 posters
Tác giảThông điệp
Admin
Admin
Admin


Tổng số bài gửi : 35
Age : 36
Registration date : 08/07/2008

Lập trình tạo xung trong 89C51 Empty
Bài gửiTiêu đề: Lập trình tạo xung trong 89C51   Lập trình tạo xung trong 89C51 EmptySun 10 Aug 2008, 1:24 pm

Bác nào có chươngt rình tạo xung trong 89C51 thì chia sẻ cho mọi người cùng tham khảo?
Về Đầu Trang Go down
http://hoiquandientu.com
hang1988
Thành Viên Tích cực
Thành Viên Tích cực
hang1988


Tổng số bài gửi : 43
Registration date : 08/07/2008

Lập trình tạo xung trong 89C51 Empty
Bài gửiTiêu đề: Re: Lập trình tạo xung trong 89C51   Lập trình tạo xung trong 89C51 EmptyThu 14 Aug 2008, 11:55 am

Cac pac tham khaoxem cai nay the nao!
void khoitaotimer0(void)// Ham khoi tao
{
EA=0;// Cam ngat toan cuc
TMOD=0x02;// Timer 0 che do 2 8 bit auto reload
TH0=0x9B;// Gia tri nap lai 155 doi ra so hex
TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex
ET0=1;// Cho phep ngat timer 0
EA=1;// Cho phep ngat toan cuc
TR0=1;// Chay timer 0 bat dau dem so chu ki may
}
* Hàm ngat:
unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10
unsigned char phantramxung;// Bien chua phan tram xung(0...10)
void timer0(void) interrupt 1 //Ngat timer 0
{
TR0=0;// Dung chay timer 0
TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day
dem++;
if(dem<phantramxung) P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra
chan, xung 5V
else P2_0=0;// Neu dem = phan tram xung
if(dem==10) dem=0;// Neu dem du 10 thi gan lai bang 0 de bat dau chu ki moi
TR0=1;// Cho chay timer
}
De có the thay doi do rong xung thì ta l
u do rong xung vào 1 biên, vì hàm
ngat không cho truyên biên vào ta khai báo biên dó là biên toàn cc de có
the gán giá tr  mi hàm.
100 uS ngat 1 lân de xác dnh d chu kì 1000 uS ta cân dêm t" 1 dên 10 ta
khai báo biên dêm.
void timer0(void) interrupt 1 //Ngat timer 0
{
TR0=0;// Dung chay timer 0
TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao day
TH0=0xAB;
TL0=0xAB;
….
TR0=1;// Cho chay timer
}
Câu trúc hàm ngat timer nào cung phi theo, do chê do 2 t% dong np li nên
kô cân gán giá tr cho TH0 và TL0.
Vê biên dem se dêm t" 1 dên 10 nêu bang 10 kêt thúc 1 chu kì 10*100
=1000 uS, ta gán li nó bang 0 de sang chu kì mi.
if(dem<phantramxung) P2_0=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra
chan, xung 5V
else P2_0=0;// Neu dem = phan tram xung
Câu lenh này kiem tra nêu dêm nh( hơn phantramxung thì se d
a ra cong
giá tr 1, bang hoac ln hơn se d
a ra giá tr 0. Khi vào ch
ơng trình chính ta
ch
viec thay doi giá tr biên phantramxung thì do rong xung se thay doi.
* Hàm main:
void main(void)
{
khoitaotimer0();
while(1)
{
phantramxung=9;
delaylong(20000);
phantramxung=4;
delaylong(20000);
}
}
Về Đầu Trang Go down
 
Lập trình tạo xung trong 89C51
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Lập trình Ngắt cho 89C51
» vdk 89c51 dùng để dk cho động cơ 1 chiều
» giúp em với. em đang làm mạch cảnh báo hồng ngoại dùng VDK 89c51
» giúp em với. em đang làm mạch cảnh báo hồng ngoại dùng VDK 89c51
» Tao xung o con 555

Permissions in this forum:Bạn không có quyền trả lời bài viết
HÃY CÙNG THẢO LUẬN-CHIA SẺ KIẾN THỨC ĐIỆN-ĐIỆN TỬ :: Vi Điều Khiển :: Vi Điều Khiển 8501-
Chuyển đến