Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Theo toi, Keil co chuong trinh Debug rat day du, co the chay mo phong xem thoi gian thuc thi cua cac chuong trinh delay la bao nhieu rat chinh xac, khong chi la chuong trinh delay ma cac chuong trinh con ton bao nhieu tthoi gian chung ta cung co the quan sat.
Thực ra khi dịch thì Keil sẽ dịch ra asm rồi mới dịch ra file hex, nên trong trường hợp chúng ta cần tính chính xác thời gian của các chương trình con hay đoạn chương trình thì ta có thể chèn thêm đoạn mã asm vào. Dĩ nhiên đoạn asm này chúng ta đã tính toán được rồi. Như thế chúng ta có thể chủ động hơn trong quá trình lập trình. Còn nếu không chúng ta vẫn có thể dùng Keil để tính chính xác thời gian được như bác tramhero nói.
Nhưng chủ động vẫn hơn bị động phải không bác.
Cảm ơn anh em đã giúp đỡ.
Tôi nghĩ trong chương trình đôi lúc cài thêm đoạn asm cũng đơn giản được đôi chút.
Nhất là trong trường hợp đang học viết bằng C chưa thạo, bí quá thì táng một đoạn asm vào chữa cháy.
mà cái kiểu chạy mô phỏng trong keil như thế nào hả bác tramhero, bác có thể hướng dẫn thêm được không?
chương trình debug hỗ trợ nhiều chế độ
như chạy từng lệnh hay chạy cả chương trình
nó cho phép mô phỏng I/0 timer ,counter tính toán thời gian thực
hiện chương trình ..vv
bác vào debug chọn start debug chọn go là chay chương trình
Các bác ơi cho hỏi trong keilc thì sử dụng ngắt như thế nào vậy.Cách khai báo như thế nào. ví dụ như sau:
void Ex0Isr(void) interrupt 0
Có phải là ngắt ngoài 0 không? Số 0 để làm gì vậy?
Và hàm này nữa
void timer0(void)interrupt 1 using 1 //ngắt bộ định thời 0 bank 1(bank 1hay MODE 1)
void Ex1Isr(void) interrupt 1 dùng để làm gì vậy Có phải là khai báo ngắt ngoài 1 không?
Nhờ các bác chỉ dùm một hàm ngắt cơ bản nha.
bác nào rảnh xem giùm tại hạ chương trình này tại sao không chạy nha
#include<AT89X51.h>
unsigned char so[10]={0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x1 0};
unsigned char i,j,k,h;
unsigned char p1,p2,g1,g2;
Các bác ơi cho hỏi trong keilc thì sử dụng ngắt như thế nào vậy.Cách khai báo như thế nào. ví dụ như sau:
void Ex0Isr(void) interrupt 0
Có phải là ngắt ngoài 0 không? Số 0 để làm gì vậy?
Và hàm này nữa
void timer0(void)interrupt 1 using 1 //ngắt bộ định thời 0 bank 1(bank 1hay MODE 1)
void Ex1Isr(void) interrupt 1 dùng để làm gì vậy Có phải là khai báo ngắt ngoài 1 không?
Nhờ các bác chỉ dùm một hàm ngắt cơ bản nha.
bác nào rảnh xem giùm tại hạ chương trình này tại sao không chạy nha
#include<AT89X51.h>
unsigned char so[10]={0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x1 0};
unsigned char i,j,k,h;
unsigned char p1,p2,g1,g2;
TMOD=0X21; //TIMER0 CHE DO 1,TIMER1 CHE DO 2
IE=0X8F; // CHO PHEP NGAT CAC NGAT
IT0=0;
IT1=0;
while(1)
{
}
}
Mò mẫm cả buổi mà khồn hiểu gì hết
hề hề ,cái interrupt 1 là ngắt timer có phải ngắt ngoài đâu
còn chương trình của bác dùng dùng đến ngắt ngoài 0 ,1 thì phải khai báo
số hiệu ngắt là 0 và 2
còn bác gán cái TMO=0x21 chả hỉu định làm gì
nếu dùng timer thì phải có lệnh gán TR0=1 để bật timer chứ và nạp giá trị vho th,tl nửa
Bác trả lời sớm chút thì tại hạ khỏi phải vò đầu bứt tai rồi.mò mẫm mãi mới ra Sau khi xem lại số hiệu ngắt mới biết mình ngu.Chương trình trên đúng là không chạy được.Cảm ơn bác GSC nha.
Đây là code sau khi sữa!
#include <regx51.h>
unsigned char i;
unsigned char j;
int tg;
const unsigned char Font[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
unsigned char a[3]={0x01,0x02};
void tang()
{
i=i+1;
if (i==10)
{j=j+1;
i=0;
if (j==10) j=0;
};
}
void delay(unsigned int ms)
{
unsigned int k,l;
for (k=0;k<ms;k++)
for (l=0;l<120;l++)
{};
}
void main()
{while(1)
{
tg=121;
while(tg--)
{P3=a[0];
P2=Font[i];
delay(3);
P3=a[1];
P2=Font[j] ;//hi?n th? s? 1 trên led 1
delay(3);};
tang();
}
}
Khó nhất trên đời làm trang nam tử
Ý chí vững vàng mà tình cảm lại mênh mang
bác giáo sư cần cho mình hỏi một chút. mình lấy cái chương trình LCD của bác sử dụng nhưng mà mình không hiểu ở chổ, LCD có 8 đường dữ liệu, mình không biết khai báo thế nào, dùng Port nào, có phải dòng lệnh sfr LCDdata = 0x80;này không? như vậy nó dùng Port mấy, LCD của mình sử dụng Port0 để gửi dữ liệu đấy. xin bác vui lòng chỉ rõ cho mình, thanks!
Cảm ơn bạn. Mình hỏi để thợ có thể tham khảo thôi chứ không đủ kiển thức để sửa, mà cũng không có đồ nghề, mua đồ nghề quá tiền máy. Gọi nhiều lần mà thợ hẹn mãi chưa có tới ấy bạn. Mình muốn sửa được chứ bỏ thì uống, nhưng sợ là được mỗi người thợ mà lại không sửa nổi....
Dạ nó bị tắc ẩm hoặc rò thiếu gas hoặc lốc yếu hoặc van tiết lưu có vấn đề hoặc tất cả những nguyên nhân trên ạ. Chú ko chuyên về mảng này thì bán đi, giành thời gian trồng rau sạch đem ra chợ bán lấy tiền mua tủ mới ạ. Còn...
Xin chào mọi người. Mình lại có vấn đề về đồ điện cần nhờ mọi người hỗ trợ giúp. Mình có tủ lạnh Sharp dùng cũng lâu rồi. Trước có bị kém lạnh, không đông đá thì có thợ họ mang về, sục đường ga gì đó hết 900k và đã dùng...
Dạ nếu cứ nhất định ko cuộn cảm thì có thể dùng cầu H đảo pha và tụ nhân áp để tăng công suất sạc; giảm công suất sạc thì dùng điều tần FM nối tiếp qua tụ điện hạn dòng tùy ý theo tần số thay đổi. Hoặc chỉ đơn giản là...
Đấy, cái tôi thắc mắc là chỗ màu hồng ấy bạn, để áp vào cao chứ không bị sụt gần bằng áp pin thì rất cần cuộc cảm để làm điều đó. Tuy nhiên, trong công thức bác thớt dẫn không thấy mặt L, và một vài mạch MPPT tôi đã kiểm...
Dạ mạch sạc là 1 cục nguồn, nó sẽ điều chỉnh công suất đầu ra để có tổng trở bằng nội trở của pin ạ. Và cái cách nó chỉnh công suất đầu ra sẽ là dạng buck, boot. Đều cần đến cuộn cảm ạ. Tất nhiên chú thích thì có thể dùng dạng tuyến tính transistor để bù trừ nhưng mà nó đốt năng lượng vô ích ạ...
Tng trở R của tải (gồm pin và mạch sạc) trong công thức đó rõ ràng khống có L xuất hiện. Nếu tính các dây dẫn thì rất nhỏ, bỏ qua. Vì nội trở pin là rất nhỏ, có thể nói luôn lớn hơn nội trở solar, nên mạch MPPT sẽ hầu như luôn tính...
Chào bác. Đã là công thức phải tổng quát chứ, nó phải thể hiện cả quá trình, rối thì quá độ hay xác lập tính sau vì tùy điều kiện. Cũng như công thức tính diện tích chả hạn, phải là tích phân....
Dạ L nằm trong tổng trở tải R ấy ạ. Chứ ai lại dùng dạng tuyến tính thuần trở để bù cho tổng trở. Kiểu như nguồn xung khi chạy công suất khác nhau thì nó sẽ có tổng trở khác nhau ấy ạ...
Comment