PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Kit thí nghiệm pic6f877a đơn giản, hiệu quả (http://www.picvietnam.com/forum/showthread.php?t=10381)

pstin 29-07-2011 01:31 PM

Kit thí nghiệm pic6f877a đơn giản, hiệu quả
 
1 Attachment(s)
Hôm trước có post led ma trận, led 7 đoạn với 74HC595, hôm nay post luôn kit Pic6f877a cho "đủ tụ".
Mạch hơi lớn để làm cho dễ và sử dụng hết bề rộng board đồng 200.
Anh em ủi về xài cho vui!!!!!!!!!!!!
Làm biếng chụp hình đưa lên quá!!!!!!!.
Để hôm khác rảnh luận về truyền dữ liệu trên thanh ghi dịch chơi!!!!!!!!.
Đang busy rồi!!!!!!!!!!!

pstin 20-08-2011 10:24 AM

Truyền dữ liệu thanh ghi dịch 74hc595
 
Chân Clock: E2
Chân data: E0
Level1: Xuất nhấp nháy dữ liệu 8 bit ra thanh ghi dịch:

#include <16F877A.h>
#include <DEFS_16F877A.h>
#device *=16 ADC=10
#include <stdlib.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=16000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)

//=========================functions use========================================
void load_eep_macdinh();
Void clock();
Void sent_data();
int8 k,data;
int8 data1=0b00001111;

#define out_data RE1
//======================================functions use===========================

/********************* Ham main *************************/

void main()
{
set_tris_B(0);
set_tris_D(0);
set_tris_E(0);
set_tris_A(0xff);
out_data=0;
While(true)
{
data=data1;
sent_data();
out_data=1;
delay_ms(500);
out_data=0;
delay_ms(500);
}
}

Void sent_data()
{
for(k=1;k<=8;k++)
{
#bit in=data.7
if(in==1)
{output_high(PIN_E0);}
else
{output_low(PIN_E0);}
clock();
data = data<<1;
}
}

Void clock()
{
output_high(PIN_E2);
output_low(PIN_E2);
}


Level2: Xuất nhấp nháy dữ liệu 1 mảng ra thanh ghi dịch:

#include <16F877A.h>
#include <DEFS_16F877A.h>
#device *=16 ADC=10
#include <stdlib.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=16000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)

//=========================functions use========================================
void load_eep_macdinh();
Void clock();
Void sent_data();
int8 i,k,data;
int8 data1[]={0b00000000,0b00000001,0b00000010,0b00000011,0b00 000100,0b00000101,0b00000110,0b00000111,0b00001000 ,0b00001001};

#define out_data RE1
//======================================functions use===========================

/********************* Ham main *************************/

void main()
{
set_tris_B(0);
set_tris_D(0);
set_tris_E(0);
set_tris_A(0xff);
out_data=0;
While(true)
{
for(i=0;i<10;i++)
{
data=data1[i];
sent_data();
out_data=1;
delay_ms(500);
out_data=0;
delay_ms(500);
}
}
}

Void sent_data()
{
for(k=0;k<8;k++)
{
#bit in=data.7
if(in==1)
{output_high(PIN_E0);}
else
{output_low(PIN_E0);}
clock();
data = data<<1;
}
}

Void clock()
{
output_high(PIN_E2);
output_low(PIN_E2);
}

Chú ý: khi truyền dữ liệu ra thanh ghi dịch thì out_data phải xuống mức 0, nếu không sẽ bị lỗi!!!!!!!!!!. Các level khác .....hôm khác vậy!!!!!!!!

bkdnzinto 14-09-2012 12:33 AM

có file mô phỏng trên proteus không anh.em muốn mô phỏng cái mạch đo nhiệt độ hiển thị trên led 7 đoạn(điều khiển nhiệt độ dùng quạt)anh xem cái mạch mô phỏng của em thế này đúng chưa
http://www.mediafire.com/?j6d7cktf31wnzul

nhucca 04-06-2013 09:24 AM

ko co ten linh kien ah


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam