PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và 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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 25-09-2010, 11:56 AM   #16
vinh2809
Đệ tử 1 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 13
:
Trích:
Nguyên văn bởi caovanhuong View Post
bạn phải có cái file này và bỏ chung vào một thư mục mà bạn lưu dự án thì mới được.
<def_887.h> là file do người dùng tự định nghĩa có đúng không? Có 1 vài bài nói là tìm được file này trên diễn đàn nhưng em ko tìm thấy. Mấy file đó lấy ở đâu vậy anh
vinh2809 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-09-2010, 08:35 PM   #17
caovanhuong
Đệ tử 2 túi
 
caovanhuong's Avatar
 
Tham gia ngày: Jul 2009
Bài gửi: 40
:
Trích:
Nguyên văn bởi vinh2809 View Post
<def_887.h> là file do người dùng tự định nghĩa có đúng không? Có 1 vài bài nói là tìm được file này trên diễn đàn nhưng em ko tìm thấy. Mấy file đó lấy ở đâu vậy anh
đây là file Def_877A
File Kèm Theo
File Type: rar def_877a.rar (933 Bytes, 78 lần tải)
__________________
Cao Văn Hưởng
SĐT: 01672754113
Email: caovanhuong@webdien.com
Nhận thiết kế mạch điện tử, PCB (Orcad)

caovanhuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-09-2010, 10:02 PM   #18
vinh2809
Đệ tử 1 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 13
:
Trích:
Nguyên văn bởi caovanhuong View Post
đây là file Def_877A
À vậy xin hỏi luôn các file def của các con khác ví dụ 18f4550 thì ở đâu vậy? Nếu không có mà tự ngồi định nghĩa lại thì hơi ngại.
Nhân tiện hỏi luôn, bác biết chỉ giùm em các file .h cũng tự sửa được phải không và nếu sửa thì khi làm cũng chỉ cần làm theo cái mình đã sửa.
Ví dụ file 16F887.h của em thấy khai báo #define sAN0 1 // A0, nếu dùng theo các ví dụ AN0 thì lại báo lỗi => sửa thành #define AN0 1 // A0 sau dùng AN0 thôi vẫn được chứ
vinh2809 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-09-2010, 05:30 PM   #19
nhat_minh1
Nhập môn đệ tử
 
Tham gia ngày: Sep 2010
Bài gửi: 8
:
su dung port nào thi khai báo ,
nhat_minh1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-09-2010, 05:35 PM   #20
hcmut.khoamaisi
Đệ tử 4 túi
 
hcmut.khoamaisi's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TPHCM
Bài gửi: 79
:
Send a message via Yahoo to hcmut.khoamaisi
Mình đã hiểu rồi khi có khai báo
#use fast_io(b)
thì không dùng :#include <def_877a.h> được
mà buộc phải khai báo địa chỉ của portB cu thể là
#byte portb=0x06 // phải khai báo địa chỉ port B nếu dùng fast_io(b)
hcmut.khoamaisi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-09-2010, 09:44 PM   #21
caovanhuong
Đệ tử 2 túi
 
caovanhuong's Avatar
 
Tham gia ngày: Jul 2009
Bài gửi: 40
:
Trích:
Nguyên văn bởi hcmut.khoamaisi View Post
Mình đã hiểu rồi khi có khai báo
#use fast_io(b)
thì không dùng :#include <def_877a.h> được
mà buộc phải khai báo địa chỉ của portB cu thể là
#byte portb=0x06 // phải khai báo địa chỉ port B nếu dùng fast_io(b)
không đúng, nếu mà không khai báo file def_877a.h thì mới phải định nghĩa các chân và các thanh ghi và vẫn có thể sử dụng #use fast_io(portx). còn khi khái báo file trên thì vẫn khai báo được #use fast_io(portx). trong chương trình không khai báo #use fast_io(portx) thì chương trình vẫn chạy tốt nhưng trong 1 vài trường hợp thì khai báo nó thì chương trình sẽ chạy nhanh hơn.
__________________
Cao Văn Hưởng
SĐT: 01672754113
Email: caovanhuong@webdien.com
Nhận thiết kế mạch điện tử, PCB (Orcad)

caovanhuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-09-2010, 11:27 PM   #22
hoantien05
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 6
:
để xuất ra từng bit trong CCS thì dùng lênh output_low(), output_high(), tuy nhien trong wa trình viêt em không muốn ghi tên các bit ( vi dụ output_high(pin_b0)) mà em muốn dạt ten nó thì phải làm sao???
hoantien05 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-09-2010, 12:36 AM   #23
vinh2809
Đệ tử 1 túi
 
Tham gia ngày: Mar 2009
Bài gửi: 13
:
Trích:
Nguyên văn bởi hoantien05 View Post
để xuất ra từng bit trong CCS thì dùng lênh output_low(), output_high(), tuy nhien trong wa trình viêt em không muốn ghi tên các bit ( vi dụ output_high(pin_b0)) mà em muốn dạt ten nó thì phải làm sao???
khai báo ở đầu chương trình #bit id = x.y id là tên biến, x là vị trí byte, y là vị trí bit => xuất giá trị = giá trị cho biến
vinh2809 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-09-2010, 12:38 AM   #24
caovanhuong
Đệ tử 2 túi
 
caovanhuong's Avatar
 
Tham gia ngày: Jul 2009
Bài gửi: 40
:
Trích:
Nguyên văn bởi hoantien05 View Post
để xuất ra từng bit trong CCS thì dùng lênh output_low(), output_high(), tuy nhien trong wa trình viêt em không muốn ghi tên các bit ( vi dụ output_high(pin_b0)) mà em muốn dạt ten nó thì phải làm sao???
nếu bạn đã sử dụng khai báo file def_877a.h (vi1 dụ là con PIC6F877a) thì nó đã định nghĩa sẵn cho bạn chân I/O ví dụ bạn muốn xuất chân RB3 ra mức 1 thì bạn chỉ cần ghi là RB3=1;
và các chân khác cũng tương tự như RB0 đến RB7, RA0-RA7 và các port C, D và E. còn nếu không sử dụng file def_xxx thì bạn phải định nghĩa chân cho nó bằng hàm #bit tenbien=port.x (x này là vị trí chân) chẳng hạn là #bit RB3=portb.3 thì có nghĩa là bạn định nghĩa chân RB3 là portb3
__________________
Cao Văn Hưởng
SĐT: 01672754113
Email: caovanhuong@webdien.com
Nhận thiết kế mạch điện tử, PCB (Orcad)

caovanhuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-04-2015, 11:37 PM   #25
ichitea606
Đệ tử 2 túi
 
Tham gia ngày: Nov 2010
Bài gửi: 26
:
#include <16F877A.h>
#include <def_16f877a.h>
#fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
#use delay(clock=12000000)
#USE FAST_IO(A)
#USE FAST_IO(B)

#byte portb=0x05
#byte portb=0x06


unsigned char macot[]={255, 255, 255, 255, 255,
255, 254, 224, 254, 255,
255, 224, 251, 251, 224,
255, 224, 255, 255, 255,
255, 255, 255, 224, 234,
238, 255, 224, 252, 251,
247, 224, 255, 255, 255,
255, 255, 255, 255, 255, };


int8 i,m,k,j;

//**************************chuong trinh chinh**********************************
void main()
{
//ADC_OFF;

set_tris_b(0);
set_tris_a(0);
delay_ms(100);
enable_interrupts(int_timer0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
enable_interrupts(global);
set_timer0(6);// T_dinhthi = 2*(256 - 6)*1us = 500us

j=0x01;

while(true)
{
//********************************PHUT************** *****************

for(m=0;m<35;m++)
{
for(k=0;k<90;k++)
{
j=0x01;

for(i=0;i<5;i++)
{
portb=macot[i+m];
delay_ms(1);
porta=(j&(0x3f)); //porta=01 0000 0011 1111
j=j<1;
}
porta=0;
}
}



}
}

code của em như thế này mà nó cứ báo là chưa khai bào porta là sao các bác? mong các bác chỉ giúp.
ichitea606 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-04-2015, 01:35 PM   #26
khanhtanvn88
Nhập môn đệ tử
 
Tham gia ngày: May 2012
Bài gửi: 3
:
#byte portb=0x05
#byte portb=0x06
kiểu này mà ko lỗi mới lạ
khanhtanvn88 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


Múi giờ GMT. Hiện tại là 07:46 AM.


Đượ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