![]() |
![]() |
#226 |
Nhập môn đệ tử
Tham gia ngày: Jun 2007
Bài gửi: 6
: |
Tuyệt vời, cảm ơn các bác nhiều lắm. Cảm ơn bác nhh đã khởi xướng ra chuyên mục này để anh em có cơ hội trao đổi kinh nghiệm, học hỏi.
|
![]() |
![]() |
#227 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
thay dổi tốc độ LED ngoài
Trích:
em viết lại bài này ,thông báo không có lỗi gì,nhưng khi mô phỏng proteus thì không nhấp nháy dc.các bác kiểm tra hộ em phát //thay doi toc do nhap nhay LED theo cac bit vao RB4-RB7 //RB0-RB3 bit ra //khai bao cong vao ra #use fast_io(b) #byte portb = 0x06 #byte intcon = 0x000B #bit RB4 = portB.4 #bit RB5 = portB.5 #bit RB6 = portB.6 #bit RB7 = portB.7 #bit RBIF = intcon.0 //dinh nghia ham ngat RB #bit RBIE = intcon.3 //dinh nghia bit ngat RB int LED = 0,speed; //tao ham ngat #int_ext void ngat_RB(){ IF((RBIE)&&(RBIF)){ if(RB4==0){ LED = 0x01;//den 1 sang speed = 500; } if(RB5==0){ LED = 0x03;//den 1 va 2 sang speed = 300; } if(RB6==0){ LED = 0x07;//den 1 2 3 sang speed = 200; } if(RB7 ==0){ LED = 0x0f; speed = 50; } RBIF = 0; } } //ham chinh void main(){ set_tris_b(0b11110000); //dinh nghia cong vao ra portb = 0x00; //bit cao thap enable_interrupts(int_ext); ext_int_edge(H_to_L); enable_interrupts(global); while(true){ portB = LED; delay_ms(speed); portB = 0; delay_ms(speed); } } |
|
![]() |
![]() |
#228 |
Nhập môn đệ tử
Tham gia ngày: Mar 2006
Bài gửi: 3
: |
Ghi và đọc bộ nhớ ngoài
Đây là đoạn chương trình có chức năng đọc giá trị ADC, sau đó ghi vào RAM ngoài, rồi đọc từ RAM ngoài để xử lí.
Có một vấn đề là khi tôi xóa dòng output_high( PIN_D7 ); ở cuối hàm if thì các hàm này không thực thi được. Bác nào biết xin chỉ giúp tại sao. |
![]() |
![]() |
#229 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
Trích:
portb=2; portb=4; portb=8; portc=a; lệnh gán này không biết có ý nghĩa gì nhỉ? thank! |
|
![]() |
![]() |
#230 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
mình đánh lại chương trình trên ,CCS thông báo không có lỗi gì nhưng khi mô phỏng không chạy được.
mong mọi người tìm ra chỗ sai hộ mình! thank! Code:
#include "C:\Documents and Settings\Administrator\Desktop\thu\giai ma ban phim\giai ma ban phim.h" #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=4000000) //giai ma ban phim #use fast_io(b) #use fast_io(c) #byte portb = 0x06 #byte portc = 0x07 #byte intcon = 0x000B #bit RB0 = portB.0 #bit RB1 = portB.1 #bit RB2 = portB.2 #bit RB3 = portB.3 #bit RB4 = portB.4 #bit RB5 = portB.5 #bit RB6 = portB.6 #bit RB7 = portB.7 #bit RBIF = intcon.0 //dinh nghia ham ngat cong RB #bit RBIE = intcon.3 //dinh nghia bit ngat RB int a; const unsigned char digital[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f\ 0x77,0x7c,0x39,0x5e,0x79,0x71}; //tao ham ngat #int_ext void ngat_RB(){ IF((RBIF)&&(RBIE)){ if(RB4&&RB0) { a = digital[0];} if(RB5&&RB0) {a = digital[1];} if(RB6&&RB0) { a = digital[2];} if(RB7&&RB0) {a = digital[3];} //// if(RB4&&RB1) { a = digital[4];} if(RB5&&RB1) {a = digital[5];} if(RB6&&RB1) {a = digital[6];} if(RB7&&RB1) {a = digital[7];} //// if(RB4&&RB2) {a = digital[8];} if(RB5&&RB2) {a = digital[9];} if(RB6&&RB2) {a = digital[10];} if(RB7&&RB2) {a = digital[11];} RBIF =0; //xoa co ngat } } //tao ham chinh void main(){ set_tris_b(0xf0); set_tris_c(0x00); portb = 0; portc = 0; enable_interrupts(int_ext); //ngat toan bo ext_int_edge(H_to_L); enable_interrupts(global); while(true){ portb = 1; portb = 2; portb = 4; portb = 8; portc = a; } } thay đổi nội dung bởi: falleaf, 29-06-2007 lúc 03:20 PM. |
![]() |
![]() |
#231 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
#232 | |
Đệ tử 9 túi
|
Trích:
http://www.picvietnam.com/forum/showthread.php?t=839 |
|
![]() |
![]() |
#233 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
cam on anh rất nhiều !
|
![]() |
![]() |
#234 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
anh có thể nói rõ hơn được không a? số: 1,2,4,6,8 nó mặc định cho cổng đấy a?
|
![]() |
![]() |
#235 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
dịch
tui dốt tiếng anh quá, mọi người có thể dịch những từ dưới ra tiếng việt được ko? thanhk!
#FUSES NOWDT #FUSES XT #FUSES NOPUT #FUSES NOPROTECT #FUSES BROWNOUT #FUSES LVP #FUSES NOCPD #FUSES NOWRT #FUSES NODEBUG |
![]() |
![]() |
#236 | |
Trưởng lão PIC bang
|
Trích:
- Xuất 2 ra PORTA thì chỉ có bit 1 (tức là chân RA1) ở mức 1, các bit (chân) khác là 0. - Xuất 4 ra PORTA thì chỉ có bit 2 (tức là chân RA2) ở mức 1, các bit (chân) khác là 0. - Xuất 8 ra PORTA thì chỉ có bit 3 (tức là chân RA3) ở mức 1, các bit (chân) khác là 0. Bạn nhìn vào sơ đồ mạch của nhh sẽ thấy các chân RA0 .. RA3 nối với các cột của bàn phím. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
#237 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
cám ơn anh lần nữa nha
anh có thể dịch cho em masy nghĩa của từ trên kia được ko ạ. |
![]() |
![]() |
#238 | |
Trưởng lão PIC bang
|
Trích:
NOWDT - Không dùng watchdog timer (cái này không nên dịch ra) XT - Dùng mức XT (mức công suất trung bình) cho bộ dao động với thạch anh ngoài NOPUT - Không dùng power up timer (làm trễ khi bật nguồn) NOPROTECT - Không bảo vệ code (không cấm đọc nội dung flash) BROWNOUT - Dùng chức năng bảo vệ chống thấp áp LVP - Cho phép chế độ nạp chương trình ở điện áp thấp NOCPD - Không bảo vệ EEPROM dữ liệu (không cấm đọc nội dung EEPROM) NOWRT - Không cấm ghi vào flash NODEBUG - Không dành riêng các chân RB6 và RB7 cho debug Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
#239 |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 65
: |
![]() Đây là chưong trinh :
Code:
#include <16F877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #device 16F877*=16 ADC=8 #use delay(clock=10000000) #use fast_io(b) int8 adc; main() {set_tris_b(0); setup_adc(adc_clock_internal); setup_adc_ports(AN0); set_adc_channel(0); delay_ms(10); while(true) { adc=read_adc(); output_B(adc); } } ![]() sau khi chạy thì tất cả các led đều sáng.Em không hiểu tại sao. Do sai ở mạch hay do chương trình. ![]() Có bác nào giúp em với |
![]() |
![]() |
#240 |
Đệ tử 9 túi
|
![]() Giữa biến trở và tụ C5 của bạn cần kéo xuống đất, nếu ko ngõ ra biến trở luôn ở mức cao 5V nên portB của bạn 8 đèn luôn sáng. Thành thật cáo lỗi vì nhầm lẫn ngớ ngẩn này! |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |