1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI TẬP VỀ PIC 16F877 pptx

4 361 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 65,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

1

1/ Chương trình dịch Led P2.7 – P2.0 CTC delay có thể tùy chỉnh, delay tối đa là 12,75s

ORG 0030H MOV TMOD,#01H MOV A,#80H LAP:

MOV P2,A CALL DELAY

RR A SJMP LAP DELAY:

MOV R7,0

MOV TL0,#LOW(-50000) SETB TR0

JNB TF0,$

INC R7 CLR TF0 CLR TR0 CJNE R7,#20,LP RET

END

2

#include "16F877A.H"

#use delay(clock=20000000)

#use Fast_IO(A)

#byte porta=0x05

#bit ra0=porta.0

int8 k;

#bit b0=k.0

#bit b1=k.1

#bit b2=k.2

unsigned mang1[]={0, 1, 2, 3, 4, 5, 6, 7};

unsigned mang2[]={0, 1, 3, 2, 6, 7, 5, 4};

void main()

{

set_tris_A(255);

int8 i;

while(1)

{

for(i=0;i<8;i++)

{

if (ra0==0)

k=mang1[i];

else

k=mang2[i];

output_bit(PIN_B0,b0);

Trang 2

2

output_bit(PIN_B1,b1);

output_bit(PIN_B2,b2);

delay_ms(200);

}

}

}

3 Thực hiện mạch logic

#include "16F877A.H"

#use delay(clock=20000000)

#use Fast_IO(A)

#byte porta=0x05

#bit ra0=porta.0

#bit ra1=porta.1

#bit ra2=porta.2

void main()

{

int1 a,b,c;

set_tris_a(0b000000111);

while(1)

{

a=~(((~ra0) | ra1) & (~ra2));

b=~((~ra2) & ra1);

c=~(a^b);

output_bit(PIN_A3,c);

}

}

4 Dịch Led 2 chiều !!!

#include "16F877A.H"

#use delay(clock=20000000)

#use Fast_IO(D)

#byte portd=0x08

void main()

{

int8 i,led=1;

set_tris_d(0);

Trang 3

3

while(1)

{

for(i=1;i<15;i++)

{

portd=led;

delay_ms(100);

if (i<8)

led=led<<1;

else

led=led>>1;

}

}

}

5 Tạo sóng có điều kiện đầu vào ở RB0

#include "16F877A.H"

#use delay(clock=20000000)

#use Fast_IO(B)

#byte portB=0x06

#bit RB0=portB.0

void main()

{

set_tris_B(0x00000001);

while(1)

{

if (RB0==0)

{

output_high(PIN_B6);

delay_us(125);

output_low(PIN_B6);

delay_us(125);

}

else

{

output_high(PIN_B7);

delay_ms(10);

output_low(PIN_B7);

delay_ms(10);

}

}

}

Trang 4

4

6 Đếm cạnh xuống, giải mã BCD cho vô 2 Led 7 đoạn xuất cùng 1 port

#include "16F877A.H"

#use delay(clock=20000000)

#use Fast_IO(B)

#byte portb=0x06

void main()

{

int8 count=0,a,b;

set_tris_B(0);

set_tris_A(1);

while(1)

{

b= ((count/10)<<4) + (count % 10);

portb=b;

while(!input(PIN_A0));

while(input(PIN_A0));

count=count+1;

if (count==100)

count=0;

}

}

** Thuật toán phát hiện cạnh xuống:

while(!input(PIN_A0));

while(input(PIN_A0));

** Thuật toán phát hiện cạnh lên:

while(input(PIN_A0));

while(!input(PIN_A0));

Ngày đăng: 27/07/2014, 06:21

TỪ KHÓA LIÊN QUAN

w