![]() |
[HELP] Hiển thị từ 0-9 (LED 7 thanh) sử dụng VĐK 16F877A
Thực sự là hết cách rồi em mới phải viết bài này, mong các pro ra tay *cứu giúp*. Chả là mai em phải nộp bài báo cáo về:
-Thiết kế mạch mô phỏng -Viết chương trình mô phỏng hiển thị các số 0,1,...,9 trên Led 7 thanh sử dụng VĐK 16F877A Và tình hình là. .nghiên cứu cũng lâu rồi, mà sự hiểu biết thì có hạn, thời gian thì lại gấp rút quá. Ai giúp em với. . Cho em cái mạch Protues + với cái code trên CCS. . Em cảm ơn rất nhiều ạ |
Trích:
code nè #include <16f877a.h> #fuses HS,NOWDT #use delay(clock=12000000) int8 led7[]={0xc0,0x9f,0xa4......},i,so; //gì nữa kô nhớ lắm, bạn tự tính nhé các số từ 0 đến 9 void main() { set_tris_b(0); while(1) { for(i=0;i<10;i++) { output_b(led[i]); delay_ms(500); } } } |
Trích:
|
Trích:
|
mình cũng đang bắt đầu học môn vi điều khiển, nhưng xem ra môn này khó học quá. muốn học mà không biết bắt đầu từ đâu. mọi người cho mình hỏi muốn hiểu về con pic 16f84 thì đọc những gì, các phần để viết 1 chương trình code như thế nào? thank các ban nhiều.
|
Vi điều khiển thực ra rất dễ với những ứng dụng thông thường!,..dân trung cấp là có thể lập trình và ứng dụng vi điều khiển, gọi là "dạy nghề" đó!!.
Nhưng vấn đề là bạn không biết đi từ đâu và tạo thành một mạch thực tế như thế nào,..thế thì lại rất rắc rối!.. Tốt hơn hết là kiếm một người bạn đã học và làm mạch thật,..trong vòng vài chục phút bạn sẽ gỡ được những cái thắc mắc...còn cái việc hiểu sâu về vấn đề và "sáng kiến" những cái mới thì đòi hỏi một thời gian dài và sự thông minh của bạn!!... PIC tốt hơn là bắt đầu từ 16F877A vì con này cơ bản đã đầy đủ các "sọt" code và những ứng dụng mẫu cơ bản,..cầu nối giữa Pic đời mới và Pic đời cũ!!!.. |
Trích:
|
nhân tiện đây cho mình hỏi, giao tiếp cảm biến siêu âm srf05 dùng 18f4431. Mình viết code nhưng không rõ sai ở chỗ nào.
#include <18f4431.h> #fuses HS,NOWDT,NOLVP,NOPROTECT,NOPUT,NODEBUG #use delay(clock=12000000) int8 a,b,c,led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0},tram,chuc,dv,i,j,k; float s,kc; int16 time; #define rc6 pin_C6 #INT_TIMER0 void trantimer1() { set_timer1(0); } #INT_EXT1 void ngatngoai1() { set_timer1(0); } void ngatngoai2() { time=get_timer1(); kc=(time*4*4)/(12*58);// cong thuc nay da dung chua????????????????????????????????? } void hienthi() { if(kc>=100) { dv=9; chuc=9; tram=9; } else { dv=(int8)kc%10; chuc=(int8)(kc/10)%10; tram=(int8)(kc/100)%10; } output_b(led[dv]); } void trigger() { output_high(Pin_C6); delay_us(12); output_low(Pin_C6); } void main() { set_tris_b(0); set_tris_c(0); enable_interrupts(INT_EXT1); enable_interrupts(INT_EXT2); enable_interrupts(INT_TIMER0); setup_timer_1(T1_INTERNAL|T1_DIV_BY_4); EXT_INT_EDGE(1,L_TO_H); EXT_INT_EDGE(2,H_TO_L); enable_interrupts(global); while(1) { trigger(); delay_ms(50); } } |
Code:
#include <16f877a.h> Sao mình chạy trên CCS nó lại báo lỗi: http://i1236.photobucket.com/albums/...ps39960fcd.png |
Trích:
Nếu bạn có mạch thật, bạn cứ nạp cho chạy, thay đổi thời gian delay lâu hơn,..cỡ 1-2 giây,..để xem có đúng mã led 7 đoạn hay không!?. Tốt hơn là dùng protues mô phỏng đi!. |
Múi giờ GMT. Hiện tại là 05:55 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam