báo cáo thực hành kỹ thuật vi xử lý PTIT

165 1.1K 3
báo cáo thực hành kỹ thuật vi xử lý PTIT

Đ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

báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT báo cáo thực hành kỹ thuật vi xử lý PTIT

PTIT Giảng viên hướng dẫn: Phạm Thế Duy Sinh viên thực hiện: Đinh Tuấn Hải Đ09VTA1 409160010 Báo cáo Kỹ thuật Vi xử lý PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 1 HC VIN CÔNG NGH N THÔNG  TI THÀNH PH H CHÍ MINH BÁO CÁO MÔN KỸ THUẬT VI XỬ LÝ TPHCM - 2011 GING DN: Phm Th Duy SINH VIÊN THC HIN: n Hi L MSSV: 409160010 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 2 Lưu ý: + Các mạch mô phỏng được thực hiện trên Proteus 7.8 SP2 và CodeVision 2.05.0 Professional với các điều kiện được ghi chú sẵn. + Các ghi chú trong code chỉ được ghi 1 lần, theo thứ tự xuất hiện của dòng lệnh. (Có những code thừa nhưng do xuất hiện trước nên vẫn được ghi chú bình thường) + Các bài tập có sử dụng bộ định thời để chạy với ý nghĩa thời gian thực có thể hoạt động sai khi sử dụng trên các máy tính khác, và phải hiệu chỉnh lại cho thích hợp. Các bài tập này mang ý nghĩa thuật toán, giải thuật nhiều hơn ý nghĩa chính xác về mặt thời gian. Tất cả các bài đã được hiệu chỉnh để chạy chính xác trên hệ thống máy tính của cá nhân người lập trình, do vậy có thể mang tính chủ quan. TP.HCM ngày 10 tháng 10 năm 2011 Sinh viên thực hiện Đinh Tuấn Hải PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 3 MỤC LỤC  4  17  27  38  51   67 BÀI 7:  83 BÀI 8: GIAO TIP NI TIP USART 96 BÀI 9: THC HING H N T 115 U GIAO THÔNG 136 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 4  /***************************************************** This program was produced by the CodeWizardAVR V2.05.3a Evaluation Automatic Program Generator © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 8/21/2011 Author : Freeware, for evaluation and Company : Comments: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 5 Data Stack size : 256 *****************************************************/ #include <mega16.h> #include <delay.h> #include <stdio.h> // Declare your global variables here int i,j; //khai báo biến unsigned char phu, phu2; void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTA=0x00; DDRA=0xFF; //Port A là OUT // Port B initialization PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 6 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; //Port B là IN // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; //Port C là IN // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; //Port D là IN // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 7 // OC0 output: Disconnected TCCR0=0x00; //Các thanh ghi cho Timer/Counter0 TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; //Các thanh ghi cho Timer/Counter1 TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 8 ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; //thanh ghi cho Timer/Counter2 TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off //ngắt ngoài // INT1: Off // INT2: Off PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] 2011 Trang 9 MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; //Cài đặt ngắt cho các bộ Timer/Counter // USART initialization // USART disabled UCSRB=0x00; //Chức năng USART // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; //Bộ so sánh tương tự - Analog Comparator SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization [...]... SPCR=0x00; 2011 Trang 33 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] // TWI initialization // TWI disabled TWCR=0x00; while (1) { // Place your code here while (PIND.4 == 0) //thuc hien yeu cau so 1 { PORTB=0b11110111; for (col = 3; col>=0; col ) { row=TIMVITRI(PINA); if (row>=0) { i=col*4+row; / /thuật toán tính giá trị nút bấm dis[3] = led[i]; }; 2011 Trang 34 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] PORTB =(PORTB>>1)|... Trang 22 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] UCSRB=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; while (1) 2011 Trang 23 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] {... - phu2 ; 2011 Trang 12 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] phu = phu >> 1; phu2 = phu2 1; } phu2 = PORTA; 2011 Trang 13 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] } delay_ms(20); break;... 0b10001110}; //dinh nghia cac vi tri cua LED, pos[4] la khong chon vi tri nao(xoa) unsigned char pos[5] = {0b00000111,0b00001011,0b00001101,0b00001110,0b00001111}; unsigned char dis[4] = {0,0,0,0}; int TIMVITRI(unsigned char p) //chuong trinh tim vi tri bit 0 trong p { dem = 10; n=0; while (p != 0b11111111) //thuc hien cho den khi p = 0xFF { 2011 Trang 28 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] p = (p >> 1); p =... o vi tri i //dịch delay_ms(2); PORTD = pos[4]; } break; } case 0b00000010: // nhan SW2 de chay 0-9 { for (i=0; i 1; 2011 Trang 11 PTIT [BÁO... PD5/OC1A PD6/ICP1 PD7/OC2 AREF AVCC 22 23 24 25 26 27 28 29 14 15 16 17 18 19 20 21 32 30 ATMEGA16 Ghi chú: + Nhấn SW1 để thực hiện yêu cầu 1 (hiện 4 số cùng lúc trên bảng LED) + Nhấn SW2 để thực hiện yêu cầu 2 (chạy số từ 0-9 từ phải qua trái) 2011 Trang 26 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] /***************************************************** This program was produced by the CodeWizardAVR V2.05.3a Evaluation... nghia cac chu so tren LED unsigned char pos[5] = {0b00000111,0b00001011,0b00001101,0b00001110,0b00001111}; //dinh nghia vi tri chon LED tren bang LED (position) unsigned char dis[4] = {0,0,0,0}; 2011 //dinh nghia so de hien thi tren LED (display) Trang 18 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] int i,j,k; void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization... 31 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; 2011 Trang 32 PTIT. .. 21 32 30 ATMEGA16 SW3 SW-SPDT SW4 SW-SPDT SW5 SW-SPDT SW6 SW-SPDT SW7 SW-SPDT SW8 SW-SPDT Ghi chú: Bật lần lượt các công tắc từ 1 tới 8 trong file mô phỏng để thực hiện lần lượt 8 yêu cầu của đề bài 2011 Trang 16 PTIT [BÁO CÁO KỸ THUẬT VI XỬ LÝ] /***************************************************** This program was produced by the CodeWizardAVR V2.05.3a Evaluation Automatic Program Generator © Copyright

Ngày đăng: 25/04/2015, 01:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan