giúp mình với, mình đang học môn Vi điều khiển mà chả hiểu gì, sắp phải bảo vệ rồi, ai có code & proteus giúp mình với, thank mọi người nhiều nhiều!!
Thông báo
Collapse
No announcement yet.
Mạch đo tần số hiển thị trên màn máy tính
Collapse
X
-
đo tần số thực chất là đếm xung thôi, bạn dùng ngắt ngoài để thực hiện việc nayf và so sánh vs timer 1s=> sẽ được tần số xung, còn việc giao tiếp vs máy tính cũng hoàn toàn ko khó, đọc kỹ UART của 89 là làm được thôi.
Chúc bạn thành công.Nguyễn Huy Biên - 01649 802 694
gmail :
Comment
-
cái này cũng không phải là đơn giản với người mới học. nhưng nếu làm thì nên cho vào ngắt ngài của vi điều khiển sau đó đếm số xung trong 1s rồi gửi qua UART lên máy tính dùng MAX232 nhé.nếu ở Hà Nội rảnh qua chỗ mình chỉ cho.Nguyên văn bởi khanh1029 Xem bài viếtgiúp mình với, mình đang học môn Vi điều khiển mà chả hiểu gì, sắp phải bảo vệ rồi, ai có code & proteus giúp mình với, thank mọi người nhiều nhiều!!Never forget who you are!
Comment
-
bó tay...bây giờ cái gì nó cũng như mì tôm ấy.
làm đi. có gì k hiểu mọi người giúp.
nó đếm xung = ngắt ngoài vi nó nhanh hơn so với việc viết code đếm xung ở chân port
đếm thì gửi ra LPT or RS232 thôi
cái này muốn mô phỏng Proteus thì phải có thêm phần mềm Terminal tạo cổng COM or LPT ảo thì mới mô phỏng được
Comment
-
mình dùng pic
đã test xong mạch đo tần số , chạy ok , thank mọi người , hiện tại mình muốn giao tiếp máy tính qua cổng rs232 , dùng c#
nhấn start , đưa giá trị tần số đo được hiển thị trên textbox , theo mình hiểu khi nhấn start , cho phép gởi 1 kí tự đến pic, khi pic nhận đc thì truyền dữ liệu lên máy tính
đây là code của mình , trong case '1' mình cần viết ntn để truyền đc dl . mong mọi ng giúp đỡ
#include <main.h>
#include <var.h>
#include <lcd16x2\lcd_16x2.c>
#INT_RDA // ngat nhan du lieu tu may tinh
void ngat_noitiep()
{
char kitu;
kitu=getc();
switch(kitu)
{
case '0': //xoa man hinh LCD
{
LCD_Clear();
break;
}
case '1':// truyen len may tinh gia tri do duoc
{
.....
}
}
}
#INT_EXT
void dem_xung() // Trinh phuc vu ngat ngoai
{
so_xung+=1;
}
#INT_TIMER1
void tao_tre_1s() // Trinh phuc vu ngat tran TIMER1
{
setup_timer_1(T1_DISABLED);
count_t1++;
if(count_t1==39) // Tao khoang thoi gian 1s
{
tan_so = so_xung;
so_xung = 0;
count_t1 = 0;
enable_display = 1;
}
set_timer1(1434);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);
}
void locso(unsigned int16 so)
{
tp=so%10+48;
so=so/10;
dv=so%10+48;
so=so/10;
ch=so%10+48;
}
void main()
{
DDRD = DDROUT;
DDRE = DDROUT;
enable_interrupts(int_rda); //cho phep ngat noi tiep nhan
enable_interrupts(INT_TIMER1); // Cho phep ngat tran TIMER1
ext_int_edge(H_TO_L); // Cau hinh ngat ngoai theo canh xuong
enable_interrupts(INT_EXT); // Cho phep ngat ngoai
enable_interrupts(GLOBAL); // Cho phep ngat toan cuc
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2); // Cau hinh bo chia cho TIMER1
set_timer1(1434); // Cau hinh gia tri cho thanh ghi TMR1
LCD_Init();
LCD_Clear();
LCD_Gotoxy(0,0);
sprintf(lcd_buff,"DO_AM_MOI_TRUONG");
LCD_Puts(lcd_buff);
while(TRUE)
{
if(enable_display)
{
if(tan_so<5000)
{
DO_AM=0;
LCD_Gotoxy(0,1);
sprintf(lcd_buff,"GIA TRI BI LOI: %10luHz",DO_AM);// cái này không dùng
LCD_Puts(lcd_buff);
enable_display = 0;
}
else if(5000<=tan_so<=10000)
{
tam=(tan_so-5000)/5;
locso(tam);
command_write(0xc0);
data_write('G');
data_write('I');
data_write('A');
data_write(' ');
data_write('T');
data_write('R');
data_write('I');
data_write(':');
data_write(' ');
data_write(' ');
data_write(' ');
data_write(ch);
data_write(dv);
data_write('.');
data_write(tp);
data_write('%');
}
}
}
}
Comment
Bài viết mới nhất
Collapse
-
bởi chinhnguyen9Công thức
Gain (dB) = 20 × log₁₀(A)
Thí dụ 1; 60dB
log₁₀(A)=60/20=3
⇒ A=V_out / V_in = 10³ = 1.000
Thí dụ 2; 100dB
log₁₀(A)=100/20=5
⇒ A=V_out / V_in = 105 = 100.000
Tí dụ 3; LM 358
Large Signal Open Loop Voltage Gain AVOL V/mV RL = 2.0...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 08:44 -
-
Trả lời cho Mạch 3s bị giảm điện áp đầu rabởi minhtri0405chả biết bạn xử lý được chưa , kích sạc hoặc điện áp > điện áp khối pin vào 2 chân P - P+ , nhiều mạch phải yêu cầu có kích lần đầu sau đó mới chạy...
-
Channel: Điện tử dành cho người mới bắt đầu
18-03-2026, 10:01 -
-
bởi minhtri0405đây có phải là 1 cách để test mosfet xịn hay dỏm khi mua đồ tàu không nhỉ , vì ko thể đập ra để coi lõi rồi trả hàng được....
-
Channel: Tâm tình dân kỹ thuật
18-03-2026, 09:57 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:05 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi Tuyenvc345
-
Channel: Hỗ trợ học tập
16-03-2026, 18:04 -
-
bởi bqvietDiễn đàn vốn vắng, muốn vào viết bài trả lời chút nhưng cứ thấy luồng nào thành viên này mở thì cũng đồng thời xuất hiện ở Otofun, thế là chùn tay ... Thôi thì dientuvietnam không thể so sánh được về độ phổ cập, biết thân biết phận vậy.
-
Channel: Tâm tình dân kỹ thuật
16-03-2026, 17:49 -
-
bởi chinhnguyen9So sánh sóng 2 mạch nguồn Push-pull
· Sóng vuông giửa 2 cực D của mạch Pushpull trong module inverter 24-220V sine giả của TQ. Mạh điện này khá đặc biêt ở chổ, không thấy mạch snubber mà hiêu quả triêt sóng hài quá tốt dù hoạt...-
Channel: Nguồn!
16-03-2026, 14:27 -
-
bởi chinhnguyen9Mạch điên bếp tù gộm 2 khối:
Khối điêu khiển:
-Thiết lập công suất nấu
-Thiết lập thời gian nấu
-Kiểm tra có đặt nồi hay không, đúng loại hay không?
-Có quá nhiệt không?
Khối công suất:
- Nắn+ lọc điên AC ra 310VDC +loọc nhiểu...-
Channel: Hướng dẫn sử dụng diễn đàn
16-03-2026, 14:05 -

Comment