1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

bài tập vi xử lí

40 26 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 506,73 KB

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

Nội dung

Vi xử lý vốn là một khái niệm đã quá quen thuộc với những người sử dụng máy tính hay những kĩ sư, lập trình viên. Tuy nhiên đây cũng là một khái niệm có một vài điểm cần lưu ý. Hôm nay BKAII sẽ cùng các bạn khái quát lại một số những kiến thức liên quan đến vi xử lý nhé!

Trang 4

x1=0b10000000;

y1=0b00000001;

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

{

if(PINA.0==0) {

x=x1; for (j=8-i;j>0;j )

{

PORTC=x; x=x>>1; delay_ms(50); }

x1=(x1>>1)+0b10000000; }

if(PINA.1==0) {

y=y1;

for (j=8-i;j>0;j )

{

PORTC=y; y=y<<1; delay_ms(50); }

y1=(y1<<1)+0b00000001;

}

}

}

Trang 6

#include <mega16.h>

#include <delay.h>

int x,y,i;

void main(void)

Trang 7

}

Trang 8

}

}

6 Thực hiện kết nối phần cứng và viết chương trình nhận dữ liệu từ hai nút nhấn, một nút nhấn làm số LED sáng chạy từ hai bên vào giữa, một nút làm số LED sáng chạy từ giữa ra hai bên tăng dần.

Trang 11

#include <mega16.h>

#include <delay.h>

#define HANG1 PORTA.0

#define HANG2 PORTA.1

#define HANG3 PORTA.2

#define HANG4 PORTA.3

#define COT1 PINA.4

#define COT2 PINA.5

#define COT3 PINA.6

#define COT4 PINA.7

char

led7[10]={0b10111111,0b10000110,0b11011011,0b11001111,0b11100110,0b11101101,0b11111101,0b10000111,0b111111111,0b11101111};

Trang 13

#define hang0 PORTA.0

#define hang1 PORTA.1

#define hang2 PORTA.2

#define hang3 PORTA.3

#define cot0 PINA.4

#define cot1 PINA.5

Trang 14

#define cot2 PINA.6

#define cot3 PINA.7

return key;

}

Trang 16

banphim();

hienthi(banphim());

}

}

Câu 10: Thực hiện HMI nhập dữ liệu 4 chữ số cho một biến x từ các phím “tăng”,

“giảm”, “trái”, “phải”, “enter”, hiển thị lên 4 LED 7 đoạn.

#include <mega16.h>

#include <delay.h>

#define UP PINA.0

#define DOWN PINA.1

#define LEFT PINA.2

#define RIGHT PINA.3

#define ENTER PINA.4

#define SETTING PINA.5

unsigned char led7[10]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE4,0xFE,0xF6};unsigned char quetled[4]={0b00001110,0b00001101,0b00001011,0b00000111};

unsigned char abcd[4];

int i,a,b,c,d;

Trang 18

a=0; }

b=0; }

Trang 19

{ c=0; } }

if(i==3) {

d++; if(d>9) { d=0; } }

while(!UP); }

if(!DOWN) {

if(i==0) {

a ; if(a<0) { a=9; } }

if(i==1) {

b ; if(b<0)

Trang 20

{

b=9; }

}

if(i==2) {

c ;

if(c<0) {

c=9; }

}

if(i==3) {

d ;

if(d<0) {

d=9; }

}

}

while(!DOWN); }

void main(void){

{

DDRA=0x00;DDRC=0xFF;

Trang 21

{

PORTC=led7[a]; }

if(i==1)

{

PORTC=led7[b]; }

if(i==2)

{

PORTC=led7[c]; }

if(i==3)

{

PORTC=led7[d]; }

}

if(!ENTER)

{

hienthi();

Trang 23

{

putchar(1); }

break;

case(0b11111101): {

putchar(2); }

break;

case(0b11111011): {

putchar(3); }

break;

case(0b11110111): {

putchar(4); }

break;

case(0b11101111): {

putchar(5); }

break;

case(0b11011111): {

putchar(6);

Trang 25

switch(getchar()) {

case(1):

{

PORTC=led7[1]; }

break;

case(2):

{

PORTC=led7[2]; }

break;

case(3):

{

PORTC=led7[3]; }

break;

case(4):

{

PORTC=led7[4]; }

break;

case(5):

{

PORTC=led7[5]; }

break;

case(6):

Trang 26

Lệnh Truyền

Trang 27

#include <mega16.h>

#include <stdio.h>void main(void){

case(0b11111110): {

putchar(1); }

break;

case(0b11111101): {

putchar(2); }

break;

case(0b11111011): {

putchar(3); }

break;

case(0b11110111):

Trang 28

{

putchar(4); }

break;

case(0b11101111): {

putchar(5); }

break;

case(0b11011111): {

putchar(6); }

break;

case(0b10111111): {

putchar(7); }

break;

case(0b01111111): {

putchar(8); }

break;

}

}

}

Trang 30

hienthi(2); }

break; case(3): {

hienthi(3); }

break; case(4): {

hienthi(4); }

break; case(5): {

hienthi(5); }

break; case(6): {

hienthi(6); }

break; case(7): {

hienthi(7); }

break;

Trang 31

Câu 13: Thực hiện kết nối phần cứng viết chương trình nhận dữ liệu từ bàn phím

ma trận nối vào Atmega16-1 truyền qua USART hiện số từ 1 đến 8 lên led 7 đoạn nối vào Atmega16-2.

Trang 32

PORTC=led[b]; PORTB=led[a]; }

#define hang0 PORTA.0

#define hang1 PORTA.1

#define hang2 PORTA.2

#define hang3 PORTA.3

#define cot0 PINA.4

#define cot1 PINA.5

#define cot2 PINA.6

#define cot3 PINA.7int key,x,y,z;

Trang 34

Câu 14: Thực hiện kết nối phần cứng viết chương trình nhận dữ liệu từ bàn phím

ma trận nối vào Atmega16-1 truyền qua USART hiện số từ 1 đến 8 lên LCD nối vào Atmega16-2.

Lệnh truyền

#include <mega16.h>

#include <delay.h>

#define hang0 PORTA.0

#define hang1 PORTA.1

#define hang2 PORTA.2

#define hang3 PORTA.3

#define cot0 PINA.4

#define cot1 PINA.5

#define cot2 PINA.6

Trang 35

#define cot3 PINA.7

}

return key;

}

Trang 39

unsigned char tachso[3];

void hienthi(unsigned long x)

Trang 40

PORTC=led7[tachso[0]]; delay_us(100);

PORTB=0xFF;

delay_us(100);

PORTB=quetled[4];

PORTC=led7[tachso[2]]; delay_us(100);

Ngày đăng: 15/06/2021, 10:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w