Professional Documents
Culture Documents
11234
11234
h>
#USE DELAY(CLOCK=20M)
INT8 DEM,MA_DEM;
VOID MAIN()
SET_TRIS_B(0X00);
WHILE(1)
FOR(DEM=0;DEM<10;DEM++}\)
MA_DEM=MA7DOAN[DEM];
OUTPUT_B(MA_DEM);
DELAY_MS(300);
* Other solve:
#INCLUDE <16f877.h>
#USE DELAY(CLOCK=20M)
INT8 DEM;
VOID MAIN()
SET_TRIS_B(0X00);
WHILE(1)
FOR(DEM=0;DEM<10;DEM++}\)
OUTPUT_B(MA7DOAN[DEM]);
DELAY_MS(300);
}
#INCLUDE <16f877.h>
#USE DELAY(CLOCK=20M)
INT8 DEM;
VOID MAIN()
SET_TRIS_B(0X00);
WHILE(1)
FOR(DEM=0;DEM<100;DEM++)
OUTPUT_C(MA7DOAN[DEM/10]);
OUTPUT_B(MA7DOAN[DEM%10]);
DELAY_MS(300);
}
#INCLUDE <16f877.h>
#USE DELAY(CLOCK=20M)
INT8 DEM,I;
VOID HIENTHI_DELAY()
{
FOR (I=0;I<200,I++)
VOID MAIN()
SET_TRIS_B(0X00); SET_TRIS_D(0X00);
OUTPUT_D(0XFF);
WHILE(1)
FOR(DEM=0;DEM<100;DEM++)
HIENTHI_DELAY();
}
* CO CHONG DOI NUT INV
#INCLUDE <16f877.h>
#USE DELAY(CLOCK=20M)
#DEFINE ON PIN_E0
INT8 X=0;
VOID CHONGDOI_INV()
IF(!INPUT(INV))
DELAY_MS(20);
IF(!INPUT(INV))
X=~X; OUTPUT_D;
WHILE(!INPUT(INV));
VOID MAIN()
SET_TRIS_E(0XFF);
SET_TRIS_D(0X00);
WHILE(1)
X=0; OUTPUT_D(X);
DO
CHONGDOI_INV();
} WHILE(INPUT(OFF));
}
}
#INCLUDE <16f877.h>
#INCLUDE<TV_KEY4X4>
VOID MAIN()
SET_TRIS_D(0X00); OUTPUT_D(0X7F);
SET_TRIS_B(0XF0); PORT_B_PULLUPS(0XF0);
WHILE(TRUE)
MP=KEY_4X4();
IF (MP!=0XFF)
OUTPUT_D(MA7DOAN[MP]);
* TV_KEY4X4.C
MAPHIM=HANG=0XFF;
FOR(COT=0;COT<4;COT++)
OUTPUT_B(MAQUETCOT[COT]);
IF (HANG!=0XFF) MAPHIM=COT*4+HANG;
RETURN(MAPHIM);
MPT1=QUET_MT_PHIM();
IF(MPT1!=0XFF)
DELAY_MS(10);
MPT1=QUET_MT_PHIM();
RETURN(MPT1);
}
#INCLUDE <TV.16F887.C>
#BIT TMR1IF=0X0C.0
INT8 X;
VOID MAIN()
SET_TRIS_D(0X00);
X=0X00;
OUTPUT_D(X);
SETUP_TIMER_1(T1_INTERNAL| T1_DIV_BY_8);
SET_TIMER1(0);
WHILE(TRUE)
IF(TMR1IF==1)
{ X=~X; OUTPUT_D(X); TMR1IF=0;}
#INCLUDE <TV.16F887.C>
#BIT TMR1IF=0X0C.0
INT8 X,DEM;
VOID MAIN()
SET_TRIS_D(0X00);
X=0X00;
OUTPUT_D(X);
SETUP_TIMER_1(T1_INTERNAL| T1_DIV_BY_8);
SET_TIMER1(3036);
WHILE(TRUE)
{
IF(TMR1IF==1)
IF (DEM==10)
#INCLUDE <TV_16F877.C>
UNSIGNED INT8 X;
VOID MAIN()
SET_TRIS_D(0X00);
X=0; OUTPUT_D(X);
SETUP_TIMER_0(RTCC_INTERNAL| T0_DIV_256);
SET_TIMER0(0);
WHILE(1)
IF (TMR0IF==1)
TMR0IF=0; SET_TIMER0(0);
X=~X; OUTPUT_D;
}
}
* DELAY 2 GIAY:
#INCLUDE <TV_16F877.C>
VOID MAIN()
SET_TRIS_D(0X00);
SET_TIMER0(60);
WHILE(1)
IF (TMR0IF==1)
IF (DEM==100)
}
#INCLUDE <TV_16F877.C>
UNSIGNED INT8 X;
VOID MAIN()
SET_TRIS_D(0X00);
X=0; OUTPUT_D(X);
SETUP_TIMER_2(T2_DIV_BY_16, 255,16);
WHILE(1)
IF (TMR0IF==1)
}
}
#INCLUDE<TV_16F877.C>
VOID MAIN()
SETUP_TIMER_0(T0_EXT_L_TO_H | T0_DIV_1);
SET_TIMER(0);
WHILE(1)
T0=GET_TIMER0();
OUTPUT_B(MA7DOAN[T0%10]);
OUTPUT_C(MA7DOAN[T0/10%10]);
OUTPUT_D(MA7DOAN[T0/100]);
}
#INCLUDE <TV_16F877.C>
VOID GIAIMA()
MATRAM=MA7DOAN[T1/100];
MACHUC=MA7DOAN[T1/10%10];
MADONVI=MA7DOAN[T1%10];
IF (MATRAM==0XC0)
MATRAM=0XFF;
IF (MACHUC ==0XC0 )
{
MACHUC=0XFF;
VOID HIENTHI()
DELAY_MS(1); OUTPUT_HIGH(PIN_D0);
DELAY_MS(1); OUTPUT_HIGH(PIN_D1);
DELAY_MS(1); OUTPUT_HIGH(PIN_D2);
VOID MAIN()
SET_TIMER1(0);
WHILE(1)
T1=GET_TIMER1()
GIAIMA();
HIENTHI();
IF (T1==1000) SET_TIMER1(0);
}
}
#INCLUDE <TV_16F877.C>
#DEVICE ADC=10
MATRAM=MA7DOAN[KQADC/100];
IF (MATRAM==0XC0) MATRAM=0XFF;
OUTPUT_B (MA7DOAN[KQADC%10]);
OUTPUT_C (MA7DOAN[KQADC/10%10]);
OUTPUT_D (MATRAM);
VOID MAIN()
SETUP_ADC (ADC_CLOCK_INTERNAL);
SETUP_ADC_PORTS(SAN0);
SETUP_ADC_CHANNEL(0);
WHILE (TRUE)
KQADC=0;
KQADC=KQADC+READ_ADC();
DELAY_MS(1);
KQADC=KQADC/2.046;
KQADC=KQADC/200;
HIEN_THI();
}
#INCLUDE <TV_16F877.C>
UNSIGNED INT8 X;
#INT_TIMER1
VOID INTERRUPT_TIMER1()
X=~X;
OUTPUT_D(X);
VOID MAIN()
SET_TRIS_D (0X00);
SET_TIMER1(0);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
WHILE(1)
}
#INCLUDE <TV_16F887.C>
#INT_TIMER1
VOID INTERRUPT_TIMER1()
SET_TIMER1(3036);
DEM++
VOID HIENTHI()
OUTPUT_B(MA7DOAN[GIAY%10]); OUTPUT_LOW(PIN_D0);
DELAY_MS(1); OUTPUT_HIGH(PIN_D0);
OUTPUT_B(MA7DOAN[GIAY/10]); OUTPUT_LOW(PIN_D1);
DELAY_MS(1); OUTPUT_HIGH(PIN_D1);
VOID MAIN()
{
SET_TRIS_B (0X00); SET_TRIS_D (0X00);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL); ENABLE_INTERRUPTS(INT_TIMER1);
GIAY=0; DEM=0;
IF (DEM>=10)
DEM=0;
IF (GIAY==59) GIAY=0;
ELSE GIAY++;
} ELSE HIENTHI();
#INCLUDE <TV_16F877.C>
SET_TRIS_D(0X00); OUTPUT_D(RDATA);
WHILE (1)
IF(KBHIT())
RDATA=GETCH();
OUTPUT_D(RDATA);
Master:
#include <main.h>
#use spi(MASTER, DI = PIN_C4, DO = PIN_C5, CLK = PIN_C3, ENABLE = PIN_C2)
void main()
{
setup_spi(spi_master|spi_l_to_h|spi_clk_div_16);
while(TRUE)
{
spi_write('8');
delay_ms(500);
}
Slave:
#include <main.h>
#use spi(SLAVE, DI = PIN_C4, DO = PIN_C5, CLK = PIN_C3, ENABLE = PIN_C2)
#define LCD_ENABLE_PIN PIN_D2
#define LCD_RS_PIN PIN_D0
#define LCD_RW_PIN PIN_D1
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
char data_in=0;
void main()
{
lcd_init();
lcd_putc("hhehehe");
setup_spi(spi_slave|spi_l_to_h|spi_clk_div_16);
while(TRUE)
{
data_in = spi_read();
while(data_in!=0)
{
lcd_gotoxy(2,2);
lcd_putc(data_in);
delay_ms(100);
}