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 30-10-2010, 08:35 PM   #16
chimcon
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 24
:
output_b(dvi|0xE0);
output_d(dvi|0xE0);
BAN DUNG MOT PORT MA SAO LAI OUTPUT_B MA LAI OUTPUT_D
MINH DOC TRONG CCS CHI THAY OUTPUT_HIGH() VA OUTPUT_LOW() THOI MÀ
CÃM ƠN BẠN.
BẠN GIẢI THÍCH DÙM MÌNH NHÉ
chimcon vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-10-2010, 08:37 PM   #17
chimcon
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 24
:
NẾu mÌnh nhỚ khÔng lẰm chỈ dÙng cho bit thÔi thÌ phẢi.
chimcon vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-10-2010, 10:01 PM   #18
8051topic
Đệ tử 4 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 71
:
Trước tiên bạn đã compile thử đoạn code của mình chưa?
Bạn thấy có output_b và output_d là do mình muốn xuất đồng thời trên 2 port này, bạn cần xuất ra port nào thì output_ pỏt đó thôi.
Về đoạn OR hai giá trị với nhau (dvi|0xE0):
- dvi, chuc, tram, nghin là dữ liệu,
- E0, D0, B0, 70 là điều khiển led nào sáng, khi bạn dùng E0 (1110 0000) tức là led ở bit 4 sáng, theo như phần cứng nó là hàng đơn vị, suy luận từ từ vậy với D0, B0, 70 nha.
Nếu bạn mới bắt đầu với VĐK mình khuyên bạn nên làm 1 mạch led 7 đoạn như vầy, có socket nối dây ra luôn đẻ sau này còn thử nghiệm với nhiều thứ khác nữa, lúc đó chỉ cần nối dây tới board VĐK thôi.
8051topic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-11-2010, 06:30 PM   #19
chimcon
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 24
:
// Author : Tran Van Duy
// Date : 06/04/09
// Hardware: PIC16F887
//************************************************** ***************************
#include <16F887.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
//khai bao cac bien hang
//pin va portd
#define sw rc0
// bao cac bien toan cuc

int16 a, dem;
int8 i, nghin, tram, chuc, dvi;
// cac ham su dung trong chuong trinh

void hex_bcd()
{
nghin=a/1000;
a=a%1000;
tram=a/100;
a=a%100;
chuc=a/10;
dvi=a%10;
}
//BAN GIAI THICH DUM MINH PHAN DOI SAN MA BCD NHE

void hienthi()
{
i=0;
while(i<100)
{
output_b(dvi|0xE0); //BAN GHI CHU THICH DUM MINH PHAN NAY NHE.
output_d(dvi|0xE0);
delay_ms(1);
output_b(chuc|0xD0);
output_d(chuc|0xD0);
delay_ms(1);
output_b(tram|0xB0);
output_d(tram|0xB0);
delay_ms(1);
output_b(nghin|0x70);
output_d(nghin|0x70);
delay_ms(1);
i++;
}

}
void main()
{
set_tris_b(0x00);
set_tris_d(0x00);
set_tris_c(0xFF);

dem=0;
while(TRUE)

{


IF(rc0 == 0 )
DELAY_MS(10);


dem=dem+1;
if(dem==10000)
{
dem=0;
}
a=dem;
hex_bcd();
hienthi();



}
}
MINH BỊ LỔI:
UNDEFINED IDENTIFIER.
chimcon vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-11-2010, 06:33 PM   #20
chimcon
Đệ tử 1 túi
 
Tham gia ngày: Apr 2010
Bài gửi: 24
:
Minh bi loi undifened identifier khi co ham if vao.
Mong cẬcn giÚp ĐỠ.
chimcon vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-11-2010, 07:12 PM   #21
8051topic
Đệ tử 4 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 71
:
Bạn mở file 16F887.h trong thu vien của CCS ra xem nhé, như vậy bạn đổi
#define sw rc0 thành
#define sw PIN_C0
và thay đổi chỗ này nữa
IF(rc0 == 0 )
DELAY_MS(10);

đổi rc0 thành PIN_C0 hay sw là được
8051topic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2010, 10:20 AM   #22
taitokho
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 1
:
hix
pác nampn ơi giúp với.chỉ dùm cai' mạch nguyên lý cua doan led 7 thanh hien thi đếm từ 0000>9999
dùng ic89c51
giúp với
Đang dung orcad 15.7
Thank
SOS
taitokho vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-08-2012, 12:17 PM   #23
tachangconai412
Nhập môn đệ tử
 
Tham gia ngày: Aug 2009
Bài gửi: 6
:
Bạn kiểm tra lại giúp mình chỗ này hen:
1. Phần khai báo: a la int16, nghin, tram, chuc,.. là int8. Hai kieu khai bao này ko tương thích voi nhau, 8bit thi là 8bit cả còn 16bit thì là 16bit cả chứ như vậy khi chia số ra dễ bị sai lắm. Phần giải thích thì bạn chỉ cần làm như thế này là hiểu thui ah, Cho a = 1234, ruj áp dung công thức như trên đổi sem đúng chưa, dấu "/" là chia lấy phần nguyên, dấu"%" là chia lấy phần dư
2: 0xE0 -> 1 - 1 - 1 - 0
0xD0 -> 1 - 1 - 0 - 1
0xB0 -> 1 - 0 - 1 - 1
0x70 -> 0 - 1 - 1 - 1
đây là 4 bit cao of portb và portd, sau khi đưa dữ liệu ra portb thì đưa tiếp xung quét (dưới dạng là 0xE0, 0xD0,.....) ra luôn để quét dữ liệu đó luôn, xung quét bằng 0 thì sáng and 1 thì tắt, portd cũng tương tự như vậy.
tachangconai412 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à 03:32 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