You are on page 1of 53

vidieukhien1 /*==================bo tien xu li====================*/

Thành viên chính thức #include <AT89x51.H> // dinh kem file thu vien
#define bat 1 //dinh nghia gia tri bat den Led
#define tat 0 //dinh nghia gia tri tat den Led
Tham gia: Aug 2009 /*==================khai bao bien====================*/
Bài viết: 53 sbit Led = P1^0; // khai bao bien Led kieu bit chan P1.0
Thanks: 18 /*==================khai bao ham=====================*/
Thanked 9 Times in 7 /*------------------ham tre--------------------------*/
Posts //Ham con delay
void delay(unsigned int n)
{
unsigned int i;
for(i=0; i<n; i++){;}
}
/*--------------------ham chinh-----------------------*/
void main ()
{
while (1)

{
Led=bat; // bat Led
delay (25000);// tre 1s
Led=tat; // tat Led
delay (25000); //tre 1s
}
}
///////////////////////////////////////////////////////////
Đã sửa dịch hết lỗi rồi đó

vidieukhien1
View Public Profile
Find More Posts by vidieukhien1
20-11-09, 06:24 #892
minhtuandt Cac bác ơi em có 1 thắc mắc không biết hỏi ai. chả la . em dang lap trinh vi điều
Thành viên mới khiển bằng ngôn ngữ C, Em sử dụng IC 89C52. Em muon lập trình sao cho trong
truong trinh cua IC co san 1 chuong trinh. em lập trình thêm vào IC 1 chuong trinh
Tham gia: Dec 2007 khác mà không mất chương trình kia. Mong cac Pro chỉ giáo. Thanks.
Bài viết: 7
Thanks: 0
Thanked 3 Times in 3 Posts

minhtuandt
View Public Profile
Find More Posts by minhtuandt
Thành viên sau đây cảm trch (20-11-09)
thấy bài viết này có ích :
20-11-09, 15:53 #893
vidieukhien1 Đơn giản:
Thành viên chính thức - Bạn dùng 1 mạch nạp 89 chẳng hạn như mạch 180s bạn sao chép ct đang có trên rom vào
máy tính dưới dạng file hex, và bạn nạp ct mới vào thế là xong (ct dang có trên rom lấy ra dc
với điểu kiện người nạp ct đó ko khóa thế là ok)
Tham gia: Aug 2009
Bài viết: 53
Thanks: 18
Thanked 9 Times in 7
Posts

vidieukhien1
View Public Profile
Find More Posts by vidieukhien1
22-11-09, 10:34 #894
nhom6.cdt4 uj!!!Sao cai trang này đính file ntn nhj!!!T gửi wa mail cho nha!!!
Thành viên mới __________________
perkobo
Last edited by nhom6.cdt4; 22-11-09 at 10:52..

Tham gia: Oct 2009


Bài viết: 2
Thanks: 6
Thanked 0 Times in 0 Posts

nhom6.cdt4
View Public Profile
Find More Posts by nhom6.cdt4
23-11-09, 06:55 #895
doireuphong gui vidieukhien1 : chuong trinh ban viet thieu dau ; tum lum , toi viet lai jum ban
Thành viên mới day :
#include<AT89x51.h> // Dinh kem file thu vien
Tham gia: Oct 2009 #define bat 1 // Dinh nghia gia tri bat den Led
Bài viết: 6 #define tat 0 // Dinh nghia gia tri tat den Led
Thanks: 2 /*==================khai bao bien==================*/
Thanked 0 Times in 0 Posts sbit Led = P1^0; // Khai bao bien Led kieu bit chan P1.0

/*================= Khai bao hàm==================*/


/*------------------------------ham tre -------------------------------------*/
void delay(long time)
{
while(time--);
}
/*--------------------------------ham chinh--------------------------------*/
void main(void)
{
while(1)
{
Led = bat; // bat Led
delay(25000); // tre 1s
Led = tat; // tat Led
delay(25000); //tre 1s
}
}

doireuphong
View Public Profile
Find More Posts by doireuphong
23-11-09, 16:31 #896
ptung1083 Giúp minh với: ATTINY2313V-10PU
Thành viên mới Minh ko phải dân Điện tử chuyên nghiệp nhưng rất thích các mạch điện tử ứng dụng

Tham gia: May 2008 minh có một con vxl: ATTINY2313V-10PU ma ko biết nó viết gì bên trong. mình
Bài viết: 13 muốn đọc Nội dung lập trình đó. hoặc chép nội dung sang con vxl khác thì dùng
Thanks: 1 mạch nạp nào mới đc?
Thanked 0 Times in 0 Posts
Ai có thể giúp mình ko? Hoặc ai bán mạch nạp cho mình, có thể hướng dãn thao tác
cho mình dc ko? Mong các tiền bối tận tâm giúp đỡ. Tks!
__________________
***Air Traffic Controller
Civil Aviation of Vietnam

ptung1083
View Public Profile
Find More Posts by ptung1083
23-11-09, 16:34 #897
ptung1083 Ai Giúp mình với: ATTINY2313V-10PU
Thành viên mới Minh ko phải dân Điện tử chuyên nghiệp nhưng rất thích các mạch điện tử ứng dụng

Tham gia: May 2008 minh có một con vxl: ATTINY2313V-10PU ma ko biết nó viết gì bên trong. mình
Bài viết: 13 muốn đọc Nội dung lập trình đó. hoặc chép nội dung sang con vxl khác thì dùng mạch
Thanks: 1 nạp nào mới đc?
Thanked 0 Times in 0 Posts
Ai có thể giúp mình ko? Hoặc ai bán mạch nạp cho mình, có thể hướng dãn thao tác
cho mình dc ko? Mong các tiền bối tận tâm giúp đỡ. Cảm ơn!
__________________
***Air Traffic Controller
Civil Aviation of Vietnam
ptung1083
View Public Profile
Find More Posts by ptung1083
25-11-09, 21:51 #898
luckyle248 R0bocon
Thành viên mới cho mình xin một số code về Robo với!!!

Tham gia: Nov 2009


Bài viết: 1
Thanks: 0
Thanked 0 Times in 0 Posts

luckyle248
View Public Profile
Find More Posts by luckyle248
Hôm qua, 21:11 #899
nguyhiem103 mình có bài tập nháy led đơn giản cho người mới
Thành viên mới #include <REGX51.H>
//******************1 diem sang phai sang trai****************
Tham gia: Jun 2008 void motdiemsPsT()
Bài viết: 2 {
Thanks: 0 unsigned m=0x01;
Thanked 0 Times in 0 Posts unsigned k=128;
int tre(int),n,p;
P2=0;
P1=0;
for(n=0;n<=7;n++)
{
P0=m ;tre(50);
m<<=1;
}
P0_7=0;
for(p=0;p<=7;p++)
{
P2=k ;tre(50);
k>>=1;
}
}

//*******************1 diem sang trai sang phai*****************


void motdiemsTsP()
{ unsigned k=0x01;
unsigned m=128;
int tre(int),n,p;
P2=0;
P1=0;
for(n=0;n<=7;n++)
{
P2=k;tre(50);
k<<=1; }
P2_7=0;
for (p=0;p<=7;p++)
{
P0=m;tre(50);
m>>=1; }
}
//*************tat dan tu phai sang trai***********
void tatdanPsT()
{ int i,m=254;
P2=255;
P1=255;
for(i=0;i<=7;i++)
{ P0=m;
tre(50);
m<<=1; }
m=127;
for(i=0;i<=7;i++)
{
P2=m;
tre(50);
m>>=1; }
}
///****************sang dan phai sang trai****************
void sangdanPsT()
{
int i;
int mang1[8]={1,3,7,15,31,63,127, 255};
int mang2[8]={128,192,224,240,248,252,254,255};
P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P0=mang1[i];
tre(50); }
for(i=0;i<=7;i++)
{
P2=mang2[i];
tre(50); }
}
///****************sang dan trai sang phai****************
void sangdanTsP()
{
int i;
int mang1[8]={1,3,7,15,31,63,127, 255};
int mang2[8]={128,192,224,240,248,252,254,255};
P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P2=mang1[i];
tre(50); }
for(i=0;i<=7;i++)
{
P0=mang2[i];
tre(50); }
}
//**********************sang ngoai vao giua********************
void sdvaogiua()
{ int i;
int mang1[8]={1,3,7,15,31,63,127, 255};

P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P2=P0=mang1[i];
tre(50); }
}
//*****************tat giua ra ngoai ******************
void tatgiuara()
{
int i,n=127;
P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P2=P0=n;
tre(50);
n>>=1; }
}

//*************2 diem sang tu giua ra******************


void haidiemsGrN()
{

int i,n=1;
for(i=0;i<=7;i++)
{ P0=n;
P2=n;
tre(50);
n<<=1; }
}
//*************2 diem sang tu ngoaivao giua******************
void haidiemsNvG()
{
int i,n=128;
for(i=0;i<=7;i++)
{ P0=n;
P2=n;
tre(50);
n>>=1; }
}

//*************sang chan tu phai sang trai******************


void sangchanPsT()
{
int i,chan1[4]={1,5,21,85},chan2[4]={128,160,168,170};
P2=0;
P0=0;
for(i=0;i<=3;i++)
{ P0=chan1[i];
tre(50);
}
for(i=0;i<=3;i++)
{ P2=chan2[i];
tre(50);
}
}
//*************sang le tu trai sang phai******************
void sangleTsP()
{
int i,le1[4]={171,175,191,255},le2[4]={213,245,253,255};

for(i=0;i<=3;i++)
{
P2=le1[i];
tre(50);
}

for(i=0;i<=3;i++)
{
P0=le2[i];
tre(50);
}
}

//********* Ham tre ****************


int tre(int x)
{
int i,j;
for(i=0;i<=x;i++)
for(j=0;j<=500;j++)
{}
}

//*********hamchinh**************
void main()
{
while(1)
{
tre(50) ;
sangchanPsT();tre(50);
sangleTsP() ;tre(50);
haidiemsGrN();tre(50);
haidiemsNvG();tre(50);
sdvaogiua();tre(50);
tatgiuara();tre(50);
motdiemsPsT();tre(50);
sangdanTsP();tre(50);
tatdanPsT();tre(50);
motdiemsTsP(); tre(50);
sangdanPsT();tre(50);

}
}

nguyhiem103
View Public Profile
Find More Posts by nguyhiem103
Hôm qua, 21:18 #900
nguyhiem103 3. Một ví dụ hoàn thiện về lập trình C cho 8051
Thành viên mới #include<AT89X52.h>
#include<stdio.h>
Tham gia: Jun 2008 #define strai3 P0_7
Bài viết: 2 #define strai2 P0_6
Thanks: 0 #define strai1 P0_5
Thanked 0 Times in 0 Posts #define strai0 P0_4
#define sphai0 P0_3
#define sphai1 P0_2
#define sphai2 P0_1
#define sphai3 P0_0
//////////////////////////
#define mtraif P1_0
#define mtraib P1_1
#define mphaif P1_2
#define mphaib P1_3
#define dc1f P1_6
#define dc1b P1_7
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
#define dc2f P1_4
#define dc2b P1_5
//////////////////////////
#define f_an0 P2_0
#define f_an1 P2_1
#define f_an2 P2_2
#define f_an3 P2_3
//////////////////////////
#define dc3f P2_4
#define dc3b P2_5
//////////////////////////
#define start P3_6
#define ctht1_batdau P3_1
#define ctht2_ketthuc P3_2
#define ctht3 P3_3
#define ctht4 P3_4
#define ctht5 P3_5
#define ctht6 P3_6
//////////////////////////
#define tien 1
#define lui 0
//////////////////////////
#define v_cham_trai 50
#define v_cham_phai 50
#define delta_v_cham_trai 20
#define delta_v_cham_phai 20
#define v_nhanh_trai 100
#define v_nhanh_phai 100
#define v_quay_trai 40
#define v_quay_phai 60
////////////////////////
//vach trang sensor=1 vach xanh sensor=0
int t=0,i=0,j=0,k=0;
int vtrai=100,vphai=100;
int PWMC=0;
int dem=0;
int dirtrai=tien,dirphai=tien;
int phuongan=0;
///////////////////////////
void dithang(int v_left,int v_right);
void dithangcham(int v_left,int v_right);
void stop(void);
void quayphai(void);
void quaytrai(void);
void ragach(void);
void pwm(void) interrupt 1 ;
void khoitao(void);
void hanhtrinh(void);
void ham(int time,int trai,int phai);
void ham2(void);
//========================================
void main(void)
{
khoitao();
khoidongthang();
hanhtrinh();
ragach();
stop();
}
//==========================================
void khoitao(void)
{
TMOD=0x02;
TH0=0xE1; TR0=1; IE=0x82;
P1=0x00;P2=0x00;P3=0x00;
while(!start) stop();
}
//==========================================
void khoidongthang(void)
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
{
for(i=0;i<300;i++)
{
dirtrai=tien;dirphai=tien;
vtrai=40; vphai=40;
}
}
//==========================================
void khoidongquay(void)
{
dirtrai=tien;dirphai=tien;
vtrai=90; vphai=80;
for(i=1;i<=50;i++);
vtrai=52; vphai=40;
for(i=1;i<=580;i++);
ham(90,20,20);
do
{
dirtrai=tien;dirphai=lui;
vtrai=33;vphai=10;
}
while(!strai3);
for(i=1;i<=40;i++)
{
dirtrai=tien;dirphai=lui;
vtrai=33; vphai=9;
}
do
{
dirtrai=lui;dirphai=tien;
vtrai=15;vphai=32;
}
while(!strai0);
ham(100,20,20);
dirtrai=tien;dirphai=tien;
}
//==========================================
void quayphai(void)
{
int ktra=0;
dirtrai=tien;dirphai=lui;
do
{
vtrai= v_quay_trai;vphai= v_quay_phai;
if (sphai3) ktra++;
}
while(ktra<20);
stop();
for(i=1;i<1000;i++){};
dirtrai=tien; dirphai=tien;
}
////////////////////////////////////
void quaytrai(void)
{
int ktra=0;
dirtrai=lui;dirphai=tien;
do
{
vtrai= 60; vphai= 40;
if (strai3)ktra++;
}
while(ktra<20);
stop();
for(i=1;i<1000;i++){};
dirtrai=tien; dirphai=tien;
}
//+++++++++++++++++++++++++++++++++++++
//vach trang sensor=1 vach xanh sensor=0
void stop(void)
{
vtrai=0; vphai=0;
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
}
//==================================================
=====================================
void dithang(int v_left,int v_right)
{
if(!(strai0||strai1||strai2||strai3||sphai0||sphai 1||sphai2||sphai3)) // di thang
{
dirphai=tien;dirtrai=tien;
vtrai=v_left;vphai=v_right;
}
else
if((strai0&&strai1&&sphai0&&sphai1))
{ j=0;
for(i=1;i<=15;i++)
if((strai0&&strai1&&sphai0&&sphai1)) j++;
if(j>=10) { dem=dem+1;t=1 ;}
else t=0;
while(t)//cho qua vach trang
{
{ //di thang
dirphai=tien;dirtrai=tien;
vtrai=40;vphai=40;
}
k=0;
for(i=1;i<=20;i++)
if(!(strai3||strai2||sphai3||sphai2)) k++;
if(k>15) t=0;
}
}
else if ((sphai2||sphai3)) //re phai lon
{
dirtrai=tien;dirphai=tien;
vtrai=60;vphai=0;}
else if ((strai0||strai1))
//retrainho
{
dirtrai=lui;dirphai=tien;
vtrai=1;vphai=60;
}
else if ((sphai0||sphai1))
//rephainho
{
dirtrai=tien;dirphai=lui;
vtrai=60;vphai=1;
}
else if ((strai2||strai3))
//re trai lon
{
dirtrai=tien;dirphai=tien;
vtrai=0;vphai=60;}
}
////////////////////////////
void ragach(void)
{
while(!ctht2_ketthuc)
{
dirtrai=tien;dirphai=tien;
vtrai=25;vphai=25;
dc1f=1;dc1b=0;
}
dc1f=0;dc1b=0;
//---------------------------------------
for(t=1;t<=5;t++)
{
for(i=1;i<=10000;i++){
dirtrai=tien;dirphai=tien;
vtrai=25;vphai=25;}
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
for(i=1;i<=10000;i++){
dirtrai=lui;dirphai=lui;
vtrai=0;vphai=0;}
}
//-------------------------
dirtrai=lui;dirphai=lui;
vtrai=25;vphai=25;
for(i=1;i<=2000;i++);
}
//////////////////////////
void pwm(void) interrupt 1
{
PWMC++;
if(PWMC==100) PWMC=0;
if(PWMC<vtrai)
{
mtraif=dirtrai;
mtraib=!dirtrai;
}
else
{
mtraif=0;
mtraib=0;
}
if(PWMC<vphai)
{
mphaif=dirphai;
mphaib=!dirphai;
}
else
{
mphaif=0;
mphaib=0;
}
}
void ham(int time,int trai,int phai)
{
int g;
for(g=0;g<=time;g++)
{
vphai=phai;vtrai=trai;
dirtrai=tien;dirphai=tien;
dirtrai=lui;dirphai=lui;
}
dirtrai=tien;dirphai=tien;
vphai=0;vtrai=0;
}
Chúc các bạn học lập trình C cho vi xử lý thật nhanh nhé . Đọc phần lý thuyết cơ
bản
sau đó đọc bài ví dụ cuối cùng .
Nếu bạn còn gì chưa hiểu , hãy post lên để nhóm vagam giúp các bạn .
Thân
Lê Ngọc Tuấn – giotdang1985@yahoo.com
mình thấy bài nay của bạn tuấn đang từ lâu lắm rồi ở mấy trang đầu

em cocai1 code như thế này


Trích:
;*************************************************
************************************************
;**************/////--- 8 LED SANG LAN LUOT- CACH DON GIAN ---\\\\\\**************
;**----------------------------------------------------------------------------------------------------------------------
;**////////////////___ led sang lan luot tu led 1 den led 8___________\\\\\\\\\\\\\\\\\\\\\\\\\\\
;**///////////////___ sang o muc 1 va tat o muc 0__________________\\\\\\\\\\\\\\\\\\\\\\\\\
;**//////////////____ lap di lap lai khong gioi han____________________\\\\\\\\\\\\\\\\\\\\\
;**<<<<<<<<<<<<<<<<<<<----------------------------------------------------->>>>>>>>>>>>>>
;** \\\\\\\\\\\\------- nap gia tr? cho tung trang thai ------------------------------////////////////
;*************************************************
************************************************** **
;*************************************************
************************************************** **
ORG 000H ; khai bao dia chi de bat dau chuong trinh tren Rom

Mov P0,#0 ;===>>>> |||


