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 23-04-2009, 08:48 PM   #16
hoangquan_d
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 8
:
Trích:
Nguyên văn bởi 0509592 View Post
các bác co tai liệu tiếng Việt về pic 16F877A thi load lên cho em với.
email: truongtv0510@gmail.com
thanks!
bạn doc thử cái nay nhé
hoangquan_d vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2009, 10:39 AM   #17
minh_thanh
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 3
:
help! e mới bắt đầu tìm hiểu về pic 16f887a lập trình bằng ccs, đến phần ccp thi bị đơ mất
bác nào có tài liệu ccs chi tiết về phần này cho e tham khảo với.
thank much!
minh_thanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-11-2009, 12:08 PM   #18
hoang_spk
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 2
:
bộ so sánh

em cũng nghiên cứu về ứng dụng của bộ so sánh.Nhưng không rõ bộ so sánh có những ứng dụng như thế nào.anh co' thể giúp em được không???nếu có đoạn chương trình để tham khảo thì càng tốt.thanks anh nhìu
hoang_spk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-03-2011, 08:44 PM   #19
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
doan chuong trinh dieu khien toc do dong co & hien thi toc do/giay len 2 led 7 doan

#include<16f877a.h>
#device 16F877*16ADC=8
#fuses nowdt,noprotect,nolvp,xt,put
#use delay(clock=4000000)
#use fast_io(d)
#use fast_io(c)
#use fast_io(a)
#use fast_io(e)
#byte porte=0x9
#byte portd=0x8
#byte portc=0x7
#byte porta=0x5
#byte option=0x81//option_reg//
#byte tmr0=0x1
#bit e1=porte.1
#bit e0=porte.0
#bit p0=option.0
#bit p1=option.1
#bit p2=option.2
#bit p3=option.3
#bit p4=option.4
#bit p5=option.5
int x,i,chuc,dv,y;
void xuatxung();
void docADC();
void main()
{
int a[10]={192,249,164,176,153,146,130,248,128,144};
set_tris_d(0);
set_tris_c(0);
set_tris_a(0b010001);
set_tris_e(0);
tmr0=0;
portd=0;
portc=0;
porta=0;
while(1)
{
p3=0;
p2=0;p1=1;p0=0;//chia tan 1:8//encoder duc 8 lo tren 1 vong
docADC();
x=read_ADC();
xuatxung();
p4=p5=1; // cho TMR0 hoat dong//
for(i=0;i<50;i++)
{
e1=1;e0=0;
portd=a[chuc];
delay_ms(10);
e0=1;e1=0;
portd=a[dv];
delay_ms(10);
}
y=tmr0;
chuc=y/10;
dv=y%10;
tmr0=0;// cai lai gia tri cho TMR0//
}}
void docADC()
{
setup_ADC(ADC_clock_internal);
setup_ADC_ports(AN0);
set_ADC_channel(0);
delay_us(100);
}
void xuatxung()
{
setup_ccp1(ccp_PWM);
set_pwm1_duty(x);
setup_timer_2(t2_div_by_16,255,1);
}




Su dung bo ADC de dieu chinh do rong xung (PWM)
File Kèm Theo
File Type: rar Do toc do DC.rar (50.4 KB, 175 lần tải)
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-03-2011, 12:34 PM   #20
mini_2440
Đệ tử 1 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 21
:
#include <16F877.h>
#INCLUDE<def_877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP /// sửa lại chỗ này nhé
//////////// #fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

int16 pulse;

#int_ccp1
void isr()
{

if (!bit_test(PORTB,0)){
output_high(PIN_b0);
}
else{
output_low(PIN_B0);}
CCP_1+=1000;
}



void main()
{
CHAR VALUE;
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
setup_ccp1(CCP_COMPARE_INT);
enable_interrupts(INT_CCP1);
enable_interrupts(GLOBAL);


pulse = 1000;
TRISB = 0;
PORTB = 0;
CCP_1 = PULSE;

set_timer1(0);

while(true);
}
mini_2440 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-03-2011, 12:35 PM   #21
mini_2440
Đệ tử 1 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 21
:
HOẶC LẤY CODE NÀY NÈ,

#include <16F877A.h>
#FUSES HS
#use delay(clock=8000000)
INT16 J ;
void main()
{
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);

setup_timer_2(T2_DIV_BY_16, 255,1) ;
OUTPUT_C(0) ;
WHILE(TRUE)
{
FOR(J = 0 ; J < 1024 ; J ++ )
{
set_pwm1_duty(J);
set_pwm2_duty(J);
DELAY_MS(8) ;
}
}
}
mini_2440 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-05-2011, 07:05 PM   #22
tuthantuthuc
Nhập môn đệ tử
 
