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 FotiniChào mọi người.
Cấu trúc khung giàn của tôi sử dụng một động cơ servo tích hợp trên mỗi trục (https://www.oyostepper.es/category-8...integrado.html), với một dây nối đất chung.
Việc kích hoạt từng trục riêng lẻ hoạt động tốt, nhưng...-
Channel: Điện tử dành cho người mới bắt đầu
18-06-2026, 14:03 -
-
Trả lời cho Cấu hình chiến game "quốc dân" cho nền tảng AM5: Lựa chọn tối ưu ngân sách với Ryzen 5 7500Fbởi kumarbrMình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 15:49 -
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:09 -
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -

Comment