PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   HTPIC - các chương trình cho PIC6F877A (http://www.picvietnam.com/forum/showthread.php?t=339)

QED 23-07-2010 11:04 PM

Mình đang bí trong vấn đề quét led matrix. Bạn có thể giúp đỡ? có cả mạch kèm theo được không?
Rất cảm ơn!

haneishun 24-07-2010 09:12 AM

em mới học Pic nên chưa hieu nhiều lắm có ai chỉ giứp em bài này được ko :hiển thị 1 số thực trên LCD.VD: hiển thị số 456,7

linhta07 17-11-2010 11:17 AM

.......................thanks NOHB !

hoangcuibap 02-05-2011 10:45 AM

Co bac nao dung dc ca hai phan mem ccs va htpic ko? Em moi vao nghe nen hai phan mem nay ko bt chon cai nao. Nho cac bac chi giao.

dovanhung 03-08-2011 09:32 PM

Crack HT PICC
 
huyentien8688@gmail.com
Cac buoc Crack HT PICC for pic 10/12/16

1. Cài đặt MPLAB IDE trong đó có kích chọn Hi-tech C compiler for PIC (hoặc chọn luôn complete).
2. Sau khi cài đặt HT-Pic sẽ vào một thư mục riêng trong Program files. Chạy file Activate or TRIAL PRO mode (Trong trường hợp của tôi là: "C:\Program Files\HI-TECH Software\PICC\9.81\resources\setup.exe"). Nó sẽ hỏi các bác dùng trial hay active luôn. Chọn "active PRO/Standard mode". Tick vào Off-line activation by email. Rồi điền một cái serial number bất kỳ sáu số. VD. 654321. Sau đó click finish
3. Chại cái chương trình "phát mã khóa" .exe rồi chỏ đến file HCPICP-654321-activation-request.txt trong thư mục cài đặt HT-pic. Cái thuốc này sẽ phát một file khóa giống như bác đã mua từ email (he he).
4. Chạy HT-PIC activation một lần nữa, nó sẽ chúc mừng các bác đã dùng bản PRO.

ductien88 19-09-2011 05:50 PM

nên chọn CCS . vì hok cần nướng chín cũng thịt được luôn :D

tuanpham0101 19-03-2012 01:00 AM

có vẻ ít người dùng HTPIC hay sao mà mình thấy threat này vắng vẻ quá.
sau đây mình post một vài code mình mới viết, cũng là newbye nên rất mong mọi người đóng góp ý kiến :d

tuanpham0101 19-03-2012 02:21 AM

3 Attachment(s)
Em đang load thì mất điện, giờ mới load được :d

tuanpham0101 23-03-2012 01:13 AM

PWM + đo độ rộng xung bằng ngắt RB0
 
1 Attachment(s)
đây là code đo độ rộng xung bằng ngắt RB0, từ đó tạo xung PWM bằng hàm delay hoặc CCP của Pic

tuan_utc 04-05-2012 12:31 PM

Các bạn ơi ! cho mình hỏi bạn nào có tài liệu hướng dẫn học HT Pic cụ thể không? cho em xin với. Đang làm đề tài tốt nghiệp liên quan đến ngôn ngữ lập trình này.

thiepvespa 19-06-2012 12:02 PM

Trích:

Nguyên văn bởi tuanpham0101 (Post 55048)
đây là code đo độ rộng xung bằng ngắt RB0, từ đó tạo xung PWM bằng hàm delay hoặc CCP của Pic

Mình đang sử dụng PWM của Timer2, nhưng mình ko biết truy bắt thời điểm khi TMR2=CCPR1L như thế nào??? Ví dụ như trường hợp TMR2=PR2 thì TMR2IF được set nên có thể biết thời điểm này. Mong các bạn giúp đỡ

quitnownpc 21-06-2012 01:54 AM

Em đang làm đồ án về Pic16f877a và ICds1307 hiển thị thời gian thực ngày tháng năm giwof phút giây. Em làm hoài mà ko làm đc anh nào biết chỉ dùm em với

anhnam231190 11-05-2013 03:14 PM

em đang làm đồ án led matrix 16x128 dùng pic 16f877a giao tiếp máy tính, em làm được hienr thị chữ rồi nhưng chưa dịch được chữ,mong các anh chị pro giúp em với
http://www.mediafire.com/?a6t0aec48dar5p2
đây là mô phỏng và code của em.

pvthang123456 19-05-2013 12:46 AM

các bác ơi. ai giup mình viết lại đoạn code này thành HTC được ko, chứ viết kiểu này mình ko hiểu, cho mình hỏi lun mấy cai thông số cài đặt timer0 là sao vậy
"#include<p18f4550.h>
#pragma config FOSC = HSPLL_HS // Using 20 MHz crystal with PLL
#pragma config PLLDIV = 5 // Divide by 5 to provide the 96 MHz PLL with 4 MHz input
#pragma config CPUDIV = OSC1_PLL2 // Divide 96 MHz PLL output by 2 to get 48 MHz system clock
#pragma config USBDIV = 2 // USB clock comes from 96 MHz PLL output / 2
#pragma config IESO = OFF // Disable Oscillator Switchover mode
#pragma config PWRT = OFF // Disable Power-up timer
#pragma config BOR = OFF // Disable Brown-out reset
#pragma config VREGEN = ON // Use internal USB 3.3V voltage regulator
#pragma config WDT = OFF // Disable Watchdog timer
#pragma config MCLRE = ON // Enable MCLR Enable
#pragma config LVP = OFF // Disable low voltage ICSP
#pragma config ICPRT = OFF // Disable dedicated programming LAT (44-pin devices)
#pragma config CP0 = OFF // Disable code protection

void timer0_2500();
void capnhat(),test_tay(),dungyen();
void ngatmuccao(void);
void timer0_10();
volatile unsigned char i=0,j=0,H=0xFF,L=0xE1;
volatile unsigned int pulse_max,pulse_top,set = 2000;

//--------------------------------------------------------------------
volatile unsigned int SERVO[16];

void delay_us( int x)
{
int i;
for(i=0;i<x;i++)
{}

}
void delay_ms( int x)
{
int i;
for(i=0;i<x;i++)
{
delay_us(1000);
}
}

void timer0_10()
{
T0CONbits.TMR0ON = 0; // timer off
T0CONbits.T0PS0 = 1; //1:4 PRESCALER
T0CONbits.T0PS1 = 0;
T0CONbits.T0PS2 = 0;
T0CONbits.PSA = 0;
T0CONbits.T0SE = 0;
T0CONbits.T0CS = 0; // CLK SOURCE
T0CONbits.T08BIT = 0; //16 BIT TIMER
RCONbits.IPEN = 1; //enable priority levels
INTCONbits.TMR0IE = 1; // enable interrupts, disable toan bo ngat chi cho phep ngat TMR0
INTCON2 = 0x04; //thiet lap TMR0 la ngat uu tien cao
INTCONbits.GIEH = 1; //cho phep ngat toan cuc
TMR0L = L;
TMR0H = H;
T0CONbits.TMR0ON = 1; // timer on
}
void main()
{
TRISD = TRISE = TRISBbits.TRISB4 = TRISBbits.TRISB5 = TRISAbits.TRISA4 =0;

/* TRISBbits.TRISB4 = 0;
TRISBbits.TRISB5 = 0;


TRISEbits.TRISE2 = 0;
TRISEbits.TRISE1 = 0;
TRISEbits.TRISE0 = 0;
TRISDbits.TRISD0 = 0;
TRISDbits.TRISD2 = 0;
TRISDbits.TRISD1 = 0;*/

LATD = 0X00;
timer0_10();
//-------------------------------------------------------
//vay tay chao
SERVO[2]=1920; //gap vai trai giua
SERVO[3]=1959; //gap vai phai giua
delay_ms(100);
SERVO[0]=1885;//tay trai xuong
delay_ms(100);
SERVO[1]=1870;//tay phai len
delay_ms(100);
// vay tay chao--------
for (i=0;i<3;i++)
{
SERVO[3]=1965; //gap vai phai len
SERVO[4]=1900; //quay dau sang trai
delay_ms(100);
SERVO[3]=1930; //gap vai phai xuong
SERVO[4]=1945; //quay dau sang phai
delay_ms(100);
}

while(1)
{
test_tay();

}

}


// vec to ngat uu tien cao

#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh(void)
{
_asm
goto ngatmuccao //nhay toi chuong trinh ngat
_endasm
}

//----------------------------------------------------------------------------
// chuong trinh ngat muc uu tien cao

#pragma code
#pragma interrupt ngatmuccao

void ngatmuccao() {

if (INTCONbits.TMR0IF) {
pulse_max++; // Pulse Max Increment
pulse_top++; // Pulse Top Increment

if (pulse_max >= set)
{
pulse_max=0;
pulse_top=0;
LATD = 0X00;
LATE = 0X00;

}

if (pulse_top == SERVO[0]) LATDbits.LATD0 =1; //vai trai
if (pulse_top == SERVO[1]) LATDbits.LATD1 =1; //canh trai
if (pulse_top == SERVO[2]) LATDbits.LATD2 =1;
if (pulse_top == SERVO[3]) LATDbits.LATD3 =1;
if (pulse_top == SERVO[4]) LATDbits.LATD4 =1;
if (pulse_top == SERVO[5]) LATDbits.LATD5 =1;
if (pulse_top == SERVO[6]) LATDbits.LATD6 =1;
if (pulse_top == SERVO[7]) LATDbits.LATD7 =1;

if (pulse_top == SERVO[8]) LATEbits.LATE2 =1; //vai phai
if (pulse_top == SERVO[9]) LATEbits.LATE1 =1; //canh phai
if (pulse_top == SERVO[10]) LATEbits.LATE0 =1;
if (pulse_top == SERVO[11]) LATAbits.LATA4 =1;
if (pulse_top == SERVO[12]) LATBbits.LATB5 =1;
if (pulse_top == SERVO[13]) LATBbits.LATB4 =1;
if (pulse_top == SERVO[14]) LATBbits.LATB3 =1;
if (pulse_top == SERVO[15]) LATBbits.LATB2 =1;

TMR0L = L;
TMR0H = H;
INTCONbits.TMR0IF = 0;
}
}

"

huyphuc92 16-06-2013 12:07 PM

Đọc hiểu được cái code đầu bài :(
Nếu em không có căn bản về C, chưa từng viết code C cho VDK thì nên vào luồng nào để học???
Cấu trúc C em mù tịt :(


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