Tham gia ngày: Feb 2010
Bài gửi: 2
:
Nhờ mọi người giúp dùm về bộ PWM.
Hiện nay e đang làm khoá luận về cánh tay robot dùng PIC6F877A, và e đang vướng chỗ dùng xung PWM để điều khiển động cơ(em dùng động cơ DC) vì con PIC chỉ có 2 chân PWM nên e định đưa tín hiệu PWM vào con 74LS540 để khuyếch đại dòng,kết hợp với tín hiệu điều khiển chọn động cơ để đưa vào chân cho phép của con 74LS540 từ đó xuất ra giá trị PWM để điều khiển động cơ tương ứng.
Nhưng e k biết sau khi đưa qua con 74LS540 thì tín hiệu ra có còn là giá trị xung nữa k? E dùng con 74LS540 này để điều khiển động cơ bước thì được nhưng k biết khi dùng tín hiệu xung thì như thế nào? Mọi người có thể giúp dùm em vấn đề này được k?
Một vấn đề nữa e đang thắc mắc đó là e dùng encoder để hồi tiếp tốc độ, từ đó tính ra được góc quay cho động cơ nhưng e k biết đưa encoder về chân nào của con PIC vì e thấy nó chỉ có 1 chân RB0 là nhận tín hiệu ngắt ngoài, mà e thì điều khiển tới 4 động cơ nên giờ e nên làm sao đây? Mong mọi người giúp dùm.
Em xin cám ơn
tuthantuthuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-05-2012, 12:10 PM   #23
ichitea606
Đệ tử 2 túi
 
Tham gia ngày: Nov 2010
Bài gửi: 26
:
Talking pwm điều khiển tải AC

Chào các pan đề tài của e là: viết chường trình điều khiển độ sáng tồi của bóng đèn dùng PWM của PIC16f877A. e có cầu hỏi này muốn hỏi
1. khi ta phát hiện được điểm "0" của sóng sin thì ta kích 1 xung bằng PWM vậy thì Timer nó có liên quan gì tới chỗ này(thấy có người nói dùng timer gì gì đó )
2.Khi ta muốn góc kích tăng lên thì mình chỉ cần thay đổi duty của nó phải không nhỉ ?
3. E có doạn code điều khiển Led đơn như vầy: khi nhấn nút nhấn sẽ tạo ra một chuỗi xung điều khiển led đơn. E có thắc mắc là tại sao nhấn xong, một chuỗi xung được tạo ra,thả nút nhấn ra chuỗi xung vần còn. Vậy hàm CCP1 chỉ cần khởi tạo 1 lần là hoạt động luôn sao,muốn nó hoạt động theo ý muốn thì phải làm như thế nào,mong các bạn, các thầy hướng dẫn

#include <16F877A.h>
#include <def_16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=12000000)

#define diem0 rb0
#define led1 rc0
int16 duty1=0,i,j;
void kich (void){
setup_ccp1(CCP_PWM); //khoi tao bo PWM1
setup_timer_2(T2_div_by_16,187,1); //tao chu ky xung 1ms (1/clock)*4*t2div*(period+1)
duty1=120;
set_pwm1_duty(duty1); //theo cong thuc = duty1*t2div/clock
delay_ms(10);
}
void main()
{
set_tris_b(0);
set_tris_c(0);
while(true)
{
if(diem0==0){
delay_ms(1);
kich(); }
}
}
ichitea606 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-05-2012, 11:10 AM   #24
ichitea606
Đệ tử 2 túi
 
Tham gia ngày: Nov 2010
Bài gửi: 26
:
K ai rảnh hướng dẫn mình hết ah? Bang chủ Pic(namq) giúp e với
ichitea606 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-09-2012, 09:00 AM   #25
thanhlam1911
Đệ tử 1 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 16
:
Bang chủ đang bế quan luyện công, các đệ tử chịu khó đợi nhé!
thanhlam1911 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
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 26 07-05-2024 08:55 AM
TUT về USART trong PIC16F877A mafd_47a MPASM 11 04-05-2024 04:43 AM
Lập nhóm PIC16F877A nhh Cơ bản về vi điều khiển và PIC 285 08-03-2017 11:08 PM
Pic16f877a TỪ DỄ TỚi KhÓ ntc Cơ bản về vi điều khiển và PIC 373 23-05-2009 10:24 PM
CCS C for PIC16F877A nhh Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 405 24-04-2008 12:00 PM


Múi giờ GMT. Hiện tại là 07:42 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