PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-11-2008, 12:54 AM   #1
nbb3i
Đệ tử 2 túi
 
Tham gia ngày: Aug 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 45
:
Trích:
Nguyên văn bởi nguyenquoctoan View Post
ccs phiên bản 4.0 cả tài liệu học ccs tiếng việt đây
tài liệu hướng dẫn protues lun
http://www.mediafire.com/?sharekey=3...eb367ee4828c31
các sư huynh dowload đi
Link này có file nào đâu?
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!
nbb3i vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 01:02 AM   #2
dientudong
Đệ 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');
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 09:03 AM   #3
hopeman
Đệ tử 6 túi
 
hopeman's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 146
:
Trích:
Nguyên văn bởi dientudong View Post
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');
cả hai lệnh này đều là lệnh gọi hàm thôi bạn ơi
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
hopeman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2010, 09:45 PM   #4
manhdktd
Đệ tử 3 túi
 
manhdktd's Avatar
 
Tham gia ngày: Jun 2010
Bài gửi: 57
:
Trích:
Nguyên văn bởi hopeman View Post
cả hai lệnh này đều là lệnh gọi hàm thôi bạn ơi
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.
cld_putc('\f')
là lệnh xóa màn hình
manhdktd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 01:19 AM   #5
dientudong
Đệ 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 ");
}
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 09:40 AM   #6
hopeman
Đệ tử 6 túi
 
hopeman's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 146
:
Trích:
Nguyên văn bởi dientudong View Post
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 ");
}
bạn nên vào #3 của topic này down file đính kèm về, giải nén và đọc kỹ lại file lcd_lib_4bit.c xem sao nhé.
__________________
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ố #
hopeman vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-11-2008, 01:39 PM   #7
dientudong
Đệ 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 .
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-11-2008, 01:05 AM   #8
vuvulinh_8x
Đệ tử 1 túi
 
vuvulinh_8x's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 19
:
Trích:
Nguyên văn bởi dientudong View Post
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 .
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!
vuvulinh_8x vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-11-2008, 12:17 PM   #9
tv-vaa
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
tv-vaa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-11-2008, 09:41 PM   #10
khucthuydu1
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.
khucthuydu1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-03-2009, 04:21 PM   #11
badungdtk3
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.
badungdtk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-04-2009, 05:32 PM   #12
quyenk9a
Nhập môn đệ tử
 
Tham gia ngày: Oct 2008
Bài gửi: 5
:
cứu em với

Trích:
Nguyên văn bởi FFGmember View Post
Đã lâu lâu không đóng góp cho PIC Việt Nam gì rồi. Đợt này tự nhiên công việc liên quan đến PIC, yêu cầu đến việc sử dụng SPI, nhào zô luôn cho việc học CCS. Mong mỏi đóng góp chút gì đó cho tất cả mọi ngưòi.


1. Mục tiêu của việc học CCS:
• Sử dụng được CCS programmer
• Ứng dụng được chương trình hiển thị LCD
• Ứng dụng được chương trình kết nối SPI với EEPROM và MMC card. hiển thị các thông số lên LCD .


2. Nguồn tài liệu và công cụ làm việc:
• Theo tutorial của Linhnc308: http://www.picvietnam.com/forum//att...6&d=1157644591
• Chương trình CCS: down load ban CCS3.249.rar. http://www.tailieuvietnam.net/downlo...CCSC_3.249.rar
• Chương trình Proteus. 6.7
////////////////////////
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);}
quyenk9a vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-09-2009, 11:04 PM   #13
letrongdtk4
Nhập môn đệ tử
 
Tham gia ngày: Jun 2008
Bài gửi: 10
:
Trích:
Nguyên văn bởi badungdtk3
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.

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
letrongdtk4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-09-2009, 09:39 AM   #14
nhamdtk4
Đệ tử 3 túi
 
nhamdtk4's Avatar
 
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);
vào trong vòng lặp
Code:
for (i=0;i<=so;i++)
của bạn là xong thôi mà.
nhamdtk4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-09-2009, 09:02 PM   #15
letrongdtk4
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à
letrongdtk4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

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


Múi giờ GMT. Hiện tại là 02:41 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam