Mình đang làm đề tài led xoay tạo chữ , code viết cho pic 16f877a , pro nào giúp mình với , ai có code hay tài liệu gì cho mình tham khảo với , đây là code mình viết nhưng nhiêu ký tự quá nó không hiện lên được
#include <16F877a.h >
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NOLVP
#use delay(clock=4000000)
#define a porta
#define b portb
#define c portc
#define d portd
void XUAT_A(int k);
void XUAT_B(int k);
void XUAT_C(int k);
void XUAT_D(int k);
void XUAT_E(int k);
void XUAT_G(int k);
void XUAT_H(int k);
void XUAT_I(int k);
void XUAT_K(int k);
void XUAT_L(int k);
void XUAT_M(int k);
void XUAT_N(int k);
void XUAT_O(int k);
void XUAT_P(int k);
void XUAT_R(int k);
void XUAT_S(int k);
void XUAT_T(int k);
void XUAT_U(int k);
void XUAT_DC(int k);
int k;
int i;
int t,x;
int count;
#int_TIMER0
void interrupt_timer0(){
set_timer0(5);
count++;
if(count ==80) //
{
count=0;
t++;
if (t>100)
t=0;
}
}
#INT_EXT
Void RB_LED() // hàm phu.c vu. nga('t hong ngoai!
{
delay_ms(t);
XUAT_T(K);
XUAT_R(K);
XUAT_U(K);
XUAT_O(K);
XUAT_N(K);
XUAT_G(K);
XUAT_DC(K);
XUAT_C(K);
XUAT_D(K);
XUAT_K(K);
XUAT_T(K);
XUAT_DC(K);
XUAT_C(K);
XUAT_A(K);
XUAT_O(K);
XUAT_DC(K);
XUAT_T(K);
XUAT_H(K);
XUAT_A(K);
XUAT_N(K);
XUAT_G(K);
XUAT_DC(K);
XUAT_L(K);
XUAT_O(K);
XUAT_P(K);
XUAT_DC(K);
XUAT_C(K);
XUAT_D(K);
XUAT_D(K);
XUAT_T(K);
XUAT_DC(K);
XUAT_K(K);
XUAT_H(K);
XUAT_O(K);
XUAT_A(K);
XUAT_DC(K);
XUAT_D(K);
XUAT_I(K);
XUAT_E(K);
XUAT_N(K);
XUAT_DC(K);
XUAT_T(K);
XUAT_U(K);
XUAT_DC(K);
XUAT_T(K);
XUAT_I(K);
XUAT_N(K);
XUAT_DC(K);
XUAT_H(K);
XUAT_O(K);
XUAT_C(K);
}
unsigned int Mang_A[10][7]={
{255,131,237,238,237,131,255}, // A
{255,128,182,182,182,201,255}, // B
{255,193,190,190,190,221,255}, // C
{255,128,190,190,190,193,255}, // D
{255,247,128,182,190,193,255}, // Ð
{255,128,182,182,182,182,255}, // E
{255,193,190,182,182,199,255}, // G
{255,128,247,247,247,128,255}, // H
{255,190,190,128,190,190,255}, // I
{255,128,247,235,221,190,255} // K
};
unsigned int Mang_B[10][7]={
{255,128,191,191,191,191,255}, // L
{255,128,253,251,253,128,255}, // M
{255,128,253,251,247,128,255}, // N
{255,193,190,190,190,193,255}, // O
{255,128,246,246,246,249,255}, // P
{255,128,246,230,214,185,255}, // R
{255,185,182,182,182,206,255}, // S
{255,254,254,128,254,254,255}, // T
{255,192,191,191,191,192,255}, // U
{255,247,247,247,247,255,255} // -
};
void XUAT_A(int ){
for(i=0;i<7;i++){
portc=Mang_A[0][i];
delay_us(600);
portc=0xff;
}}
void XUAT_B(int ){
for(i=0;i<7;i++){
portc=Mang_A[1][i];
delay_us(600);
portc=0xff;
}}
void XUAT_C(int ){
for(i=0;i<7;i++){
portc=Mang_A[2][i];
delay_us(600);
portc=0xff;
}}
void XUAT_D(int ){
for(i=0;i<7;i++){
portc=Mang_A[4][i];
delay_us(600);
portc=0xff;
}}
void XUAT_E(int ){
for(i=0;i<7;i++){
portc=Mang_A[5][i];
delay_us(600);
portc=0xff;
}}
void XUAT_G(int ){
for(i=0;i<7;i++){
portc=Mang_A[6][i];
delay_us(600);
portc=0xff;
}}
void XUAT_H(int ){
for(i=0;i<7;i++){
portc=Mang_A[7][i];
delay_us(600);
portc=0xff;
}}
void XUAT_I(int ){
for(i=0;i<7;i++){
portc=Mang_A[8][i];
delay_us(600);
portc=0xff;
}}
void XUAT_K(int ){
for(i=0;i<7;i++){
portc=Mang_A[9][i];
delay_us(600);
portc=0xff;
}}
void XUAT_L(int ){
for(i=0;i<7;i++){
portc=Mang_B[0][i];
delay_us(600);
portc=0xff;
}}
void XUAT_M(int ){
for(i=0;i<7;i++){
portc=Mang_B[1][i];
delay_us(600);
portc=0xff;
}}
void XUAT_N(int ){
for(i=0;i<7;i++){
portc=Mang_B[2][i];
delay_us(600);
portc=0xff;
}}
void XUAT_O(int ){
for(i=0;i<7;i++){
portc=Mang_B[3][i];
delay_us(600);
portc=0xff;
}}
void XUAT_P(int ){
for(i=0;i<7;i++){
portc=Mang_B[4][i];
delay_us(600);
portc=0xff;
}}
void XUAT_R(int ){
for(i=0;i<7;i++){
portc=Mang_B[5][i];
delay_us(600);
portc=0xff;
}}
void XUAT_S(int ){
for(i=0;i<7;i++){
portc=Mang_B[6][i];
delay_us(600);
portc=0xff;
}}
void XUAT_T(int ){
for(i=0;i<7;i++){
portc=Mang_B[7][i];
delay_us(600);
portc=0xff;
}}
void XUAT_U(int ){
for(i=0;i<7;i++){
portc=Mang_B[8][i];
delay_us(600);
portc=0xff;
}}
void XUAT_DC(int ){
for(i=0;i<7;i++){
portc=Mang_B[9][i];
delay_us(600);
portc=0xff;
}}
void main()
{
trisc=0x00;
enable_interrupts(INT_TIMER0);//Khai báo cho phép nga('t Timer0
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
enable_interrupts (GLOBAL) ; // cho phép nga('t toàn cu.c
enable_interrupts (INT_EXT) ; // cho phép nga('t RB
ext_int_edge(H_TO_L);
set_timer0(5);
while(1){
}
}
#include <16F877a.h >
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NOLVP
#use delay(clock=4000000)
#define a porta
#define b portb
#define c portc
#define d portd
void XUAT_A(int k);
void XUAT_B(int k);
void XUAT_C(int k);
void XUAT_D(int k);
void XUAT_E(int k);
void XUAT_G(int k);
void XUAT_H(int k);
void XUAT_I(int k);
void XUAT_K(int k);
void XUAT_L(int k);
void XUAT_M(int k);
void XUAT_N(int k);
void XUAT_O(int k);
void XUAT_P(int k);
void XUAT_R(int k);
void XUAT_S(int k);
void XUAT_T(int k);
void XUAT_U(int k);
void XUAT_DC(int k);
int k;
int i;
int t,x;
int count;
#int_TIMER0
void interrupt_timer0(){
set_timer0(5);
count++;
if(count ==80) //
{
count=0;
t++;
if (t>100)
t=0;
}
}
#INT_EXT
Void RB_LED() // hàm phu.c vu. nga('t hong ngoai!
{
delay_ms(t);
XUAT_T(K);
XUAT_R(K);
XUAT_U(K);
XUAT_O(K);
XUAT_N(K);
XUAT_G(K);
XUAT_DC(K);
XUAT_C(K);
XUAT_D(K);
XUAT_K(K);
XUAT_T(K);
XUAT_DC(K);
XUAT_C(K);
XUAT_A(K);
XUAT_O(K);
XUAT_DC(K);
XUAT_T(K);
XUAT_H(K);
XUAT_A(K);
XUAT_N(K);
XUAT_G(K);
XUAT_DC(K);
XUAT_L(K);
XUAT_O(K);
XUAT_P(K);
XUAT_DC(K);
XUAT_C(K);
XUAT_D(K);
XUAT_D(K);
XUAT_T(K);
XUAT_DC(K);
XUAT_K(K);
XUAT_H(K);
XUAT_O(K);
XUAT_A(K);
XUAT_DC(K);
XUAT_D(K);
XUAT_I(K);
XUAT_E(K);
XUAT_N(K);
XUAT_DC(K);
XUAT_T(K);
XUAT_U(K);
XUAT_DC(K);
XUAT_T(K);
XUAT_I(K);
XUAT_N(K);
XUAT_DC(K);
XUAT_H(K);
XUAT_O(K);
XUAT_C(K);
}
unsigned int Mang_A[10][7]={
{255,131,237,238,237,131,255}, // A
{255,128,182,182,182,201,255}, // B
{255,193,190,190,190,221,255}, // C
{255,128,190,190,190,193,255}, // D
{255,247,128,182,190,193,255}, // Ð
{255,128,182,182,182,182,255}, // E
{255,193,190,182,182,199,255}, // G
{255,128,247,247,247,128,255}, // H
{255,190,190,128,190,190,255}, // I
{255,128,247,235,221,190,255} // K
};
unsigned int Mang_B[10][7]={
{255,128,191,191,191,191,255}, // L
{255,128,253,251,253,128,255}, // M
{255,128,253,251,247,128,255}, // N
{255,193,190,190,190,193,255}, // O
{255,128,246,246,246,249,255}, // P
{255,128,246,230,214,185,255}, // R
{255,185,182,182,182,206,255}, // S
{255,254,254,128,254,254,255}, // T
{255,192,191,191,191,192,255}, // U
{255,247,247,247,247,255,255} // -
};
void XUAT_A(int ){
for(i=0;i<7;i++){
portc=Mang_A[0][i];
delay_us(600);
portc=0xff;
}}
void XUAT_B(int ){
for(i=0;i<7;i++){
portc=Mang_A[1][i];
delay_us(600);
portc=0xff;
}}
void XUAT_C(int ){
for(i=0;i<7;i++){
portc=Mang_A[2][i];
delay_us(600);
portc=0xff;
}}
void XUAT_D(int ){
for(i=0;i<7;i++){
portc=Mang_A[4][i];
delay_us(600);
portc=0xff;
}}
void XUAT_E(int ){
for(i=0;i<7;i++){
portc=Mang_A[5][i];
delay_us(600);
portc=0xff;
}}
void XUAT_G(int ){
for(i=0;i<7;i++){
portc=Mang_A[6][i];
delay_us(600);
portc=0xff;
}}
void XUAT_H(int ){
for(i=0;i<7;i++){
portc=Mang_A[7][i];
delay_us(600);
portc=0xff;
}}
void XUAT_I(int ){
for(i=0;i<7;i++){
portc=Mang_A[8][i];
delay_us(600);
portc=0xff;
}}
void XUAT_K(int ){
for(i=0;i<7;i++){
portc=Mang_A[9][i];
delay_us(600);
portc=0xff;
}}
void XUAT_L(int ){
for(i=0;i<7;i++){
portc=Mang_B[0][i];
delay_us(600);
portc=0xff;
}}
void XUAT_M(int ){
for(i=0;i<7;i++){
portc=Mang_B[1][i];
delay_us(600);
portc=0xff;
}}
void XUAT_N(int ){
for(i=0;i<7;i++){
portc=Mang_B[2][i];
delay_us(600);
portc=0xff;
}}
void XUAT_O(int ){
for(i=0;i<7;i++){
portc=Mang_B[3][i];
delay_us(600);
portc=0xff;
}}
void XUAT_P(int ){
for(i=0;i<7;i++){
portc=Mang_B[4][i];
delay_us(600);
portc=0xff;
}}
void XUAT_R(int ){
for(i=0;i<7;i++){
portc=Mang_B[5][i];
delay_us(600);
portc=0xff;
}}
void XUAT_S(int ){
for(i=0;i<7;i++){
portc=Mang_B[6][i];
delay_us(600);
portc=0xff;
}}
void XUAT_T(int ){
for(i=0;i<7;i++){
portc=Mang_B[7][i];
delay_us(600);
portc=0xff;
}}
void XUAT_U(int ){
for(i=0;i<7;i++){
portc=Mang_B[8][i];
delay_us(600);
portc=0xff;
}}
void XUAT_DC(int ){
for(i=0;i<7;i++){
portc=Mang_B[9][i];
delay_us(600);
portc=0xff;
}}
void main()
{
trisc=0x00;
enable_interrupts(INT_TIMER0);//Khai báo cho phép nga('t Timer0
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
enable_interrupts (GLOBAL) ; // cho phép nga('t toàn cu.c
enable_interrupts (INT_EXT) ; // cho phép nga('t RB
ext_int_edge(H_TO_L);
set_timer0(5);
while(1){
}
}
Comment