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 01-02-2013, 11:53 PM   #1
evigkarlek
Nhập môn đệ tử
 
Tham gia ngày: Feb 2013
Bài gửi: 3
:
Angry [HELP] Hiển thị từ 0-9 (LED 7 thanh) sử dụng VĐK 16F877A

Thực sự là hết cách rồi em mới phải viết bài này, mong các pro ra tay *cứu giúp*. Chả là mai em phải nộp bài báo cáo về:
-Thiết kế mạch mô phỏng
-Viết chương trình mô phỏng hiển thị các số 0,1,...,9 trên Led 7 thanh sử dụng VĐK 16F877A
Và tình hình là. .nghiên cứu cũng lâu rồi, mà sự hiểu biết thì có hạn, thời gian thì lại gấp rút quá. Ai giúp em với. .

Cho em cái mạch Protues + với cái code trên CCS. .

Em cảm ơn rất nhiều ạ

thay đổi nội dung bởi: evigkarlek, 02-02-2013 lúc 12:05 AM.
evigkarlek vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2013, 09:29 PM   #2
hungcdt_k49
Đệ tử 1 túi
 
Tham gia ngày: Nov 2012
Bài gửi: 19
:
Trích:
Nguyên văn bởi evigkarlek View Post
Thực sự là hết cách rồi em mới phải viết bài này, mong các pro ra tay *cứu giúp*. Chả là mai em phải nộp bài báo cáo về:
-Thiết kế mạch mô phỏng
-Viết chương trình mô phỏng hiển thị các số 0,1,...,9 trên Led 7 thanh sử dụng VĐK 16F877A
Và tình hình là. .nghiên cứu cũng lâu rồi, mà sự hiểu biết thì có hạn, thời gian thì lại gấp rút quá. Ai giúp em với. .

Cho em cái mạch Protues + với cái code trên CCS. .

Em cảm ơn rất nhiều ạ
dễ thui mà, mạch thì đấu trực tiếp portb vào led7 thông qua trở khoảng 220.
code nè
#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=12000000)

int8 led7[]={0xc0,0x9f,0xa4......},i,so; //gì nữa kô nhớ lắm, bạn tự tính nhé các số từ 0 đến 9
void main()
{
set_tris_b(0);
while(1)
{
for(i=0;i<10;i++)
{
output_b(led[i]);
delay_ms(500);
}
}
}
hungcdt_k49 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-02-2013, 03:42 PM   #3
evigkarlek
Nhập môn đệ tử
 
Tham gia ngày: Feb 2013
Bài gửi: 3
:
Trích:
Nguyên văn bởi hungcdt_k49 View Post
dễ thui mà, mạch thì đấu trực tiếp portb vào led7 thông qua trở khoảng 220.
code nè
#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=12000000)

int8 led7[]={0xc0,0x9f,0xa4......},i,so; //gì nữa kô nhớ lắm, bạn tự tính nhé các số từ 0 đến 9
void main()
{
set_tris_b(0);
while(1)
{
for(i=0;i<10;i++)
{
output_b(led[i]);
delay_ms(500);
}
}
}
mình học CN mà học môn này nên nhiều thứ mới mẻ quá, tks bạn nhiều nha
evigkarlek vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-02-2013, 03:58 AM   #4
hungcdt_k49
Đệ tử 1 túi
 
Tham gia ngày: Nov 2012
Bài gửi: 19
:
Trích:
Nguyên văn bởi evigkarlek View Post
mình học CN mà học môn này nên nhiều thứ mới mẻ quá, tks bạn nhiều nha
Không có gì. có gì bạn cứ hỏi
hungcdt_k49 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-02-2013, 11:02 AM   #5
daiduongub
Nhập môn đệ tử
 
Tham gia ngày: Feb 2013
Bài gửi: 1
:
mình cũng đang bắt đầu học môn vi điều khiển, nhưng xem ra môn này khó học quá. muốn học mà không biết bắt đầu từ đâu. mọi người cho mình hỏi muốn hiểu về con pic 16f84 thì đọc những gì, các phần để viết 1 chương trình code như thế nào? thank các ban nhiều.
daiduongub vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-02-2013, 10:05 AM   #6
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
Vi điều khiển thực ra rất dễ với những ứng dụng thông thường!,..dân trung cấp là có thể lập trình và ứng dụng vi điều khiển, gọi là "dạy nghề" đó!!.
Nhưng vấn đề là bạn không biết đi từ đâu và tạo thành một mạch thực tế như thế nào,..thế thì lại rất rắc rối!..
Tốt hơn hết là kiếm một người bạn đã học và làm mạch thật,..trong vòng vài chục phút bạn sẽ gỡ được những cái thắc mắc...còn cái việc hiểu sâu về vấn đề và "sáng kiến" những cái mới thì đòi hỏi một thời gian dài và sự thông minh của bạn!!...
PIC tốt hơn là bắt đầu từ 16F877A vì con này cơ bản đã đầy đủ các "sọt" code và những ứng dụng mẫu cơ bản,..cầu nối giữa Pic đời mới và Pic đời cũ!!!..
pstin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-03-2013, 11:34 AM   #7
hungcdt_k49
Đệ tử 1 túi
 
Tham gia ngày: Nov 2012
Bài gửi: 19
:
Trích:
Nguyên văn bởi pstin View Post
Vi điều khiển thực ra rất dễ với những ứng dụng thông thường!,..dân trung cấp là có thể lập trình và ứng dụng vi điều khiển, gọi là "dạy nghề" đó!!.
Nhưng vấn đề là bạn không biết đi từ đâu và tạo thành một mạch thực tế như thế nào,..thế thì lại rất rắc rối!..
Tốt hơn hết là kiếm một người bạn đã học và làm mạch thật,..trong vòng vài chục phút bạn sẽ gỡ được những cái thắc mắc...còn cái việc hiểu sâu về vấn đề và "sáng kiến" những cái mới thì đòi hỏi một thời gian dài và sự thông minh của bạn!!...
PIC tốt hơn là bắt đầu từ 16F877A vì con này cơ bản đã đầy đủ các "sọt" code và những ứng dụng mẫu cơ bản,..cầu nối giữa Pic đời mới và Pic đời cũ!!!..
mình cũng chỉ là người mới bắt đầu thôi. Học pic trước hết phải học qua các cái cơ bản về nó như datasheet, cấu trúc thanh ghi..... mới bắt đầu lên mô phỏng bằng proteus, học CCS để lập trình. PIC 16f877a có riêng 1 cuốn sách viết về nó đấy. bạn lên mạng mà tìm tài liệu
hungcdt_k49 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-03-2013, 11:37 AM   #8
hungcdt_k49
Đệ tử 1 túi
 
Tham gia ngày: Nov 2012
Bài gửi: 19
:
nhân tiện đây cho mình hỏi, giao tiếp cảm biến siêu âm srf05 dùng 18f4431. Mình viết code nhưng không rõ sai ở chỗ nào.

#include <18f4431.h>
#fuses HS,NOWDT,NOLVP,NOPROTECT,NOPUT,NODEBUG
#use delay(clock=12000000)
int8 a,b,c,led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0},tram,chuc,dv,i,j,k;
float s,kc;
int16 time;
#define rc6 pin_C6
#INT_TIMER0
void trantimer1()
{
set_timer1(0);
}
#INT_EXT1
void ngatngoai1()
{
set_timer1(0);
}
void ngatngoai2()
{
time=get_timer1();
kc=(time*4*4)/(12*58);// cong thuc nay da dung chua?????????????????????????????????
}
void hienthi()
{
if(kc>=100)
{
dv=9;
chuc=9;
tram=9;
}
else
{
dv=(int8)kc%10;
chuc=(int8)(kc/10)%10;
tram=(int8)(kc/100)%10;
}
output_b(led[dv]);
}
void trigger()
{
output_high(Pin_C6);
delay_us(12);
output_low(Pin_C6);
}
void main()
{
set_tris_b(0);
set_tris_c(0);
enable_interrupts(INT_EXT1);
enable_interrupts(INT_EXT2);
enable_interrupts(INT_TIMER0);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
EXT_INT_EDGE(1,L_TO_H);
EXT_INT_EDGE(2,H_TO_L);
enable_interrupts(global);
while(1)
{
trigger();
delay_ms(50);
}
}
hungcdt_k49 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-03-2013, 09:16 PM   #9
evigkarlek
Nhập môn đệ tử
 
Tham gia ngày: Feb 2013
Bài gửi: 3
:
Code:
#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=12000000)

int8 led7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90},i,so; 

void main()
{
set_tris_b(0);
while(1)
{
for(i=0;i<10;i++)
{
output_b(led[i]);
delay_ms(500);
}
}
Ai cho hỏi chút code trên để hiển thị 0-9 trên LED 7 thanh có đúng ko, (port B)

Sao mình chạy trên CCS nó lại báo lỗi:
evigkarlek vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-03-2013, 10:58 AM   #10
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
Trích:
Nguyên văn bởi evigkarlek View Post
Code:
#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=12000000)

int8 led7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90},i,so; 

void main()
{
set_tris_b(0);
while(1)
{
for(i=0;i<10;i++)
{
output_b(led[i]);
delay_ms(500);
}
}
Ai cho hỏi chút code trên để hiển thị 0-9 trên LED 7 thanh có đúng ko, (port B)

Sao mình chạy trên CCS nó lại báo lỗi:
Thiếu 1 cái móc ngoặc kép của hàm main nên bị lỗi đó!!!,..
Nếu bạn có mạch thật, bạn cứ nạp cho chạy, thay đổi thời gian delay lâu hơn,..cỡ 1-2 giây,..để xem có đúng mã led 7 đoạn hay không!?.
Tốt hơn là dùng protues mô phỏng đi!.
pstin 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:55 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