Lâu rồi không dùng, nhưng hình như dùng printf chứ không phải putc nhỉ?
Chúc vui
Chúc vui
#include <16F877A.h>
#include <def_877a.h>
#device *=16 adc=10
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
#use fast_io (b)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)
#include <lcd_lib_4bit.c>
#INT_RDA
Receive_isr()
{
char c;
disable_interrupts(GLOBAL);
c = getc(); // nhận ký tự
putc(c); // truyền trả lại cho máy tính
enable_interrupts(GLOBAL);
}
//-----------------------------------------------------------------
void main(void)
{
output_b(0xC0);
set_tris_a(0xC0);
set_tris_b(0xC1);
port_b_pullups (TRUE);
set_tris_c(0xD0);
LCD_init();
delay_ms(500);
LCD_putcmd(0x80);
enable_interrupts(INT_RDA);
enable_interrupts (global);
while (1) {}
}
...
void main(void)
{
...
while(!txif) putc('*');
}
while (1) {
while (!TXIF); //Wait until the transmit buffer is empty;
putc(c); //Send one character
delay_ms(500); //Wait for a while so human eye can see it
}
#include "D:\PIC PROGRAM\RS232\goi ky tu.h"
#include <LCD.C>
#include <KBD.C>
#include <stdio.h>
#include <stdlib.h>
char k,c;
#int_RDA
RDA_isr()
{
c=getch();
lcd_gotoxy(1,2);
cd_putc(c);
}
void main()
{
port_b_pullups(TRUE);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
kbd_init();
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while(1)
{
k=kbd_getc();
if (k!=0)
{
if(k!='*')
{
lcd_gotoxy(1,1);
lcd_putc(k);
printf("key = %c",k);
}
else lcd_putc('\f');
}
}
}
char string[10];
#int_RDA
RDA_isr()
{
char i;
gets(string);
lcd_gotoxy(1,2);
for (i=0;i<strlen(string);i++)
lcd_putc(string[i]);
}
#include <16F877A.h>
#include <def_877a.h>
#device *=16 adc=10
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
#use fast_io (b)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#define OK PIN_B6
#define Cancel PIN_B7
#define OK_PRESSED !input(OK)
#include <lcd_lib_4bit.c>
char mang[11];
int8 dem=0;
int1 flag;
char c;
//-----------------------------------------------------------------
void main(void)
{
int8 i;
press=0;
output_b(0xC0);
set_tris_a(0xC0);
set_tris_b(0xC1);
port_b_pullups (TRUE);
set_tris_c(0x90);
LCD_putcmd(0x01);
LCD_putcmd(0x80);
while(1)
{
if(kbhit()) {c=getc();
if(c=='0') flag=1;
if((c=='9')&&(flag==1)){flag=0; break;}
if(flag==1) {dem++; mang[dem]=c;}}
}
mang[10]='\0'; // kết thúc xâu ký tự
printf(LCD_putchar,"%s",mang); // Hiển thị lên LCD
printf("%s",mang); // truyền lên máy tính
}
#include <16F877A.h>
#include <def_877a.h>
#device *=16 adc=10
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
#use fast_io (b)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <lcd_lib_4bit.c>
char mang[11];
int8 dem=0;
int1 flag, flag1;
char c;
#INT_RDA
Receive_isr()
{
c=getc();
if(c=='0') flag=1;
if((c=='9')&&(flag==1)){mang[dem]=c; dem++; flag=0; flag1=1;}
if(flag==1) {mang[dem]=c; dem++;}
}
//-----------------------------------------------------------------
void main(void)
{
output_b(0xC0);
set_tris_a(0xC0);
set_tris_b(0xC1);
port_b_pullups (TRUE);
set_tris_c(0x90);
LCD_init();
delay_ms(500);
LCD_putcmd(0x80);
Printf(LCD_putchar,"Hi ev'body"); //Hien thi man hinh 1
LCD_putcmd(0xC0);
Printf(LCD_putchar,__DATE__);
enable_interrupts(INT_RDA);
enable_interrupts (global);
while(1)
{
if(flag1==1)
{
LCD_putcmd(0x01); //xoa man hinh
LCD_putcmd(0x80);
mang[10]='\0';
printf(LCD_putchar,"%s",mang);
printf("%s",mang);
}
}
}
Comment