Mov P1,#0 ;===>>>> ||| cac led deu tat
Mov P2,#0 ;===>>>> |||
Mov P3,#0 ;===>>>> |||
LCall Delay ;===>>>>goi chuong trinh con Delay
Xuat: ;**>>>>>>>>>>>>>>>>>>> lam led P0 sang <<<<<<<<<<<<<<<<<<<<<<<<<<
Mov P0,#00000001B ;===>>>> lam led 1 sang
LCall Delay ;===>>>>goi chuong trinh con Delay
Mov P0,#00000010B ;===>>>> lam led 2 sang
LCall Delay
Mov P0,#00000100B ;===>>>> lam led 3 sang
LCall Delay
Mov P0,#00001000B ;===>>>> lam led 4 sang
LCall Delay
Mov P0,#00010000B ;===>>>> lam led 5 sang
LCall Delay
Mov P0,#00100000B ;===>>>> lam led 6 sang
LCall Delay
Mov P0,#01000000B ;===>>>> lam led 7 sang
LCall Delay
Mov P0,#10000000B ;===>>>> lam led 8 sang
LCall Delay
;**>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>lam led P0 sang <<<<<<<<<<<<<<<<<<<
Mov P0,#00000000B ;===>>>> lam P0 tat
Mov P0,#00000001B ;===>>>> lam led 1 sang
LCall Delay
Mov P0,#00000011B ;===>>>> lam led 2 sang
LCall Delay
Mov P0,#00000111B ;===>>>> lam led 3 sang
LCall Delay
Mov P0,#00001111B ;===>>>> lam led 4 sang
LCall Delay
Mov P0,#00011111B ;===>>>> lam led 5 sang
LCall Delay
Mov P0,#00111111B ;===>>>> lam led 6 sang
LCall Delay
Mov P0,#01111111B ;===>>>> lam led 7 sang
LCall Delay
Mov P0,#11111111B ;===>>>> lam led 8 sang
LCall Delay
Mov P0,#01111111B ;===>>>> lam led 8 tat
LCall Delay
Mov P0,#00111111B ;===>>>> lam led 7 tat
LCall Delay
Mov P0,#00011111B ;===>>>> lam led 6 tat
LCall Delay
Mov P0,#00001111B ;===>>>> lam led 5 tat
LCall Delay
Mov P0,#00000111B ;===>>>> lam led 4 tat
LCall Delay
Mov P0,#00000011B ;===>>>> lam led 3 tat
LCall Delay
Mov P0,#00000001B ;===>>>> lam led 2 tat
LCall Delay
;**>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> lam led P2 sang <<<<<<<<<<<<<<<<<<
Mov P0,#00000000B ;===>>>> lam P0 tat
Mov P2,#00000001B ;===>>>> lam led 1 sang
LCall Delay
Mov P2,#00000010B ;===>>>> lam led 2 sang
LCall Delay
Mov P2,#00000100B ;===>>>> lam led 3 sang
LCall Delay
Mov P2,#00001000B ;===>>>> lam led 4 sang
LCall Delay
Mov P2,#00010000B ;===>>>> lam led 5 sang
LCall Delay
Mov P2,#00100000B ;===>>>> lam led 6 sang
LCall Delay
Mov P2,#01000000B ;===>>>> lam led 7 sang
LCall Delay
Mov P2,#10000000B ;===>>>> lam led 8 sang
LCall Delay
Mov P2,#01000000B ;===>>>> lam led 8 tat
LCall Delay
Mov P2,#00100000B ;===>>>> lam led 7 tat
LCall Delay
Mov P2,#00010000B ;===>>>> lam led 6 tat
LCall Delay
Mov P2,#00001000B ;===>>>> lam led 5 tat
LCall Delay
Mov P2,#00000100B ;===>>>> lam led 4 tat
LCall Delay
Mov P2,#00000010B ;===>>>> lam led 3 tat
LCall Delay
Mov P2,#00000001B ;===>>>> lam led 2 tat
LCall Delay
;**>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>lam led P2 sang <<<<<<<<<<<<<<<<<<<
Mov P2,#00000000B ;===>>>> lam P2 tat
Mov P2,#01010101B ;===>>>> lam led nhay qua
LCall Delay
Mov P2,#10101010B ;===>>>> lam led nhay lai
LCall Delay
Mov P2,#01010101B ;===>>>> lam led nhay qua
LCall Delay
Mov P2,#00000001B ;===>>>> lam led 1 sang
LCall Delay
Mov P2,#00000010B ;===>>>> lam led 2 sang
LCall Delay
Mov P2,#00000100B ;===>>>> lam led 3 sang
LCall Delay
Mov P2,#00001000B ;===>>>> lam led 4 sang
LCall Delay
Mov P2,#00010000B ;===>>>> lam led 5 sang
LCall Delay
Mov P2,#00100000B ;===>>>> lam led 6 sang
LCall Delay
Mov P2,#01000000B ;===>>>> lam led 7 sang
LCall Delay
Mov P2,#10000000B ;===>>>> lam led 8 sang
LCall Delay
Mov P2,#10000001B ;===>>>> lam led 8 va 1 sang
LCall Delay
Mov P2,#10000010B ;===>>>> lam led 8 va 2 sang
LCall Delay
Mov P2,#10000100B ;===>>>> lam led 8 va 3 sang
LCall Delay
Mov P2,#10001000B ;===>>>> lam led 8 va 4 sang
LCall Delay
Mov P2,#10010000B ;===>>>> lam led 5 sang
LCall Delay
Mov P2,#10100000B ;===>>>> lam led 5 sang
LCall Delay
Mov P2,#110000000B ;===>>>> lam led 5 sang
LCall Delay
Mov P2,#00000000B ;===>>>> lam led P2 tat
;***----------------------------------------
Ljmp Xuat ; ===>>>> nhay ve thuc hien tu dau

;**>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> delay <<<<<<<<<<<<<<<<<<<<<<<<<<<<

Delay:
Mov R7,#0FFH ;===>>>> gan R7=#0FFH, 1 chu ki may
Kt2: Mov R6,#0FFH ;===>>>> gan R6=#0FFH, 1 chu ki may
Kt1: Djnz R6,Kt1 ;===>>>> giam R6 xuong 1, R6 khac 0-> giam tiep
Djnz R7,Kt2 ;===>>>> giam R7 xuong 1, R6 khac 0-> ve Kt2
Ret ;===>>>> ket thuc chuong trinh con
;_________________________________________________ ________________________________
End ;===>>>> ket thuc chuong trinh
ko hỉu sao nạp vào chip 1 mà nó nháy nhanh đến nỗi thấy giật giật
có ai bit thi chỉ em cách làm cho nó chạy chậm lại dc ko
__________________
em đến diễn đàn với tinh thần học hỏi giao lưu là chính mong nhận đc sự giúp đỡ của mọi người
liên lạc với em qua địa chi email: FORCEMAN_SUSAN@YAHOO.COM hoặc yahoo:
FORCEMAN_SUSAN

hoangphat
View Public Profile
Find More Posts by hoangphat
26-03-09, 10:23 #702
vunguyen88 Trích:
Thành viên mới
Nguyên văn bởi daominhchien
Tôi vào xem thử mà lằng nhằng ko mở xem đc, bạn hướng dẫn kỹ hơn chút
không vào được rồi bạn ơi.
bạn up lại lên được không ạ?
cảm ơn nhé!

Tham gia: Feb 2008


Nơi Cư Ngụ: BKHN
Bài viết: 20
Thanks: 51
Thanked 2 Times in 2 Posts

vunguyen88
View Public Profile
Find More Posts by vunguyen88
Thành viên sau đây cảm thấy daominhchien (09-04-09)
bài viết này có ích :
26-03-09, 10:51 #703
hai_abc Trích:
Thành viên tích cực
ko hỉu sao nạp vào chip 1 mà nó nháy nhanh đến nỗi thấy giật giật
có ai bit thi chỉ em cách làm cho nó chạy chậm lại dc ko
Bạn thử tăng thời gian trễ trong hàm Delay nhiều hơn nữa, thay đổi giá trị R5 -> ở đây thời
gian nháy sẽ giảm đi 5 lần so với ban đầu.

Delay:
Tham gia: Jan 2008 Mov R5,#005H
Bài viết: 170 Kt3: Mov R7,#0FFH ;===>>>> gan R7=#0FFH, 1 chu ki may
Thanks: 10 Kt2: Mov R6,#0FFH ;===>>>> gan R6=#0FFH, 1 chu ki may
Thanked 50 Times in 43 Kt1: Djnz R6,Kt1 ;===>>>> giam R6 xuong 1, R6 khac 0-> giam tiep
Posts Djnz R7,Kt2 ;===>>>> giam R7 xuong 1, R6 khac 0-> ve Kt2
Djnz R5,Kt3
__________________
----------------------
Bể học là mênh mông!

hai_abc
View Public Profile
Find More Posts by hai_abc
26-03-09, 12:58 #704
peterhuynhha giúp mình với (viết bằng chương trình keil)
Thành viên mới Vẽ sơ đồ phần cứng và viết chương trình đồng hồ điện tử trên LCD16x2 có chức năng
chính như sau:
- Về phần cứng: một LCD 16x2
- Chương trình:
o Line 1 của LCD hiển thị : “Digital clock”
o Line 2 của LCD hiển thị : HH:MM:SS
Last edited by peterhuynhha; 26-03-09 at 13:06..

Tham gia: Mar 2009


Bài viết: 2
Thanks: 0
Thanked 0 Times in 0
Posts

peterhuynhha
View Public Profile
Find More Posts by peterhuynhha
26-03-09, 13:20 #705
hai_abc Trích:
Thành viên tích cực
Vẽ sơ đồ phần cứng và viết chương trình đồng hồ điện tử trên LCD16x2 có chức
năng chính như sau:
- Về phần cứng: một LCD 16x2
- Chương trình:
o Line 1 của LCD hiển thị : “Digital clock”
o Line 2 của LCD hiển thị : HH:MM:SS
Tham gia: Jan 2008 Bác sử dụng tính năng tìm kiếm của diễn đàn để tìm, những bài về yêu cầu của bác
Bài viết: 170 đều có hết đấy!
Thanks: 10 __________________
Thanked 50 Times in 43 Posts ----------------------
Bể học là mênh mông!

hai_abc
View Public Profile
Find More Posts by hai_abc
26-03-09, 16:46 #706
trch Trích:
Thành viên tích cực
Nguyên văn bởi hoangphat
em cocai1 code như thế này

ko hỉu sao nạp vào chip 1 mà nó nháy nhanh đến nỗi thấy giật giật
có ai bit thi chỉ em cách làm cho nó chạy chậm lại dc ko
chương trình delay của bạn thực chất không có sai gì hết. Nếu mình nhớ ko lầm thì nó
delay hơn 1s cho nên bạn nói nó nháy nháy liên tục thì có lẽ bạn nên coi lại phần
cứng.kiểm tra thạch anh bạn dùng bao nhiêu Mhz.chúc bạn thành công.

Tham gia: Aug 2007


Bài viết: 155
Thanks: 65
Thanked 23 Times in 20
Posts

trch
View Public
Profile
Find More
Posts by trch
27-03-09,
#707
13:00
hoangphat vâng cảm ơn các pác trch đã chỉ giáo em làm dc rồi thanks
Thành viên Trích:
chính thức
Bạn thử tăng thời gian trễ trong hàm Delay nhiều hơn nữa, thay đổi giá trị R5 -> ở đây thời gian
nháy sẽ giảm đi 5 lần so với ban đầu.

Delay:
Mov R5,#005H
Kt3: Mov R7,#0FFH ;===>>>> gan R7=#0FFH, 1 chu ki may
Kt2: Mov R6,#0FFH ;===>>>> gan R6=#0FFH, 1 chu ki may
Tham gia: Mar Kt1: Djnz R6,Kt1 ;===>>>> giam R6 xuong 1, R6 khac 0-> giam tiep
2009 Djnz R7,Kt2 ;===>>>> giam R7 xuong 1, R6 khac 0-> ve Kt2
Nơi Cư Ngụ: Djnz R5,Kt3
114/7 Lý cảm ơn pác đã chỉ giáo em se thử .hi vong sẽ nhận dc nhìu sư chỉ giáo của pác hai_abc
Thường Kiệt- __________________
Bà Rịa-Vũng em đến diễn đàn với tinh thần học hỏi giao lưu là chính mong nhận đc sự giúp đỡ của mọi người
Tàu liên lạc với em qua địa chi email: FORCEMAN_SUSAN@YAHOO.COM hoặc yahoo:
Bài viết: 94 FORCEMAN_SUSAN
Thanks: 5
Thanked 0
Times in 0
Posts

hoangphat
View Public Profile
Find More Posts by hoangphat
28-03-09, 09:48 #708
demon52
Thành viên mới em mới tập tọe với Vdk bằng ngôn ngữ C! em đang làm cái mạch chạy chữ trên led
matran 8x8! viết xong lập trình tưởng chạy ngon ai dè nó báo lỗi! nó báo
lệnh ">>" sai! Hình như là do thư viện reg51.h ko hỗ trợ! anh nào có thể cho em biết
muốn dùng lệnh đó cần khai báo thêm thư viện nào không ạ?
__________________
NGU=Never Give Up

Tham gia: Mar 2009


Bài viết: 28
Thanks: 15
Thanked 6 Times in 5 Posts

demon52
View Public Profile
Visit demon52's homepage!
Find More Posts by demon52
28-03-09, 10:20 #709
hai_abc thư viện reg51.h chỉ chứa định nghĩa các thanh ghi cho 8051 thôi, không liên quan đến
Thành viên tích cực tập lệnh.

Tập lệnh do trình dịch quy định. Bạn dùng trình dịch gì, có thể đưa code chi tiết lên để
mọi người xem sai ở đâu.

Lệnh >> đều có ở các trình dịch, nên chắc bạn sai ở chỗ khác thôi!
__________________
Tham gia: Jan 2008 ----------------------
Bài viết: 170 Bể học là mênh mông!
Thanks: 10
Thanked 50 Times in 43
Posts

hai_abc
View Public Profile
Find More Posts by hai_abc
02-04-09, 15:03 #710
hero8x các xsu huynh em bi lỗi như này thi là tại sao?
Thành viên chính thức Build target 'Target 1'
compiling 456.c...
456.C(9): error C141: syntax error near ')'
Target not created
------------------------------------------------------------------------------------
#include<regx51.h>
#define led P1_0
void delay(unsigned int ms)
{
unsigned int i;
unsigned char j;
for(i=0;i<ms;i++)
for(j=0;j<120;j++)
()
}
Tham gia: Nov 2007
Nơi Cư Ngụ: X5-vũ bình-Kiến Xương-Thái
main()
Bình
{
Bài viết: 70
While(1)
Thanks: 15
{
Thanked 3 Times in 3 Posts
led=0;
delay(1000);
led=1;
delay(1000);
}
}

---
==================================================
===========
cảm ơn các bác nhé các bac giúp em nhanh nhé!!!!!!!!!!111
/*==================bo tien xu
li====================*/
#include <AT89x51.H> // dinh kem file thu vien
#define bat 1 //dinh nghia gia tri bat den Led
#define tat 0 //dinh nghia gia tri tat den Led
/*==================khai bao
bien====================*/
sbit Led = P1^0; // khai bao bien Led kieu bit
chan P1.0
/*==================khai bao
ham=====================*/
/*------------------ham tre--------------------------*/
//Ham con delay
void delay(unsigned int n)
{
unsigned int i;
for(i=0; i<n; i++){;}
}
/*--------------------ham chinh-----------------------
*/
void main ()
{
while (1)

{
Led=bat; // bat Led
delay (25000);// tre 1s
Led=tat; // tat Led
delay (25000); //tre 1s
}
}
///////////////////////////////////////////////////////////
Đã sửa dịch hết lỗi rồi đó

vidieukhien1
View Public Profile
Find More Posts by vidieukhien1
20-11-09, 06:24 #892
minhtuandt Cac bác ơi em có 1 thắc mắc không biết hỏi ai. chả la . em dang lap trinh vi điều
Thành viên mới khiển bằng ngôn ngữ C, Em sử dụng IC 89C52. Em muon lập trình sao cho trong
truong trinh cua IC co san 1 chuong trinh. em lập trình thêm vào IC 1 chuong trinh
Tham gia: Dec 2007 khác mà không mất chương trình kia. Mong cac Pro chỉ giáo. Thanks.
Bài viết: 7
Thanks: 0
Thanked 3 Times in 3 Posts

minhtuandt
View Public Profile
Find More Posts by minhtuandt
Thành viên sau đây cảm trch (20-11-09)
thấy bài viết này có ích :
20-11-09, 15:53 #893
vidieukhien1 Đơn giản:
Thành viên chính thức - Bạn dùng 1 mạch nạp 89 chẳng hạn như mạch 180s bạn sao chép ct đang có trên rom vào
máy tính dưới dạng file hex, và bạn nạp ct mới vào thế là xong (ct dang có trên rom lấy ra dc
với điểu kiện người nạp ct đó ko khóa thế là ok)
Tham gia: Aug 2009
Bài viết: 53
Thanks: 18
Thanked 9 Times in 7
Posts

vidieukhien1
View Public Profile
Find More Posts by vidieukhien1
22-11-09, 10:34 #894
nhom6.cdt4 uj!!!Sao cai trang này đính file ntn nhj!!!T gửi wa mail cho nha!!!
Thành viên mới __________________
perkobo
Last edited by nhom6.cdt4; 22-11-09 at 10:52..
Tham gia: Oct 2009
Bài viết: 2
Thanks: 6
Thanked 0 Times in 0 Posts

nhom6.cdt4
View Public Profile
Find More Posts by nhom6.cdt4
23-11-09, 06:55 #895
doireuphong gui vidieukhien1 : chuong trinh ban viet thieu dau ; tum lum , toi viet lai jum ban
Thành viên mới day :
#include<AT89x51.h> // Dinh kem file thu vien
Tham gia: Oct 2009 #define bat 1 // Dinh nghia gia tri bat den Led
Bài viết: 6 #define tat 0 // Dinh nghia gia tri tat den Led
Thanks: 2 /*==================khai bao bien==================*/
Thanked 0 Times in 0 Posts sbit Led = P1^0; // Khai bao bien Led kieu bit chan P1.0

/*================= Khai bao hàm==================*/


/*------------------------------ham tre -------------------------------------*/
void delay(long time)
{
while(time--);
}
/*--------------------------------ham chinh--------------------------------*/
void main(void)
{
while(1)
{
Led = bat; // bat Led
delay(25000); // tre 1s
Led = tat; // tat Led
delay(25000); //tre 1s
}
}

doireuphong
View Public Profile
Find More Posts by doireuphong
23-11-09, 16:31 #896
ptung1083 Giúp minh với: ATTINY2313V-10PU
Thành viên mới Minh ko phải dân Điện tử chuyên nghiệp nhưng rất thích các mạch điện tử ứng dụng

Tham gia: May 2008 minh có một con vxl: ATTINY2313V-10PU ma ko biết nó viết gì bên trong. mình
Bài viết: 13 muốn đọc Nội dung lập trình đó. hoặc chép nội dung sang con vxl khác thì dùng
Thanks: 1 mạch nạp nào mới đc?
Thanked 0 Times in 0 Posts
Ai có thể giúp mình ko? Hoặc ai bán mạch nạp cho mình, có thể hướng dãn thao tác
cho mình dc ko? Mong các tiền bối tận tâm giúp đỡ. Tks!
__________________
***Air Traffic Controller
Civil Aviation of Vietnam

ptung1083
View Public Profile
Find More Posts by ptung1083
23-11-09, 16:34 #897
ptung1083 Ai Giúp mình với: ATTINY2313V-10PU
Thành viên mới Minh ko phải dân Điện tử chuyên nghiệp nhưng rất thích các mạch điện tử ứng dụng

Tham gia: May 2008 minh có một con vxl: ATTINY2313V-10PU ma ko biết nó viết gì bên trong. mình
Bài viết: 13 muốn đọc Nội dung lập trình đó. hoặc chép nội dung sang con vxl khác thì dùng mạch
Thanks: 1 nạp nào mới đc?
Thanked 0 Times in 0 Posts
Ai có thể giúp mình ko? Hoặc ai bán mạch nạp cho mình, có thể hướng dãn thao tác
cho mình dc ko? Mong các tiền bối tận tâm giúp đỡ. Cảm ơn!
__________________
***Air Traffic Controller
Civil Aviation of Vietnam

ptung1083
View Public Profile
Find More Posts by ptung1083
25-11-09, 21:51 #898
luckyle248 R0bocon
Thành viên mới cho mình xin một số code về Robo với!!!

Tham gia: Nov 2009


Bài viết: 1
Thanks: 0
Thanked 0 Times in 0 Posts

luckyle248
View Public Profile
Find More Posts by luckyle248
Hôm qua, 21:11 #899
nguyhiem103 mình có bài tập nháy led đơn giản cho người mới
Thành viên mới #include <REGX51.H>
//******************1 diem sang phai sang trai****************
Tham gia: Jun 2008 void motdiemsPsT()
Bài viết: 2 {
Thanks: 0 unsigned m=0x01;
Thanked 0 Times in 0 Posts unsigned k=128;
int tre(int),n,p;
P2=0;
P1=0;
for(n=0;n<=7;n++)
{
P0=m ;tre(50);
m<<=1;
}
P0_7=0;
for(p=0;p<=7;p++)
{
P2=k ;tre(50);
k>>=1;
}
}

//*******************1 diem sang trai sang phai*****************


void motdiemsTsP()
{ unsigned k=0x01;
unsigned m=128;
int tre(int),n,p;
P2=0;
P1=0;
for(n=0;n<=7;n++)
{
P2=k;tre(50);
k<<=1; }
P2_7=0;
for (p=0;p<=7;p++)
{
P0=m;tre(50);
m>>=1; }
}
//*************tat dan tu phai sang trai***********
void tatdanPsT()
{ int i,m=254;
P2=255;
P1=255;
for(i=0;i<=7;i++)
{ P0=m;
tre(50);
m<<=1; }
m=127;
for(i=0;i<=7;i++)
{
P2=m;
tre(50);
m>>=1; }
}
///****************sang dan phai sang trai****************
void sangdanPsT()
{
int i;
int mang1[8]={1,3,7,15,31,63,127, 255};
int mang2[8]={128,192,224,240,248,252,254,255};
P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P0=mang1[i];
tre(50); }
for(i=0;i<=7;i++)
{
P2=mang2[i];
tre(50); }
}
///****************sang dan trai sang phai****************
void sangdanTsP()
{
int i;
int mang1[8]={1,3,7,15,31,63,127, 255};
int mang2[8]={128,192,224,240,248,252,254,255};
P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P2=mang1[i];
tre(50); }
for(i=0;i<=7;i++)
{
P0=mang2[i];
tre(50); }
}
//**********************sang ngoai vao giua********************
void sdvaogiua()
{ int i;
int mang1[8]={1,3,7,15,31,63,127, 255};

P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P2=P0=mang1[i];
tre(50); }
}
//*****************tat giua ra ngoai ******************
void tatgiuara()
{
int i,n=127;
P0=0;
P2=0;

for(i=0;i<=7;i++)
{
P2=P0=n;
tre(50);
n>>=1; }
}

//*************2 diem sang tu giua ra******************


void haidiemsGrN()
{

int i,n=1;
for(i=0;i<=7;i++)
{ P0=n;
P2=n;
tre(50);
n<<=1; }
}
//*************2 diem sang tu ngoaivao giua******************
void haidiemsNvG()
{
int i,n=128;
for(i=0;i<=7;i++)
{ P0=n;
P2=n;
tre(50);
n>>=1; }
}

//*************sang chan tu phai sang trai******************


void sangchanPsT()
{
int i,chan1[4]={1,5,21,85},chan2[4]={128,160,168,170};
P2=0;
P0=0;
for(i=0;i<=3;i++)
{ P0=chan1[i];
tre(50);
}
for(i=0;i<=3;i++)
{ P2=chan2[i];
tre(50);
}
}
//*************sang le tu trai sang phai******************
void sangleTsP()
{
int i,le1[4]={171,175,191,255},le2[4]={213,245,253,255};

for(i=0;i<=3;i++)
{
P2=le1[i];
tre(50);
}

for(i=0;i<=3;i++)
{
P0=le2[i];
tre(50);
}
}

//********* Ham tre ****************


int tre(int x)
{
int i,j;
for(i=0;i<=x;i++)
for(j=0;j<=500;j++)
{}
}

//*********hamchinh**************

void main()
{
while(1)
{
tre(50) ;
sangchanPsT();tre(50);
sangleTsP() ;tre(50);
haidiemsGrN();tre(50);
haidiemsNvG();tre(50);
sdvaogiua();tre(50);
tatgiuara();tre(50);
motdiemsPsT();tre(50);
sangdanTsP();tre(50);
tatdanPsT();tre(50);
motdiemsTsP(); tre(50);
sangdanPsT();tre(50);

}
}
nguyhiem103
View Public Profile
Find More Posts by nguyhiem103
Hôm qua, 21:18 #900
nguyhiem103 3. Một ví dụ hoàn thiện về lập trình C cho 8051
Thành viên mới #include<AT89X52.h>
#include<stdio.h>
Tham gia: Jun 2008 #define strai3 P0_7
Bài viết: 2 #define strai2 P0_6
Thanks: 0 #define strai1 P0_5
Thanked 0 Times in 0 Posts #define strai0 P0_4
#define sphai0 P0_3
#define sphai1 P0_2
#define sphai2 P0_1
#define sphai3 P0_0
//////////////////////////
#define mtraif P1_0
#define mtraib P1_1
#define mphaif P1_2
#define mphaib P1_3
#define dc1f P1_6
#define dc1b P1_7
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
#define dc2f P1_4
#define dc2b P1_5
//////////////////////////
#define f_an0 P2_0
#define f_an1 P2_1
#define f_an2 P2_2
#define f_an3 P2_3
//////////////////////////
#define dc3f P2_4
#define dc3b P2_5
//////////////////////////
#define start P3_6
#define ctht1_batdau P3_1
#define ctht2_ketthuc P3_2
#define ctht3 P3_3
#define ctht4 P3_4
#define ctht5 P3_5
#define ctht6 P3_6
//////////////////////////
#define tien 1
#define lui 0
//////////////////////////
#define v_cham_trai 50
#define v_cham_phai 50
#define delta_v_cham_trai 20
#define delta_v_cham_phai 20
#define v_nhanh_trai 100
#define v_nhanh_phai 100
#define v_quay_trai 40
#define v_quay_phai 60
////////////////////////
//vach trang sensor=1 vach xanh sensor=0
int t=0,i=0,j=0,k=0;
int vtrai=100,vphai=100;
int PWMC=0;
int dem=0;
int dirtrai=tien,dirphai=tien;
int phuongan=0;
///////////////////////////
void dithang(int v_left,int v_right);
void dithangcham(int v_left,int v_right);
void stop(void);
void quayphai(void);
void quaytrai(void);
void ragach(void);
void pwm(void) interrupt 1 ;
void khoitao(void);
void hanhtrinh(void);
void ham(int time,int trai,int phai);
void ham2(void);
//========================================
void main(void)
{
khoitao();
khoidongthang();
hanhtrinh();
ragach();
stop();
}
//==========================================
void khoitao(void)
{
TMOD=0x02;
TH0=0xE1; TR0=1; IE=0x82;
P1=0x00;P2=0x00;P3=0x00;
while(!start) stop();
}
//==========================================
void khoidongthang(void)
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
{
for(i=0;i<300;i++)
{
dirtrai=tien;dirphai=tien;
vtrai=40; vphai=40;
}
}
//==========================================
void khoidongquay(void)
{
dirtrai=tien;dirphai=tien;
vtrai=90; vphai=80;
for(i=1;i<=50;i++);
vtrai=52; vphai=40;
for(i=1;i<=580;i++);
ham(90,20,20);
do
{
dirtrai=tien;dirphai=lui;
vtrai=33;vphai=10;
}
while(!strai3);
for(i=1;i<=40;i++)
{
dirtrai=tien;dirphai=lui;
vtrai=33; vphai=9;
}
do
{
dirtrai=lui;dirphai=tien;
vtrai=15;vphai=32;
}
while(!strai0);
ham(100,20,20);
dirtrai=tien;dirphai=tien;
}
//==========================================
void quayphai(void)
{
int ktra=0;
dirtrai=tien;dirphai=lui;
do
{
vtrai= v_quay_trai;vphai= v_quay_phai;
if (sphai3) ktra++;
}
while(ktra<20);
stop();
for(i=1;i<1000;i++){};
dirtrai=tien; dirphai=tien;
}
////////////////////////////////////
void quaytrai(void)
{
int ktra=0;
dirtrai=lui;dirphai=tien;
do
{
vtrai= 60; vphai= 40;
if (strai3)ktra++;
}
while(ktra<20);
stop();
for(i=1;i<1000;i++){};
dirtrai=tien; dirphai=tien;
}
//+++++++++++++++++++++++++++++++++++++
//vach trang sensor=1 vach xanh sensor=0
void stop(void)
{
vtrai=0; vphai=0;
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
}
//==================================================
=====================================
void dithang(int v_left,int v_right)
{
if(!(strai0||strai1||strai2||strai3||sphai0||sphai 1||sphai2||sphai3)) // di thang
{
dirphai=tien;dirtrai=tien;
vtrai=v_left;vphai=v_right;
}
else
if((strai0&&strai1&&sphai0&&sphai1))
{ j=0;
for(i=1;i<=15;i++)
if((strai0&&strai1&&sphai0&&sphai1)) j++;
if(j>=10) { dem=dem+1;t=1 ;}
else t=0;
while(t)//cho qua vach trang
{
{ //di thang
dirphai=tien;dirtrai=tien;
vtrai=40;vphai=40;
}
k=0;
for(i=1;i<=20;i++)
if(!(strai3||strai2||sphai3||sphai2)) k++;
if(k>15) t=0;
}
}
else if ((sphai2||sphai3)) //re phai lon
{
dirtrai=tien;dirphai=tien;
vtrai=60;vphai=0;}
else if ((strai0||strai1))
//retrainho
{
dirtrai=lui;dirphai=tien;
vtrai=1;vphai=60;
}
else if ((sphai0||sphai1))
//rephainho
{
dirtrai=tien;dirphai=lui;
vtrai=60;vphai=1;
}
else if ((strai2||strai3))
//re trai lon
{
dirtrai=tien;dirphai=tien;
vtrai=0;vphai=60;}
}
////////////////////////////
void ragach(void)
{
while(!ctht2_ketthuc)
{
dirtrai=tien;dirphai=tien;
vtrai=25;vphai=25;
dc1f=1;dc1b=0;
}
dc1f=0;dc1b=0;
//---------------------------------------
for(t=1;t<=5;t++)
{
for(i=1;i<=10000;i++){
dirtrai=tien;dirphai=tien;
vtrai=25;vphai=25;}
Lập trình C cho VXL - Cơ bản VAGAM - giotdang
for(i=1;i<=10000;i++){
dirtrai=lui;dirphai=lui;
vtrai=0;vphai=0;}
}
//-------------------------
dirtrai=lui;dirphai=lui;
vtrai=25;vphai=25;
for(i=1;i<=2000;i++);
}
//////////////////////////
void pwm(void) interrupt 1
{
PWMC++;
if(PWMC==100) PWMC=0;
if(PWMC<vtrai)
{
mtraif=dirtrai;
mtraib=!dirtrai;
}
else
{
mtraif=0;
mtraib=0;
}
if(PWMC<vphai)
{
mphaif=dirphai;
mphaib=!dirphai;
}
else
{
mphaif=0;
mphaib=0;
}
}
void ham(int time,int trai,int phai)
{
int g;
for(g=0;g<=time;g++)
{
vphai=phai;vtrai=trai;
dirtrai=tien;dirphai=tien;
dirtrai=lui;dirphai=lui;
}
dirtrai=tien;dirphai=tien;
vphai=0;vtrai=0;
}
Chúc các bạn học lập trình C cho vi xử lý thật nhanh nhé . Đọc phần lý
thuyết cơ bản
sau đó đọc bài ví dụ cuối cùng .
Nếu bạn còn gì chưa hiểu , hãy post lên để nhóm vagam giúp các bạn .
Thân
Lê Ngọc Tuấn – giotdang1985@yahoo.com
mình thấy bài nay của bạn tuấn đang từ lâu lắm rồi ở mấy trang đầu
nh đang tập tọe VDK 8051 sử dụng trình dịch keil C. Các bước
thao tác với Keil như thế nào mình không biết cụ thể.
Đầu tiên vào File -->new --> sau đó lập trình nhưng khi cho
dịch chạy thử thì nó cứ chạy CT nguồn ee gì đó. xin hãy chỉ
giúp.

kien_tran
View Public Profile
Find More Posts by kien_tran
26 thành viên anhtiep (10-03-08), chanxi9 (27-08-09), co co (02-09-09), compro89 (13-07-09), dam (04-12-07),
thấy bài viết daominhchien (21-07-08), dung h (17-04-09), hiep0603 (04-12-08), hihihoho1102 (25-02-09), kieu
này của duy (19-10-07), kstndt (27-11-09), linh83 (22-06-08), love_f (25-09-09), ma'fi` (12-03-08),
kien_tran có ma47 (14-10-08), nghianguyen (12-12-08), ph03 (23-08-08), sangdt15teic (18-04-08), shyzai (01-
ích 09-09), sknhoc (04-01-08), SonSule (29-03-09), tancave (17-05-09), thanhtuan_lê (30-04-08),
tuanhuy127 (10-05-08), vgate (28-01-08), vutruong (13-03-08)
01-01-06, 17:06 #2
ngohaibac bạn phải dịch ra file
Moderator .hex trước thì mới có
thể Debug được.

Bạn nên tạo ra một


project.Vào Project ->
New project . Nó sẽ
hướng dẫn cụ thể bạn
Tham gia: Sep 2005 làm thế nào. Chọn con
Nơi Cư Ngụ: BKHN vi điều khiển để làm
Bài viết: 572 việc ví dụ AT89C51
Thanks: 55 của Atmel.
Thanked 766 Times in 181 Posts
Sau đó bạn vào file->
new bạn lưu tên file.
Chú ý là phải có phần
mở rộng ví dụ file C
thì đuôi là .c rồi save
vào. Viết chương trình
trong file đó.

Khi đó chưa chạy


được, chưa dịch được
vì nó không trong
Project của bạn. Bạn
phải kích chuột phải
vào tên Project ở cửa
sổ bên trái chọn Add
file to project( đại loại
thế không nhớ rõ).

Tiếp đến bạn dịch ra


file .hex bằng cách lựa
chọn trong Option ỏ
tab Output là to Hex
file.

Sau đó bạn dịch ra file


.hex. Rồi debug.

Chỉ đơn giản có thế


thôi.

Để mai tôi viết một


bài hướng dẫn cơ bản
cho các bạn mới học
về vấn đề này.
__________________
Tel. +84-(0) -
955770725
Website :
www.ngohaibac.net,
www.ngohaibac.com
Email : mail AT
ngohaibac DOT com

ngohaibac
View Public Profile
Visit ngohaibac's homepage!
Find More Posts by ngohaibac
34 thành viên thấy bài viết alone_87 (23-06-08), anhtiep (10-03-08), arieltnut (06-05-09), bkhn10 (09-03-09), co
này của ngohaibac có ích co (02-09-09), compro89 (13-07-09), conan_godman (02-11-09), congdatquan (20-05-
09), cuongthuyhuy (03-11-07), daipv85 (13-12-07), daominhchien (21-07-08),
ducquangkd (29-10-07), dung h (17-04-09), duysonghinh (16-03-08),
duytrungdn88 (27-12-08), h5n1_bk86 (05-03-09), heaviside_vn (15-05-09),
hieunamhai (30-11-07), hs1986 (17-08-08), k11 (14-06-08), linh_tdh (27-09-08),
lucky_star89 (27-06-09), ma47 (14-10-08), minhngh (06-01-09), mrductiep (22-03-08),
nguyencongch (06-10-08), ninhhung83 (13-07-07), ph03 (23-08-08),
phamtuan8xhy (12-12-08), sknhoc (04-01-08), thanhmv (23-11-08), trong_re (02-04-
09), tuanbo555 (25-02-09), wide_sky (21-07-09)
01-01-06, 17:11 #3
queduong Đầu tiên vào PROJECT --> new project ( gõ tên project vào , chọn VDK loại nào ? click vào
Moderator cái dòng có ATMEL ( tìm đến con 89 mà bạn cần ).

2) click file --> NEW gõ một vài câu lệnh , save nó là ( tên đề tài . c ) chú ý phải có .c

Sau đó mở cửa sổ project ra , kích chuột vô option --kích liên tiếp đến khi nó hiện ra hết ,
kích chuột phải rồi add cái source tên đề tài.c vào , thế là bắt đầu dịch, chạy thoải mái.
Tham gia: Jul 2005
--- Nói thì lằng ngoằng , ai có cái nút capture print thì chụp ảnh lên hướng dẫn cho. Cái máy
Nơi Cư Ngụ: Lâm gia
của tôi hỏng phím nên không đưa ảnh lên được . HIC
Thôn
__________________
Bài viết: 2,250
PhucHiep JSC-Tập đoàn QueDuong
Thanks: 65
- Cơ Khí, TĐ Hóa, Điện Tử, Luật, bao bì-nhãn mác,thiết bị điện.
Thanked 844 Times in
-dientuqueduong@yahoo.com (Điện tử, RF) 0904964977 (Mr: Dương)
469 Posts

queduong
View Public Profile
Visit queduong's homepage!
Find More Posts by queduong
9 thành co co (02-09-09), congaihocdie (19-12-07), cuongthuyhuy (03-11-07), daominhchien (04-09-08), dung
viên thấy h (17-04-09), ma47 (14-10-08), ph03 (23-08-08), tuanbo555 (25-02-09), votinh_kt (24-09-08)
bài viết
này của
queduong
có ích
02-01-06, 10:29 #4
ngohaibac Các bước làm việc với Keil C
Moderator Các bước thực hiện.
Bạn xem hình minh họa cho dễ dùng

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.

Tham gia: Sep 2005


Nơi Cư Ngụ: BKHN
Bài viết: 572
Thanks: 55
Thanked 766 Times
in 181 Posts

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
__________________
Tel. +84-(0) - 955770725
Website : www.ngohaibac.net, www.ngohaibac.com
Email : mail AT ngohaibac DOT com
Last edited by ngohaibac; 07-06-06 at 19:01..

ngohaibac
View Public Profile
Visit ngohaibac's homepage!
Find More Posts by ngohaibac
43 thành viên thấy bài viết alone76816 (04-06-09), caubedolac (28-09-09), chanxi9 (27-08-09), co co (02-09-09),
này của ngohaibac có ích congdatquan (20-05-09), daominhchien (04-09-08), dinh_truong (03-10-09), dung
h (16-04-09), duyen_pt365 (07-05-08), duysonghinh (16-03-08), HatGreen (10-08-09),
hit rui kiss (02-05-09), hoadangphivu (08-01-09), hongthu11 (25-11-07),
kevin8791 (01-08-08), kienco (14-10-08), kiluala (17-10-08), luckystart (21-09-09),
ma47 (14-10-08), minhngh (06-01-09), Mr Bom (03-01-09), mrductiep (22-03-08),
Ne0 (17-04-09), newputin (22-05-09), nguyencongch (06-10-08), numblack90 (07-09-
09), ph03 (23-08-08), PHUC (26-10-09), rinmeo.rinkk (23-04-09), rmpnicelife (04-07-
09), tatdat (01-03-09), thanhtdh (09-09-08), that (24-08-09), thinhdb (06-05-08),
tincokhi (07-09-09), tranphong2 (09-07-08), trong123 (19-03-08), trungson (27-09-07),
tvqthang (25-11-09), viettuancoi (27-11-08), VoMinhQuoc (07-09-09),
vunguyen88 (17-02-09), yeubom1 (21-09-08)
02-01-06, 10:29 #5
ngohaibac Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
Moderator gốc có cỡ 800x600.

Tham gia: Sep 2005


Nơi Cư Ngụ: BKHN
Bài viết: 572
Thanks: 55
Thanked 766 Times in
181 Posts

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.

Ảnh đã được thu nhỏ. Bấm vào đây để xem hình với kích thước đầy đủ . Hình nguyên
gốc có cỡ 800x600.
__________________
Tel. +84-(0) - 955770725
Website : www.ngohaibac.net, www.ngohaibac.com
Email : mail AT ngohaibac DOT com
Last edited by ngohaibac; 07-06-06 at 22:56..

ngohaibac
View Public Profile
Visit ngohaibac's homepage!
Find More Posts by ngohaibac
57 thành viên academy_83 (16-12-07), alone76816 (04-06-09), alone_87 (23-06-08), BHD (11-11-09),
thấy bài viết caothanh (20-06-08), caube (19-06-08), chang vang (21-10-09), chanxi9 (27-08-09),
này của chiatytuday (08-01-09), chika (12-01-08), chuabietyeu (05-09-08), co co (02-09-09), culanbk (01-
ngohaibac có 10-09), cuongkstn (25-09-08), daominhchien (21-07-08), demon52 (27-03-09), dinh_truong (03-10-
ích 09), dung h (16-04-09), duyan1503 (26-12-07), duyen_pt365 (07-05-08), duysonghinh (16-03-08),
gold2012 (23-07-08), hihihoho1102 (25-02-09), hiodong (18-09-07), hoadangphivu (24-11-08),
hungdv (16-11-07), kienco (14-10-08), longmonkhach (27-04-08), ma47 (14-10-08), minhngh (06-
01-09), Mkhuong (16-03-09), Moya (17-03-08), mrductiep (22-03-08), ngocthelong (05-04-09),
nhat_phong (25-10-08), nhn910 (29-04-09), nk_ngan2007 (06-08-09), ph03 (23-08-08),
PL.audio (20-12-07), rinmeo.rinkk (23-04-09), saulvn (04-04-08), sknhoc (04-01-08),
sunguyen1609 (14-09-07), tankg (26-11-08), tatdat (30-04-09), thanh chung (20-10-07),
tincokhi (07-09-09), tranmanhson (14-01-09), trinhduchanh (21-04-08), trong123 (19-03-08),
tttttttt (22-10-09), tuannguyendu (11-08-08), tvqthang (25-11-09), uydanh (09-08-07),
vanlinhcp (24-05-08), wide_sky (21-07-09), wtiamo (10-04-08)
03-01-06, 09:58 #6
kien_tran Chào ban N_H_B!
Thành viên chính thức mình đã thực hiện
các bước bạn
Tham gia: Sep 2005 hướng dẫn và copy
Bài viết: 38 cả bài của bạn vào
Thanks: 0 chạy thử nữa
Thanked 35 Times in 6 Posts nhưng khi dịch nó
cứ báo lỗi. Mình
đã kiểm tra lại quá
trình thực hiện và
cú pháp khi lập
trình thậm chí còn
cài lại nữa (KeilC
v 7.08) bản
cracked. Lỗi cụ thể
như sau:

Build target
'Target 1'
Compiling
leddon.C...
***WARNING
C318 IN LINK 1
OF LEDDON.C:
CAN'T OPEN
FILE 'REGX51.H'
leddon.C(14):error
C202 : 'P1_0' :
undefined
identifier
leddon.C(15):error
C202 : 'P1_0' :
undefined
identifier
Target not create

Chỉ giúp nhé.

kien_tran
View Public Profile
Find More Posts by kien_tran
4 thành viên thấy bài viết chanxi9 (27-08-09), co co (02-09-09), ph03 (23-08-08), wtiamo (10-04-08)
này của kien_tran có ích
03-01-06, 15:13 #7
MicroDuyphi Chính vì không mở được file REGX51,H nên sinh ra các lỗi đi kèm sau đó, là P1_0 chưa
Thành viên tích cực khai báo.
Theo tôi bạn nễn xem lại file .H ở trên ! Hoặc thay vào đó là gõ thêm câu lệnh sau:

sbit P1_0= P1^0;


__________________
TẬP SÁCH LẬP TRÌNH VI ĐIỀU KHIỂN PIC16F84 - Được viết ĐẦU TIÊN TẠI
VIỆT NAM

Tham gia: Jul 2005 www.duyphi.tk


Bài viết: 822 http://sites.google.com/site/sachpic
Thanks: 47
Thanked 285 Times in
156 Posts

MicroDuyphi
View Public Profile
Find More Posts by MicroDuyphi
6 thành viên thấy bài co co (02-09-09), daominhchien (21-07-08), dung h (17-04-09), nhduc_ee (26-09-09),
viết này của ph03 (23-08-08), tienhuypro (27-09-09)
MicroDuyphi có ích
04-01-06, 10:04 #8
ngohaibac không phải điều đó.
Moderator
Các header file này thực ra mình cũng chẳng cần dùng khác. Thực chất bạn chỉ cần header
file "reg51.h" là được. Còn các header file regx51.h thực ra là định nghĩa các port sẵn rồi
mình đỡ phải định nghĩ thôi mà.

Bạn cứ mở file đó ra mà xem nha. Còn chương trình của tôi chỉ nháy led ở Port P1.0 thôi.
Bạn dùng P1 thì làm cả 8 chân của Port 1 rồi.
Tham gia: Sep 2005
Nơi Cư Ngụ: BKHN Việc định nghĩa cho Port P1.0 như sau:
Bài viết: 572
Code:
Thanks: 55
Thanked 766 Times in sbit P1_0= P1^0;
181 Posts
Bạn có thể xem chi tiết về cách lập trình, cú pháp, cách thức tại

http://luckytoki.com/haibac/download...0%20Primer.pdf

Có lẽ tôi phải viết Toturial về vấn đề này thôi. Các cao thủ biết dùng rồi, biết viết code rồi
mà chẳng hướng dẫn cho người mới biết gì cả.

Vậy thì để tôi ra tay vậy.

Chúc bạn thành công.


__________________
Tel. +84-(0) - 955770725
Website : www.ngohaibac.net, www.ngohaibac.com
Email : mail AT ngohaibac DOT com
Last edited by ngohaibac; 04-01-06 at 10:36..

ngohaibac
View Public Profile
Visit ngohaibac's homepage!
Find More Posts by ngohaibac
13 thành viên thấy bài viết chisi (28-07-08), co co (02-09-09), daominhchien (21-07-08), dung h (17-04-09),
này của ngohaibac có ích duyen_pt365 (07-05-08), nhduc_ee (26-09-09), ph03 (23-08-08), PHUC (26-10-09),
tatdat (15-04-09), thuphuong (27-05-08), vodienDT4 (16-06-09), wtiamo (10-04-08),
XXXXX (07-04-09)
04-01-06, 14:38 #9
MicroDuyphi Nếu bạn chú ý một tí thì sẽ thấy, đa số :
Thành viên tích cực "Con người thường không thích nhận sự giúp đở của người khác,
Nhưng lại rất thích giúp đở mọi người!"
Và do đó mới có một NgốHaiBac chẳng hạn. Ông này thích tự tìm tòi, tìm đã rồi thích giúp
người khác, cái đáng bàn bạc là làm sao để cái TUTORIAL ấy giúp ích được cho nhiều anh
em nhất.
Người khá thì giúp cho người mới nhập môn
Người giỏi thì giúp cho người khá
Tham gia: Jul 2005 Còn Người kha khá thì giúp cho người chưa biết gì!
Bài viết: 822 Cho nên tài liệu dù dỡ đến đâu cũng có người đọc, và sẽ không bao giời cho là đủ- theo kiến
Thanks: 47 giải của Phi là vậy đó!
Thanked 285 Times in __________________
156 Posts TẬP SÁCH LẬP TRÌNH VI ĐIỀU KHIỂN PIC16F84 - Được viết ĐẦU TIÊN TẠI
VIỆT NAM

www.duyphi.tk
http://sites.google.com/site/sachpic

MicroDuyphi
View Public Profile
Find More Posts by MicroDuyphi
6 thành viên thấy bài co co (02-09-09), congaihocdie (19-12-07), daominhchien (09-04-09), dung h (17-04-09),
viết này của ph03 (23-08-08), tatdat (15-04-09)
MicroDuyphi có ích
05-01-06, 11:43 #10
queduong Trích:
Moderator
Nguyên văn bởi kien_tran
Chào ban N_H_B! mình đã thực hiện các bước bạn hướng dẫn và copy cả bài của bạn
vào chạy thử nữa nhưng khi dịch nó cứ báo lỗi. Mình đã kiểm tra lại quá trình thực hiện
và cú pháp khi lập trình thậm chí còn cài lại nữa (KeilC v 7.08) bản cracked. Lỗi cụ thể
như sau:

Tham gia: Jul 2005 Build target 'Target 1'


Nơi Cư Ngụ: Lâm gia Compiling leddon.C...
Thôn ***WARNING C318 IN LINK 1 OF LEDDON.C: CAN'T OPEN FILE 'REGX51.H'
Bài viết: 2,250 leddon.C(14):error C202 : 'P1_0' : undefined identifier
Thanks: 65 leddon.C(15):error C202 : 'P1_0' : undefined identifier
Thanked 844 Times in Target not create
469 Posts
Chỉ giúp nhé.
Mấy bác cứ nói ở đâu : Em chẳng biết gì về mấy cái con 89 này cả .. hé hé
Viết thế này làm sao nó chạy ???

#include <REGX51.H> thì nó báo thế này là đúng CAN'T OPEN FILE 'REGX51.H'

--- Cứ mở cái keil ra , hoặc viết #include <reg51.h>


Hoặc viết #include <REG51X.H > ( lưu ý là chữ X sau số 51 ) vì trong thư mục inc
( include) của keil chỉ có REG51X.H thôi .

- Tôi nghi ngờ cách include của bạn , hoặc tốt hơn bạn kích chuột phải trong cửa sổ soạn
thảo tìm dòng insert #include <REG51X.H> vào đầu chương trình của bạn.
( Đây chỉ bị sai tên include thôi mà )
__________________
Hướng dẫn xử dụng bàn điều khiển DMX 512 TQ
(DMX192).
Written by tuyenphuc
Wednesday, 17 December 2008 11:42
Thiết bị này có thể điều khiển cùng một lúc 12 đèn moving head bất kỳ, mỗi đèn không quá 16 địa chỉ DMX. Như thế, tổng
số address nó có thể quản lý là 192 địa chỉ đầu tiên của mã DMX 512.

-Cách set địa chỉ cho đèn:

Cố định, không thay đổi được, cách nhau một khoảng 16 địa chỉ. Đèn thứ nhất cài ở địa chỉ 1, đèn thứ 2 cộng thêm 16 sẽ
thành 17, đèn thứ 3 là 33, cứ thế tiếp diễn là 49, 65, 81, 97 v.v cho tới đèn thứ 12 là 177.

-Lập chương trình cho đèn (fixtures programing):

Nếu làm chương trình lần đầu tiên, bạn phải xóa trắng hết tất cả các chương trình đã cài trong thiết bị ở những lần trước.
Tắt switch on/off ở mặt sau thiết bị, nhấn và giữ 2 nút PROGRAM và BANK DOWN cùng lúc, bật switch on/off, khi thấy đèn sáng
và nháy vài lần là bộ nhớ flash của thiết bị đã được xóa sạch.

Sang phần lập chương trình:

Bạn nhấn nút PROGRAM, giữ trong vòng 3 giây cho đến khi đèn báo nhỏ bên cạnh chữ Program trên màn hình LCD bật
sáng. Bạn nhấn BANK UP hay BANK DOWN để lựa Bank mà bạn sắp lập chương trình vào, thí dụ như Bank 1. DMX 192 cho
phép bạn lập được 30 bank, mỗi bank là 1 chương trình độc lập.

Lập scene. Mỗi bank có thể chứa tối đa 8 scene, từ 1 đến 8. Bạn lựa tất cả hay từng cái đèn ở 12 nút bấm ở ô
SCANNERS, mỗi nút tương ứng với cây đèn mà bạn đã set địa chỉ trước đó. Khi đèn LED bên cạnh mỗi nút bật sáng là đèn đó
đã kích hoạt, sẵn sàng để điều khiển. Bạn đưa những cây đèn vào những vị trí và những effect kèm theo mà bạn muốn, tạo thành
1 scene cố định. Dùng 8 fader, thay đổi 1 trong 2 page bằng cách bấm nút page select để điều chỉnh 16 địa chỉ của đèn (Page A là
từ 1 -> 8, page B là 9 -> 16). Thí dụ vị trí chiếu vào phông, effect đổi màu tự động chẳng hạn. Khi đã hoàn tất scene này, bạn đưa
nó vào bộ nhớ bằng cách bấm MIDI/REC, giữ tay và bấm tiếp số của scene mà bạn muốn nhớ vào đó (có loại thì bấm MIDI/REC
rồi kế đó bấm số scene). Khi bạn thấy tất cả các đèn LED trên thiết bị nháy 3 lần là vị trí, effect của đèn đã được ghi nhớ vào flash
rom của thiết bị. Sau đó, bạn tiếp tục làm thêm những scene khác với kỹ thuật cũng như làm với scene đầu tiên.

Trong 1 bank, số scene tối đa bạn có thể lập là 8. Không nhất thiết phải lập đủ 8 scene trong 1 bank. Bạn có thể lập ít hơn
tùy bạn muốn. Nếu bank chỉ có 1 scene thì bank này là bank tĩnh (static), không thay đổi được, giá trị cũng giống như 1 scene đã
lập. Để ý trước khi lập trình, nếu bạn quên không xóa hết những chương trình trước đó, thiết bị vẫn còn nhớ những scene này
làm cho những đèn có thể chạy hỗn độn. Bạn xóa những scene này bằng cách nhấn và giữ nút AUTO/DEL rồi bấm số scene cần
xóa.

Trong khi lập trình, có thể check những scene đã lập bằng cách bấm vào số scene tương ứng. Scene có lỗi, không đúng
mong muốn, bạn sửa đèn lại cho đúng rồi cho nhớ chồng lên chỗ scene bị lỗi . Áp dụng tính năng check scene này, bạn có thể
test chương trình bằng cách bấm tuần tự từng scene theo thứ tự tăng dần từ 1 đến 8, khoảng cách bấm đều nhau, bạn có thể
thấy trước được bank đang lập khi play chạy như thế nào.

Sau khi đã hoàn tất những công đoạn trên, bạn thoát ra khỏi chương trình bằng cách nhấn và giữ nút program 3 giây, đèn
Program sẽ tắt, hiện ra đèn báo Blackout, bạn đã làm xong 1 bank, sẵn sàng để hoạt động.

Theo cách trên, bạn lập thêm nhiều bank khác nữa, tùy thích. Mỗi bank mới, bạn nên lập trình cho đèn có vị trí và effect
khác nhau theo công dụng của đèn cho phép.

-Điều khiển đèn:

DMX 192 xử dụng rất đơn giản. Chỉ cần lựa bank, tắt Blackout rồi bấm AUTO/DEL là nó sẽ tự động xuất ra tín hiệu DMX
điều khiển đèn với chương trình chứa trong bank đã lựa. Nếu mở từng scene thì không bấm AUTO/DEL, mà bấm trực tiếp vào 1 –
8 scene đã lập.

Khuyết điểm lớn nhất của thiết bị này là không thể nhớ tốc độ đổi scene của chương trình. Trước khi chạy chương trình
(play bank), bạn phải set fader speed lên gần tối đa, nhìn vào bảng hiện số, chỉnh cho tốc độ tương đối vào khoảng 2 giây là vừa.
Fader slope thì ở vị trí 0, nếu xử dụng movie head. Bản thân loại đèn này chạy cũng khá chậm rồi, không cần điều chỉnh slope
nữa, trừ khi bạn có chương trình quét pan tilt rất chậm. Nếu là scanner, mirror lắc rất nhanh, phải điều chỉnh lại slope cho chậm lại
phù hợp với ý muốn của bạn.

Vì có đến 30 bank nên khi thay đổi bank bằng cách bấm BANK UP hay BANK DOWN hơi chậm. Bạn nên gán những bank
nào thường xử dụng nhất vào 6 nút bấm chase góc trên bên phải thiết bị. Cách làm tuần tự như sau.

Bấm nút lựa chase nào bạn muốn copy từ bank.

Bấm BANK UP hay BANK DOWN để lựa bank nào bạn muốn copy.

Bấm nút MUSIC/BANKCOPY.

Sau cùng là bấm nút MIDI/REC để đưa vào bộ nhớ.

Khi điều khiển chương trình, bạn chỉ cần 1 thao tác bấm chase bạn muốn là controller sẽ tự động thay đổi bank đã copy.

Trong khi chạy chương trình, bạn có thể chơi feeling bằng đổi 1 hay toàn bộ những effect của đèn, thí dụ như đổi sang
strobe chẳng hạn. Rất dễ, bạn lựa cây đèn nào muốn đổi, rồi tùy nghi điều chỉnh, sẽ tác động ngay. Muốn thoát chế độ này, chỉ
cần tắt các nút lựa đèn, mọi hoạt động sẽ trở về bình thường.

Vừa rồi là hướng dẫn những thao tác cơ bản nhất để lập chương trình và xử dụng DMX 192. Trong khuôn khổ một bài
viết, chưa thể viết hết được những tính năng của thiết bị này. Nếu muốn tìm hiểu thêm, bạn hãy bấm vào link dưới đây để
download toàn bộ User Manual 11 trang của DMX 192 viết bằng tiếng Anh.

Lần sau tôi sẽ viết bài hướng dẫn xử dụng CX5 controller.

You might also like