Nếu muốn chính xác bạn thử tính lại xem chương trình thực hiện các lệnh gán và các lệnh so sánh trong vòng for hết bao nhiêu us rồi cộng tổng lại và tính ra xem cần nạp giá trị bao nhiêu vào x hoặc nạp giá trị nào để so sánh với time4
Thông báo
Collapse
No announcement yet.
HƯỚNG DẪN LẬP TRÌNH KEIL C CHO 8051-[Chỉ dành post bài hướng dẫn]
Collapse
X
-
cảm ơn bac Jackychan nhiều nha. em cũng muốn tính toán thời gian trể bằng vòng lặp theo cách của bác nhưng mà thực sự không có tài liệu nào về thời gian thực thi một lệnh ở trong Keil C, chẳng hạn như lệnh gán, lệnh so sánh .v.v. mỗi lệnh tốn bao nhiêu us. Nen không thể tính toán được. Các bác trên diễn đàn có tài liệu gì nói về cái đó không có thể cho em biết với
Comment
-
Nguyên văn bởi yeubom1 Xem bài viếtcảm ơn bac Jackychan nhiều nha. em cũng muốn tính toán thời gian trể bằng vòng lặp theo cách của bác nhưng mà thực sự không có tài liệu nào về thời gian thực thi một lệnh ở trong Keil C, chẳng hạn như lệnh gán, lệnh so sánh .v.v. mỗi lệnh tốn bao nhiêu us. Nen không thể tính toán được. Các bác trên diễn đàn có tài liệu gì nói về cái đó không có thể cho em biết với
Comment
-
Nguyên văn bởi Zz_Bi_zZ Xem bài viếtu disasemble , sau đó mở sách VĐK 8051 Tống Văn ÔN ra ,tra từng câu lệnh thì tính chính xác thời gian lặp
tuy vậy em lại chưa biết nhiều về keil c lắm, đặc biệt là tập lệnh trong keil và cách dùng các lệnh như thế nào, chẵng hạn như: lệnh RR trong hợp ngữ để quay phải không có cờ nhớ thanh ghi A thì trong keil C em lại không biết dùng thế nào. vì vậy em mong nhận nhận được sự giúp đở của các bác. Xin cảm ơn nhiều
Comment
-
Cho em hỏi: Em có cái mạch như hình dưới dùng đề nhấn phím, chương trình hợp ngử thì đã chạy được rồi em chuyển qua lập trình bằng C thì không được nên phải kết hợp C và Asembly như ở dưới. các bác có cách nào giúp em viết được chương trình này hoàn toàn bằng c không.
// chưong trình này kết hợp C và Asembly:
bit start=1,NUT0=1,NUT1=1,NUT2=1,NUT3=1,NUT4=1,NUT5=1, NUT6=1,NUT7=1,
NUT8=1,NUT9=1;
void quet_phim(void)
{
#pragma asm
MOV P2,#11100011B
MOV C,P2.0
MOV NUT9
MOV P2,#11100111B
MOV C,P2.0
MOV NUT5,C
MOV P2,#11101011B
MOV C,P2.0
MOV NUT4,C
MOV P2,#11101111B
MOV C,P2.0
MOV NUT2,C
MOV P2,#11110011B
MOV C,P2.0
MOV NUT1,C
MOV P2,#11110111B
MOV C,P2.0
MOV NUT3,C
MOV P2,#11111011B
MOV C,P2.0
MOV NUT8,C
MOV P2,#11111111B
MOV C,P2.0
MOV NUT6,C
#pragma endasm
}
Comment
-
Đối với chương trình viết bằng C thì với mối câu lênh của C nó có một tập hợp các lênh Bằng ASM đi theo.
Ví dụ một chương trình delay bằng ASM.
delay:
MOV r1,#100 //Lệnh này mất 2 chu kỳ máy
lap: DJNZ r1,lap //mất 2 chu kỳ máy
RET //mất 1 chu kỳ máy
Comment
-
Chào các Bạn..!
Mình cũng đang tập tọe học lập trình và được Anh nguyenminhieu viết cho một chương trình ví dụ điều khiển hiển thị qua 8 con led.và đây là vd:
#include<regx51.h>
void nhay_3_lan(void);
void dich_phai(void);
void delay(unsigned int ms)
{
unsigned int i;
unsigned char j;
for(i=0;i<=ms;i++)
for(j=0;j<120;j++);
}
void main(void)
{
while(1)
{
nhay_3_lan();
dich_phai();
}
}
void nhay_3_lan(void)
{
char i;
P1 = 0;
for(i = 0;i<6;i++)
{
P1 = ~P1;delay(300);
}
}
void dich_phai(void)
{
char i;
P1=0xff;
for(i=0;i<=8;i++)
{
P1 = P1>>1;delay(200);
}
}
Vậy cho mình hỏi nếu mình muốn viết chương trình cho 8con led này---
- Một là sáng dồn(tức là tại một thời điểm chỉ có một led sáng chạy từ led0 --led7t thì dừng lại tại Led 7 ,Led7 lúc này luôn sáng.tiếp theo cũng như thế và đến led6 thì led6 luôn sáng..........cứ như thế cho đến cuối cùng là Led0)
- Hai là sáng dần lên(tức là sáng dần lên từ led0 ----Led7)
Rất mong được các bạn giúp đỡ..!
Comment
-
Nguyên văn bởi phunghieu Xem bài viếtChào các Bạn..!
Mình cũng đang tập tọe học lập trình và được Anh nguyenminhieu viết cho một chương trình ví dụ điều khiển hiển
Vậy cho mình hỏi nếu mình muốn viết chương trình cho 8con led này---
- Một là sáng dồn(tức là tại một thời điểm chỉ có một led sáng chạy từ led0 --led7t thì dừng lại tại Led 7 ,Led7 lúc này luôn sáng.tiếp theo cũng như thế và đến led6 thì led6 luôn sáng..........cứ như thế cho đến cuối cùng là Led0)
- Hai là sáng dần lên(tức là sáng dần lên từ led0 ----Led7)
Rất mong được các bạn giúp đỡ..!
ban co the chuyen no qua c duoc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
donden:
mov luusolanlap,#8
mov solanchay,#8
mov solanlap,#8
mov luutrangthai,#0ffh
vonglap:
mov dangchay,#0feh
begin:
mov a,dangchay
anl a,luutrangthai
mov p1,a
lcall delay1s
djnz solanchay,chaytiep
jmp thoatvonglap
chaytiep:
mov a,dangchay
rl a
mov dangchay,a
jmp begin
thoatvonglap:
mov luutrangthai,a
dec luusolanlap
mov a,luusolanlap
mov solanchay,a
djnz solanlap,vonglap
retLast edited by yeubom1; 20-09-2008, 17:07.
Comment
-
Mình có mấy cái hàm sáng led viết bằng C, bạn nào mới tìm hiều có thể tham khảo thêm:
void Dem_len(void)
{unsigned char i; //khai bao bien trong ham}
P2=255;
for(i=0;i<16;i++) //P2 dem len 16 lan
{
P2=P2+1;
delay_ms(500); //tri hoan nua giay
}
//---------------------------------------------------
void Dem_xuong(void)
{unsigned char i;}
P2=255;
for(i=0;i<16;i++)
{
P2=P2-1;
delay_ms(500);
}
!e
Comment
-
void Sang_dan(void)
{
unsigned char i;
P2=0xFF;
for(i=0;i<8;i++)
{
P2=P2<<1; //sang dan tu phai qua
delay_ms(500);
}
P2=0xFF;
for(i=0;i<8;i++)
{
P2=P2>>1; //sang dan tu trai qua
delay_ms(500);
}
}
//----------------------------------------------------
void Tat_dan(void)
{
unsigned char i;
P2=0;
for(i=0;i<8;i++)
{
P2=P2<<1;
P2=P2|0x01; //tat dan tu phai qua
delay_ms(500);
}
P2=0;
for(i=0;i<8;i++)
{
P2=P2>>1;
P2=P2|0x80; //tat dan tu trai qua
delay_ms(500);
}
}
!e
Comment
-
void Sang_dich(void)
{
unsigned char i;P2=255;}
for(i=0;i<8;i++)
{
P2=~(1<<i);
delay_ms(500);
}
P2=255;
for(i=0;i<8;i++)
{
P2=~(0x80>>i);
delay_ms(500);
}
//-------------------------------------------
void Tat_dich(void)
{
unsigned char i;P2=0;}
for(i=0;i<8;i++)
{
P2=(1<<i);
delay_ms(500);
}
P2=0;
for(i=0;i<8;i++)
{
P2=(0x80>>i);
delay_ms(500);
}
!e
Comment
-
void Sang_don(void)
{}
unsigned char i,j,k;
P2=255; k=255;
for(i=8;i>0;i--)
{
for(j=0;j<i;j++)
{
P2=k&(~(1<<j));
delay_ms(500);
}
k=P2;
}
P2=255; k=255;
for(i=8;i>0;i--)
{
for(j=0;j<i;j++)
{
P2=k&(~(0x80>>j));
delay_ms(500);
}
k=P2;
}
void Tat_don(void)
{
unsigned char i,j,k;P2=0; k=0;}
for(i=8;i>0;i--)
{
for(j=0;j<i;j++)
{
P2=k|(1<<j);
delay_ms(500);
}
k=P2;
}
P2=0; k=0;
for(i=8;i>0;i--)
{
for(j=0;j<i;j++)
{
P2=k|(0x80>>j);
delay_ms(500);
}
k=P2;
}
!e
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietĐúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi mèomướpDạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 12:32 -
-
Trả lời cho Tiếng Anh cho người Việtbởi vi van phamNhững lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).
Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...-
Channel: Tâm tình dân kỹ thuật
20-02-2025, 21:31 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi bqvietThiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.20-02-2025, 17:22
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.
Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...-
Channel: Tâm tình dân kỹ thuật
20-02-2025, 11:52 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi vi van phamUống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
Cái khó bó cái...19-02-2025, 23:05 -
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.
Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.
Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...-
Channel: Tâm tình dân kỹ thuật
19-02-2025, 21:27 -
-
bởi xenopus123Cần hỗ trợ mạch đồng hồ vạn niên 89c52 ds1302 ds18b20 dùng 16 led 7 đoạn
-
Channel: Hỗ trợ học tập
19-02-2025, 21:24 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Nhìn kỹ hàng đi cu. Chứ ra đường cứ thấy đàn bà rồi bảo:
- Tôi cũng có vợ như thế....
Đảm bảo cu nát người luôn....-
Channel: Điện tử dành cho người mới bắt đầu
19-02-2025, 21:04 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
17-02-2025, 14:40 -
Comment