intTypePromotion=1

Quá trình hình thành giáo trình hướng dẫn cắt thép luyện kim trong công nghệ chế tạo hợp kim p8

Chia sẻ: Afwetw Wtgwqtw | Ngày: | Loại File: PDF | Số trang:10

0
60
lượt xem
6
download

Quá trình hình thành giáo trình hướng dẫn cắt thép luyện kim trong công nghệ chế tạo hợp kim p8

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ba chế độ ngủ : chế độ rỗi (Idle), tiết kiệm điện ( Power save) và chế độ Power Down Thiết kế mạch điều khiển và hiển thị chiều dài ống Mục đích : Mạch đo chiều dài sẽ nhận tìn hiệu xung từ máy phát xung. Trên mạch thiết kế sẵn các nút ấn với các chức năng, ban đầu ng−ời vận hành sẽ ấn nút để đặt chiều dài cần đo, sau đó dữ liệu này sẽ đ−ợc l−u vào bộ nhớ Flash của chíp AVR. ...

Chủ đề:
Lưu

Nội dung Text: Quá trình hình thành giáo trình hướng dẫn cắt thép luyện kim trong công nghệ chế tạo hợp kim p8

  1. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng + 1 bộ Timer 8 bit và 1 bộ Timer 16 bit với chế độ so sánh và chia tần số tách biệt và chế độ bắt mẫu. + Ba kênh điều chế độ rộng xung PWM + Có đến 13 interrupt ngoài và trong + Bộ định thời Watchdog lập trình được. tự động reset khi treo máy + Bộ so sánh tương tự + Ba chế độ ngủ : chế độ rỗi (Idle), tiết kiệm điện ( Power save) và chế độ Power Down ThiÕt kÕ m¹ch ®iÒu khiÓn vµ hiÓn thÞ chiÒu dµi èng Môc ®Ých : M¹ch ®o chiÒu dµi sÏ nhËn t×n hiÖu xung tõ m¸y ph¸t xung. Trªn m¹ch thiÕt kÕ s½n c¸c nót Ên víi c¸c chøc n¨ng, ban ®Çu ng−êi vËn hµnh sÏ Ên nót ®Ó ®Æt chiÒu dµi cÇn ®o, sau ®ã d÷ liÖu nµy sÏ ®−îc l−u vµo bé nhí Flash cña chÝp AVR. Khi èng ch¹y m¸y ph¸t xung liªn tôc ph¸t xung vµ chÝp sÏ ®Õm nh÷ng xung nµy vµ chuyÓn thµnh cm chiÒu dµi víi 400 xung t−¬ng øng víi 7cm a. ThiÕt kÕ vµ chÕ t¹o m¹ch ®iÒu khiÓn, hiÓn thÞ chiÒu dµi èng Tõ môc ®Ých cña m¹ch ®Õm vµ cÊu tróc cña chÝp vi sö lý AT90S2313 ta ®−a ra s¬ ®å thuËt to¸n ®iÒu khiÓn nh− sau: Tr−êng §H N«ng nghiÖp I T§H K46 - Khoa C¬ §iÖn - 71 -
  2. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng 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. H×nh 33: S¬ ®å thuËt to¸n xö lý m¹ch ®o chiÒu dµi Tr−êng §H N«ng nghiÖp I T§H K46 - Khoa C¬ §iÖn - 72 -
  3. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng ` C¸c th− viÖn ®−îc sö dông trong ch−¬ng tr×nh viÕt cho chÝp: #include // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18 ;PORTB #endasm #include #include #include #include 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 Tr−êng §H N«ng nghiÖp I T§H K46 - Khoa C¬ §iÖn - 73 -
  4. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng 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µ NÕu lµ phÝm NÕu lµ phÝm NÕu lµ phÝm t¨ng gi¶m sang ph¶i phÝm sang tr¸i th× biÕn th× biÕn th× biÕn th× biÕn data_e +10 data_e - 10 data_e *10 data_e /10 NÕu biÕn data_e>999 th× data_e=0 NÕu biÕn data_e
  5. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng ®−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. 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. H×nh 35: S¬ ®å khèi ch−¬ng tr×nh chÝnh m¹ch ®Õm Tr−êng §H N«ng nghiÖp I T§H K46 - Khoa C¬ §iÖn - 75 -
  6. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng Ch−¬ng tr×nh ®iÒu khiÓn vµ m¹ch ®o cô thÓ nh− sau: #include PhÇn khai b¸o c¸c th− // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18 ;PORTB viÖn chuÈn #endasm #include #include #include #include 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(); Tr−êng §H N«ng nghiÖp I T§H K46 - Khoa C¬ §iÖn - 76 -
  7. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng 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_e999) data_e=0; lcd_gotoxy(11,0); itoa(data_e,str); lcd_puts(str); if(strlen(str)
  8. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng // 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 // Timer 1 Overflow Interrupt: Off Tr−êng §H N«ng nghiÖp I T§H K46 - Khoa C¬ §iÖn - 78 -
  9. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng // 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)
  10. B¸o c¸o tèt nghiÖp NguyÔn Duy Hoµng for(i=1;i
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2