![]() |
|
|
|
|
#1 | |
|
Đệ tử 2 túi
Tham gia ngày: Aug 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 45
: |
Trích:
Mình cũng đang làm đề tài ghi đọc thẻ nhớ MMC dùng PIC 16F877A qua chuẩn SPI. Nhưng ko rõ MMC nó cấu trúc bộ nhớ như thế nào? Bạn nào có thể hướng dẫn qua giúp mình về chuẩn ghi đọc dữ liệu trên thẻ MMC với? Hoặc có thể nêu ra các bước thực hiện lập trình ghi đọc trên MMC giúp mình với. Cảm ơn những gợi ý quý báu của các bạn ! |
|
|
|
|
|
|
#2 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
hỏi về câu lệnh
các bạn cho mình hỏi ý nghĩa của hai câu lenh sau là sao >Chân thành cảm ơn !
lcd_init(); lcd_putc('\f'); |
|
|
|
|
|
#3 | |
|
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 146
: |
Trích:
vd lcd_init() tức là gọi hàm void lcd_init(void){...} đây có lẽ là hàm khởi tạo cho lcd, còn hàm còn lại là hàm đẩy 1 ký tự (char) đi thôi.
__________________
mạch nạp - kit phát triển - linh kiện điện tử www.PNLabvn.com |
|
|
|
|
|
|
#4 |
|
Đệ tử 3 túi
Tham gia ngày: Jun 2010
Bài gửi: 57
: |
|
|
|
|
|
|
#5 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
vấn đề Code
Cho mình hỏi là sao đoạn code của anh Linh không có lệnh trisc và tại sao ở lệnh LCD_putcmd(0xC3):thì 0xC3 là vị trí thứ 4 của dòng thứ 2
#include <16f877a.h> #include <def_877a.h> #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=20000000) #include <lcd_lib_4bit.c> // Thu vien ham cho LCD void main() { trisa = 0xFF; trisb = 0x01; trisd = 0x00; LCD_init(); Printf(LCD_putchar," PICVIETNAM tut"); LCD_putcmd(0xC3); Printf(LCD_putchar," LCD 4bit "); } |
|
|
|
|
|
#6 | |
|
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 146
: |
Trích:
__________________
mạch nạp - kit phát triển - linh kiện điện tử www.PNLabvn.com thay đổi nội dung bởi: hopeman, 07-11-2008 lúc 09:41 AM. Lý do: nhầm số # |
|
|
|
|
|
|
#7 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
lcd_lib_4bit
Bạn cho mình hỏi là : khi mình viết một chương trình có dùng LCD thì cứ bê y nguyên code LCD4bit vào ,chỉ việc gắn chân cho phù hợp phải không bạn ?rồi mới viết thêm một số lệnh cho LCD theo bài của mình ?Cảm ơn bạn nhiều .
|
|
|
|
|
|
#8 |
|
Đệ tử 1 túi
Tham gia ngày: Jun 2008
Bài gửi: 19
: |
Code LCD4bit là một thư viện hàm được xây dựng sẵn tránh phải viết lại nhiều code trong các bài giao tiếp LCD mà thôi. Bạn cũng có thể xây dựng độc lập một hàm riêng ra một file.c nào đó hay trực tiếp ở code của mình. Nếu bạn include file LCD_lib_4bit.c thì phải gắn chân theo định nghĩa của file.
__________________
Tôi ơi đừng tuyệt vọng! |
|
|
|
|
|
#9 |
|
Nhập môn đệ tử
Tham gia ngày: Nov 2008
Bài gửi: 3
: |
Em tải CCS bản CCS-PCWHD4.065 về máy, cài đặt được nhưng không chạy được. Máy em cài win Vista, các anh có bản nào chạy trên vista không share cho em nhé, crack luôn nhé. Thanks
|
|
|
|
|
|
#10 |
|
Nhập môn đệ tử
Tham gia ngày: Aug 2008
Bài gửi: 1
: |
Mọi người ơi cho em hỏi, em mới học pic và đang code những bài đầu tiên dùng C với chương trình MPLAB. Em type theo đoạn code nhấp nháy led của anh Linh mà khi compile thấy báo lỗi TRISB và PORTB chưa được khai báo, khi em cho dấu chú thích vào thì compile mới thành công?
Vậy 2 biến TRISB và PORTB có cần khai báo j không? edit: Em đã thử bằng cách khác, cho dòng #include<defs_16f877a.h> vào sau dấu // và có khai báo hai biến TRISB, PORTB kiểu int16 thì dịch thành công. Nhưng em vẫn chưa hiểu, muốn khai báo TRISB và PORTB thì phải làm ra sao? Còn file defs_16f877a.h thì có cần thiết khi mình dùng mạch nạp thật để test bài tutorial đầu tiên này k? edit1: Lên mạng kiếm được file def_877a.h rồi thì em cho vào device rồi include vào chương trình. Bỏ dòng khai báo TRISB và PORTB ( tự viết để xem chạy thế nào ) đi thì build success. thay đổi nội dung bởi: khucthuydu1, 11-11-2008 lúc 10:20 PM. |
|
|
|
|
|
#11 |
|
Nhập môn đệ tử
Tham gia ngày: Mar 2009
Bài gửi: 5
: |
Mọi người cho em hỏi:
Em viết thử ct ADC nhưng cứ báo lỗi thế này: " can't change device type this far in to the code" và con trỏ nằm ở dòng này: #device *=16 ADC=8 Mong nhận được giúp đỡ sớm! Thanks trước nha. |
|
|
|
|
|
#12 | |
|
Nhập môn đệ tử
Tham gia ngày: Oct 2008
Bài gửi: 5
: |
cứu em với
Trích:
em viết chương trình này sao không mô phỏng bằng proteus được trả lời giúp em sớm nhé thanks #include<16f877a.h> #fuses NOWDT,PUT,HS,NOPROTECT #device PIC16f877a*=16 ADC=10 #use delay(clock=4000000) #include <lcd.c> #byte portb=0x06 #byte portd=0x08 #bit b0=portb.0 #bit b1=portb.1 #bit b2=portb.2 #bit b3=portb.3 #bit b4=portb.4 #bit b5=portb.5 #bit b6=portb.6 #bit b7=portb.7 #int_rb void docphim() { if(b0&&b4) lcd_putc("giang"); if(b1&&b4) lcd_putc("hoang"); if(b2&&b4) lcd_putc("k9a"); if(b3&&b4) lcd_putc(" "); if(b0&&b5) lcd_putc("hoang"); if(b1&&b5) lcd_putc("giang"); }//end int void main(void) { set_tris_b(0xf0); set_tris_d(0x00); enable_interrupts(INT_RB); enable_interrupts(GLOBAL); ext_int_edge(H_to_L); { portb=1; portb=2; portb=4; portb=8; lcd_putc("hoang giang !!!"); delay_ms(100); lcd_putc("\f"); } while(true);} |
|
|
|
|
|
|
#13 | |
|
Nhập môn đệ tử
Tham gia ngày: Jun 2008
Bài gửi: 10
: |
Trích:
Bạn xem lại khai báo ban đầu vì chắc bạn đã khai báo #device *=16 ADC=8 sau khi khai báo #fuses và #use ![]() |
|
|
|
|
|
|
#14 |
|
Đệ tử 3 túi
Tham gia ngày: Feb 2009
Bài gửi: 47
: |
- Ko nhất thiết phải dùng cả hàm ngắt ở bài toán này, mình muốn Em_ku tự viết lại bài đó theo cách khác nhưng ko biết hắn biến đâu mất. Và code của Em_ku hoàn toàn có thể giữ nguyên chỉ sửa vài chỗ thôi là có thể chạy đúng.
- Như mình phân tích ở trên thì khi i==0 timer0 đã bị tràn rồi và cờ TMR0IF khi đó đã bằng 1, nhưng mà vấn đề là ở chỗ mỗi khi i tăng lên thì quá trình phải lặp lại như vậy (phải lặp lại thì mới đảm bảo trễ đúng 1s như đã tính toán) thế thì mỗi lần i nhận đc một giá trị thì timer0 phải tràn rồi đếm lại từ đầu một lần. Vậy chỉ cần đặt cụm Code:
TMR0IF=0; setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_16); set_timer0 (6); Code:
for (i=0;i<=so;i++) |
|
|
|
|
|
#15 |
|
Nhập môn đệ tử
Tham gia ngày: Jun 2008
Bài gửi: 10
: |
Hi !!!
Tôi cũng chẳng bít hẳn biến đâu mà mất tiêu Nhưng anh em mình chỉ mún nói 1 chút về Timer0 thui Còn đơn giản nhất thì anh em mình vẫn có thể dùng Delay_ms() mà ![]() |
|
|
|
![]() |
|
|
Similar Threads
|
||||
| Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
| dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 92 | 19-02-2017 11:15 PM |
| dsPIC Tutorial 2-Các kỹ thuật cơ bản | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 33 | 17-10-2013 11:09 PM |
| dsPIC Tutorial 4-Module UART và I2C | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 76 | 09-05-2012 10:55 AM |
| Tutorial LCD cua Nigel??????? | spirit | Cơ bản về vi điều khiển và PIC | 16 | 16-03-2009 05:32 PM |
| tutorial hay cho newbie | FUD84 | Cơ bản về vi điều khiển và PIC | 2 | 04-12-2005 02:29 AM |