PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC Việt Nam - Chuyên nghiệp (http://www.picvietnam.com/forum/forumdisplay.php?f=35)
-   -   PIC16F676 ! hiển thị điện áp DC trên LED (http://www.picvietnam.com/forum/showthread.php?t=6063)

badandan 02-04-2010 12:05 AM

PIC16F676 ! hiển thị điện áp DC trên LED
 
cho em hỏi PIC6F676 co tren thị trường ko và gia khoảng bao nhiêu K ?
em định làm mạch hiển thị điện áp DC 0->15V trên LED
sơ đồ mạch :http://www.coolcircuit.com/project/meter/circuit.GIF
cho em hỏi con pic này có cần phải lập trình ko ?

leemanhtuan 02-04-2010 01:10 AM

Vi điều khiển nào ma không phải lập trình bạn

badandan 02-04-2010 12:45 PM

Trích:

Nguyên văn bởi leemanhtuan (Post 34702)
Vi điều khiển nào ma không phải lập trình bạn

nhưng mình nghe người khác nói con PÍC6F676 ko cần pải lập trình vì nó có sẵn chức băng ACCD rồi .
"""Khổ thân cho bạn quá. 16F676 PIC là loại ADCD (Analog/Didital Convert Display). Ráp đúng mạch là nó chạy chứ lập trình cái gì.

Các giá trị clock, sup-measure, decimal counter, counter reset v.v... đều đã được mặc định. Bạn khỏi phải lo lập trình, vì không phải cứ PIC là lập trình đâu.

Sau khi ráp, chỉnh chiết áp 50K để chuẩn độ (calif) cho chính xác"""

leemanhtuan 02-04-2010 02:20 PM

Trời!
bạn download datasheet của nó về xem nhe...nó là vi điều khiển và phải lập trình.
Còn việc nó tich hợp ADC thì chỉ tiện cho người dùng..và cũng phải lập trình

Lightning 03-04-2010 07:45 PM

Bạn leemanhtuan nói đúng rồi đấy, không lập trình thì no chạy thế nào được. Có File .hex cho ban luôn đây chúc làm thành công.

Lightning 03-04-2010 07:47 PM

Chi giúp tôi cách đính kèm FILE.Zip , tôi không gửi được

badandan 04-04-2010 05:13 PM

bạn úp lên mạng rùi gủi kink cũng được mà .
nếu thay PIC 16F676 bằng 16F877 thì ai giúp mình vẽ lại mạch rùi viết code được ko
thank

Lightning 04-04-2010 09:14 PM

Code đây bạn dịch ra File.hex rồi nạp cho vi điều khiển nhé, nói thực tôi không biết cái vụ up lên mạng làm thế nào các bạn thông cảm.

#include <16F676.h>
#device adc=10
#fuses INTRC_IO,NOWDT,PUT,NOPROTECT,BROWNOUT,NOMCLR
#use delay (clock=4000000) // 4MHz clock

#rom 0x3ff={0x3444}

#byte PORTA = 0x05
#byte PORTC = 0x07
#byte TRISA = 0x85
#byte TRISC = 0x87

#define SPORTA PORTA
#define SPORTC PORTC

#define TICKS_BETWEEN_INTERRUPTS 5000 //5000
#define INTERRUPT_OVERHEAD 35
#define TMR1RESET (0xFFFF-(TICKS_BETWEEN_INTERRUPTS-INTERRUPT_OVERHEAD))

const char SegCode[11] = {0x40,0x57,0x22,0x06,0x15,0x0C,0x08,0x56,0x00,0x04 ,0xFF};
// 0 1 2 3 4 5 6 7 8 9
const char Column[3] = {0x02,0x01,0x04};
static char Segment[3] = {0x7f,0x7f,0x7f};
static unsigned char ColCount=0x00;

void CPU_SETUP(void);
void Display(void);
void HTO7S(unsigned int32 Num);

byte i;
unsigned int32 result;

#INT_TIMER1
void Timer1(void)
{
set_timer1(TMR1RESET);
Display();
}

void main()
{
unsigned char i;

CPU_SETUP();

while(true)
{
result=0;
for (i=0;i<20;i++)
{
set_adc_channel(3);
delay_ms(1);
result=result+read_adc();
}
//result = 0x3fe;
HTO7S(result/20);
delay_ms(200);
}

}

void CPU_SETUP()
{

setup_comparator(NC_NC_NC_NC); // not use comparator module
setup_adc_ports( sAN3 | VSS_VDD);
setup_adc(ADC_CLOCK_DIV_64);
TRISA=0b00011000;
PORTA=0x27;
TRISC=0b00000000;
PORTC=0x37;


setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
set_timer1(TMR1RESET);
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER1);
}

//-------------------------------------
// Display routine
//-------------------------------------
void Display()
{
PORTA = 0b00100111; // off all digits column and Segment G
PORTC = 0b00111111; // off segment a-f
delay_cycles(2);


if (ColCount>=3)
ColCount=0;

SPORTC = Segment[ColCount];
SPORTA = ((Segment[ColCount] & 0b01000000)>>1) | (Column[ColCount]^0x07);
ColCount++;
}

//--------------------------------------
// Convet HEX 2 byte to 7-Segment code
//--------------------------------------
void HTO7S(unsigned int32 Num)
{

unsigned int32 res;


Segment[0]=SegCode[30*Num/10230];
if (Segment[0]==0x40)
Segment[0]=0xFF;

res = 30*Num%10230;
Segment[1]=SegCode[10*res/10230];
res=10*res%10230;
Segment[2]=SegCode[10*res/10230];
}


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