PHUCKIETNGHIEM
PHUCKIETNGHIEM
}
Bài 2.2
#include <Bai 2_2.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,
NOLVP
#use delay(clock=8M)
void delay400ms()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
for(int16 i=0; i<800; i++)
{
set_timer0(0);
WHILE(get_timer0() <250);
}
}
void main(void)
{
while(1)
{
output_c(0x01);
delay400ms();
output_c(0x00);
delay400ms();
}
}
Bài 2.3
int16 dem;
int16 tram, chuc, donvi;
int8 i;
char led7s[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09};
void delay_100ms() {
Setup_timer_1(T1_INTERNAL | T1_DIV_BY_2);
For (i = 0; i < 5; i++) {
set_timer1(25536);
while (get_timer1() > 25536);
}
}
#INT_TIMER0
void qled() {
Output_d(0xff);
Output_b(LED7s[tram]);
output_low(PIN_D2);
delay_ms(2);
Output_d(0xff);
Output_b(LED7s[chuc]);
output_low(PIN_D1);
delay_ms(2);
Output_d(0xff);
Output_b(LED7s[donvi]);
output_low(PIN_D0);
delay_ms(2);
}
void main(void) {
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0);
setup_timer_0(RTCC_DIV_64 | RTCC_INTERNAL);
set_timer0(193);
dem = 0;
while (1) {
tram = dem / 100;
chuc = (dem % 100) / 10;
donvi = dem % 10;
dem = dem + 1;
delay_100ms();
}
}
Bài 2.5
#include <BAI 2.5.h>
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,
NOLVP
#use delay(clock=8M)
int8 dv,chuc,dem;
int8 den[9]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
const int8 led[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
const unsigned char ct[2]={0x63,0xE0};
void dl_ms(int16 x)
{
for(int16 j=0;j<x;j++)
delay_us(1000);
}
#INT_TIMER1
void qled()
{
dv=dem%10;
chuc=dem/10;
output_d(0xff);
output_b(led[chuc]);
output_low(pin_D1);
delay_ms(3);
output_d(0xff);
output_b(led[dv]);
output_low(pin_D0);
delay_ms(3);
output_d(0xff);
output_b(ct[1]);
output_low(pin_D2);
delay_ms(3);
output_d(0xff);
output_b(ct[0]);
output_low(pin_D3);
delay_ms(3);
}
void main(void)
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
while(dem<10)
{
for(int8 t=0;t<9;t++)
{
output_c(den[t]);
dl_ms(100);
}
dem=dem+1;
}
While(TRUE)
{
dem=10;
qled();
}
}