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

Giáo trình hình thành phân đoạn ứng dụng nguyên lý cấu tạo của hệ thống mạch từ p8 pot

10 281 0

Đ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 10
Dung lượng 263,4 KB

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

Nội dung

Hình 33: Sơ đồ thuật toán xử lý mạch đo chiều dài Begin Khai báo các thư viện và các biến cần sử dụng trong chương trình Hàm quetvoid.. Nó phục vụ việc xử lý bàn phím Hàm timer1_comp_isr

Trang 1

Hình 33: Sơ đồ thuật toán xử lý mạch đo chiều dài

Begin

Khai báo các thư viện và các biến cần sử dụng trong chương trình

Hàm quet(void)

Hàm này chờ phím được ấn và trả lại giá trị của phím ấn

Hàm ext_int1_isr(void) Hàm này được thực hiện khi một ngắt ngoài xảy ra Nó phục vụ việc xử lý bàn phím

Hàm timer1_comp_isr(void) Hàm này được thực hiện khi xảy ra ngắt so sánh bộ định thời

1 Nó kích xung điều khiển

đồng thời chờ tín hiệu điều khiển trên chân PortD4

Hàm main(void)

Đây là hàm chính của chương trình Nó được thực hiện khi bắt

đầu vào chương trình

Kết thúc

Trang 2

` Các thư viện được sử dụng trong chương trình viết cho chíp:

#include <90s2313.h>

// Alphanumeric LCD Module functions

#asm

.equ lcd_port=0x18 ;PORTB

#endasm

#include <lcd.h>

#include <stdlib.h>

#include <delay.h>

#include <string.h>

Thư viện 90s2313.h chứa các hàm về phần cứng của chip AT90s2313 như: Các cổng xuất nhập dữ liệu, các thanh ghi có trong chíp, dung lượng các

bộ nhớ vv

Thư viện lcd.h chứa các hàm về phần cứng của LCD: Số dòng, số ký tự viết được trên màn hình LCD vv

Thư viện stdlib.h thư viện chứa các hàm chuẩn trong C++ Thư viện này

được tích hợp thêm một số hàm khác nữa trong phần mềm CodeVisionAVR C Compiler

Thư viện delay.h chứa các hàm sử dụng cho xử lý ngắt, và các bộ định thời tạo chễ

Thư viện string.h chứa các hàm sử dụng xử lý với ký tự

Sau phần khai báo các thư viện sử dụng trong chương trình tiếp đến khối chương trình con xử lý quét bàn phím

Sơ đồ thuật toán của chương trình xử lý quét bàn phím

Trang 3

Hình 34: Sơ đồ khối chương trình quét bàn phím mạch đếm

Sau khi quét xong bàn phím dữ liệu về chiều dài đặt được lưu lại trong

ext_int1_isr(void)

Lưu phím được ấn

Chuyển vị trí con trỏ LCD

đến tọa độ 11, 1

Kiểm tra phím ấn

Nếu là

phím tăng

thì biến

data_e +10

Nếu là phím giảm thì biến data_e - 10

Nếu biến data_e>999 thì data_e=0 Nếu biến data_e<0 thì data_e=999

Di chuyển con trỏ LCD đến tọa độ (11, 0) chuyển data_e thành xâu rồi xuất lên LCD

Chờ phím bấm tiếp theo

trễ 100ms

Kiểm tra có phải phim OK?

Đổi data_e từ cm thành số xung rồi chuyển vào OCR1 để so sánh

Kết thúc

Nếu là phím sang trái thì biến

data_e /10

Nếu là phím sang phải thì biến data_e *10

Trang 4

đưa vào chíp Cuối cùng trong chương trình chính chíp xử lý tín hiệu Encoder chuyển đổi các xung thành độ dài Cm và sau khi đủ chiều dài chíp xuất ra một tín hiệu đưa vào PLC

Hình 35: Sơ đồ khối chương trình chính mạch đếm

Main (void)

Chọn PortD4 làm chân xuất dữ liệu

Bộ định thời 1 hoạt động với tần số xung nhịp trên chân T1 và ở chế độ giá trị cao nhất là giá trị của thanh ghi OCR1 Ngắt là ngắt so sánh bộ

định thời

Ngắt ngoài 1 cho phép được hoạt động

Nó có tích cực trên sườn lên của chân INT1.

Khởi tạo LCD

Xuất lên LCD dòng chữ “do dai dat Cm”

Chuyển con trỏ xuống dòng 2, xuất lên LCD dòng chữ “Do dai do Cm”

Đổi data_e từ đơn vị cm sang số xung, rồi nạp vào thanh ghi OCR1

Chuyển data_e sang dạng xâu, rồi xuất lên LCD ở tọa độ (11,0)

Chuyển con trỏ LCD sang tọa độ (11,1) rồi xuất giá trị hiện thời đo

được lên LCD

Trang 5

Ch−¬ng tr×nh ®iÒu khiÓn vµ m¹ch ®o cô thÓ nh− sau:

#include <90s2313.h>

// Alphanumeric LCD Module functions PhÇn khai b¸o c¸c th−

#asm

.equ lcd_port=0x18 ;PORTB

#include <lcd.h>

#include <stdlib.h>

#include <delay.h>

#include <string.h>

flash char *data_f[]={"Do dai do Cm","Do dai dat Cm"};

eeprom int data_e=100;

char i;

char str[4];

char quet(void)

{

#asm

LOOP:

sbis $10,3

rjmp LOOP

#endasm

return PIND&0x07;

}

// External Interrupt 1 service routine

// §o¹n ch−¬ng tr×nh xö lý quÐt bµn phÝm

interrupt [EXT_INT1] void ext_int1_isr(void)

{

// Place your code here

char b;

b=quet();

Trang 6

TCCR1B=0x00;

lcd_gotoxy(11,1);

while(b!=6)

{

switch(b){

case 2: data_e*=10;

break;

case 1: data_e/=10;

break;

case 4:data_e++;

break;

case 3: data_e ;

}

if(data_e<0) data_e=999 ;

if(data_e>999) data_e=0;

lcd_gotoxy(11,0);

itoa(data_e,str);

lcd_puts(str);

if(strlen(str)<3)

for(i=1;i<=3-strlen(str);i++)

lcd_putchar(' ');

b=quet();

delay_ms(100);

}

OCR1=data_e*57.14;

TCCR1B=0x0f;

}

// Timer 1 output compare interrupt service routine

interrupt [TIM1_COMP] void timer1_comp_isr(void)

{

Trang 7

// Place your code here

PORTD|=0x10;

TCCR1B=0x00;

delay_ms(1000);

PORTD&=0xEF;

#asm

LOOP1:

sbic $10,6

rjmp LOOP1

#endasm

TCCR1B=0x0F;

}

// Declare your global variables here

// §o¹n ch−¬ng tr×nh chÝnh

void main(void)

{

DDRD=0x10;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Timer/Counter 1 initialization

// Clock source: T1 pin Rising Edge

// Mode: CTC top=OCR1A

// OC1 output: Discon

// Noise Canceler: Off

// Input Capture on Falling Edge

Trang 8

// Input Capture Interrupt: Off

// Compare Match Interrupt: On

TCCR1B=0x0F;

// External Interrupt(s) initialization

// INT0: Off

// INT1: On

// INT1 Mode: Rising Edge

GIMSK=0x80;

MCUCR=0x0C;

GIFR=0x80;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x40;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

// LCD module initialization

lcd_init(16);

// Global enable interrupts

#asm("sei")

lcd_putsf(data_f[1]);

lcd_gotoxy(0,1);

lcd_putsf(data_f[0]);

OCR1=data_e*57.14;

itoa(data_e,str);

lcd_gotoxy(11,0);

lcd_puts(str);

if(strlen(str)<3);

Trang 9

+5V +5V

+5V

+5V

+5V

+5V

KEY 7

RW

KEY 3 XTA2

KEY 2

KEY8

KEY 7

XTA1

D6

E

D7 D4

KEY1

KEY 4

KEY 4

KEY 3

D6 KEY 8

XTA2

D5 RESET

KEY 5

KEY 4

KEY 1

D5

+5V

KEY5 KEY 2

D7

KEY 6 XTA1

RESET

V0 KEY 5

RW

KEY 2

KEY 1

V0

KEY6

RS KEY3

RS

KEY 6

RESET

D4

E U2

AT90S2313/SO

1 4

20

12 14 16 18

2 6 8 11

RESET XTAL2

VCC

PB0/AIN0 PB2 PB3/OC1 PB4 PB5/MOSI PB6/MISO PB7/SCK

PD0/RXD PD1/TXD PD2/INT0 PD4/T0 PD6/ICP

Y1

4MHz

SW2 SW3

SW5

J3

Nguon

1

U3 LM7805 1

3 VI

J2

LCD

C15 470uF

C13 10uF

SW6

D2

1N4007

D1 1N4148

SW7

R4

4.7K

C12 105

SW8

C14 104

C11 10uF

R5

10K

P1

CONNECTOR DB9

5 4 3 2 1

R2 RESISTOR VAR

R7

RESISTOR SIP 9

4 6 8

R3 100 J1

Input 1 3

D3

LED

C3

U1

74148

10 12 1 3 5

9 6 14

D0 D2 D4 D6 EI

Q0 Q2 GS

C8

C9 C10

SW9

SW1

for(i=1;i<=3-strlen(str);i++)

lcd_putchar(' ');

while (1)

{

// Place your code here

lcd_gotoxy(11,1);

itoa(TCNT1*0.0175,str);

lcd_puts(str);

if(strlen(str)<3);

for(i=1;i<=3-strlen(str);i++)

lcd_putchar(' ');

delay_ms(5);

};

}

Hình 36.Sơ đồ mạch nguyên lý của mạch đo chiều dài

Trang 10

Báo cáo tốt nghiệp Nguyễn Duy Hoàng

4.3 Chương trình điều khiển

Để thiết kế hệ thống điều khiển tự động cắt ống em đã thiết kế hai phần bao gồm: Cơ khí và điện điều khiển

Về cơ khí :

Để kéo được ống nhựa Φ32 ( thay cho ống thép ở thực tế), em đã dùng hai khối lô kẹp vào ống và các khối lô này được truyền động bằng động cơ

220V AC 50 W Để cắt được ống em dùng một dao dạng đĩa quay tròn lắp trên một động cơ 1 chiều 25 W Ngoài ra còn có các xilanh khí nén dùng để

đẩy dao xuống và kẹp chặt ống khi cắt, các xilanh này được điều khiển bằng các van thuỷ khí 220 V

Về mạch điều khiển:

Mạch điều khiển được thiết kế sao cho có thể cắt ống bằng tay thông qua ấn nút bấm hoặc cắt tự động thông qua việc điều khiển của PLC

Click to buy NOW!

w

w

w

.d ocu -tra c k. co

w d ocu -tra c k. co

m

.

Ngày đăng: 14/08/2014, 08:23

HÌNH ẢNH LIÊN QUAN

Hình 33: Sơ đồ thuật toán xử lý mạch đo chiều dài - Giáo trình hình thành phân đoạn ứng dụng nguyên lý cấu tạo của hệ thống mạch từ p8 pot
Hình 33 Sơ đồ thuật toán xử lý mạch đo chiều dài (Trang 1)
Hình 34: Sơ đồ khối chương trình quét bàn phím mạch đếm - Giáo trình hình thành phân đoạn ứng dụng nguyên lý cấu tạo của hệ thống mạch từ p8 pot
Hình 34 Sơ đồ khối chương trình quét bàn phím mạch đếm (Trang 3)
Hình 35: Sơ đồ khối chương trình chính mạch đếm - Giáo trình hình thành phân đoạn ứng dụng nguyên lý cấu tạo của hệ thống mạch từ p8 pot
Hình 35 Sơ đồ khối chương trình chính mạch đếm (Trang 4)
Hình 36.Sơ đồ mạch nguyên lý của mạch đo chiều dài - Giáo trình hình thành phân đoạn ứng dụng nguyên lý cấu tạo của hệ thống mạch từ p8 pot
Hình 36. Sơ đồ mạch nguyên lý của mạch đo chiều dài (Trang 9)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm