Đề tài Tìm hiểu vi mạch điều khiển atmega 16 và phần mềm lập trình giao diện máy tính

Tài liệu Đề tài Tìm hiểu vi mạch điều khiển atmega 16 và phần mềm lập trình giao diện máy tính: BÁO CÁO TỐT NGHIỆP Các Yêu Cầu: Tìm Hiểu Vi Điều Khiển Atmega16 Giới thiệu tổng quan Các chức năng Giới thiệu 1 số modun của Atmega16 : Cổng vào ra , AVR ATmega16 Memories, System Clock , Timer/Counter , Interrupt Vectors in ATmega16 , USART. Tìm Hiểu phần mềm lập trình giao diện máy tính. Giới thiệu phần mềm VISUAL BASIC Các Control Lập trình giao tiếp cổng COM Phần 1. Tìm hiểu vi điều khiển Atmega16 Giới thiệu tổng quan Giới thiệu AVR: - Vi điều khiển AVR do hãng Atmel ( hoa kỳ ) sản xuất được giới thiệu lần đầu tiên năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny ( như At tiny 13, At tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi , rồi đén dòng AVR ( chẳng hạn AT90S8535, AT90S8515…) co kích thước bộ nhớ vào loại trung bình và manh hơn là dòng Mega ( như ATmega 16, Atmega 32, ATmega 128…..) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với bộ ngoại vi đa dạng được tích hợpcả bộ LCD trên chip ( dòng LCD AVR). Tốc độ của dòng Mega cũng cao h...

doc58 trang | Chia sẻ: hunglv | Lượt xem: 2101 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tìm hiểu vi mạch điều khiển atmega 16 và phần mềm lập trình giao diện máy tính, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BÁO CÁO TỐT NGHIỆP Các Yêu Cầu: Tìm Hiểu Vi Điều Khiển Atmega16 Giới thiệu tổng quan Các chức năng Giới thiệu 1 số modun của Atmega16 : Cổng vào ra , AVR ATmega16 Memories, System Clock , Timer/Counter , Interrupt Vectors in ATmega16 , USART. Tìm Hiểu phần mềm lập trình giao diện máy tính. Giới thiệu phần mềm VISUAL BASIC Các Control Lập trình giao tiếp cổng COM Phần 1. Tìm hiểu vi điều khiển Atmega16 Giới thiệu tổng quan Giới thiệu AVR: - Vi điều khiển AVR do hãng Atmel ( hoa kỳ ) sản xuất được giới thiệu lần đầu tiên năm 1996. AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny ( như At tiny 13, At tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi , rồi đén dòng AVR ( chẳng hạn AT90S8535, AT90S8515…) co kích thước bộ nhớ vào loại trung bình và manh hơn là dòng Mega ( như ATmega 16, Atmega 32, ATmega 128…..) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kb cùng với bộ ngoại vi đa dạng được tích hợpcả bộ LCD trên chip ( dòng LCD AVR). Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản giữa các đòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau - ATmega16 là một lọai Vi điều khiển có nhìều tính năng đặc biệt thích hợp cho việc giải quyết những bài tóan điều khiển trên nền vi xử lý. +Các lọai vi điều khiển AVR rất phổ biến trên thị trừơng Việt Nam nên không khó khăn trong việc thay thế và sửa chữa hệ thống lúc cần. +Giá thành của dòng Vi Điều Khiển này khá phải chăng +Các phần mềm lập trình và mã nguồn mở có thể tìm kiếm khá dễ dàng trên mạng.Các thiết kế demo nhiều nên có nhiều gợi ý tốt cho người thiết kế hệ thống. - ATmega16 là vi điều khiển 8bit dựa trên kiến trúc RISC. Với khả năng thực hiện mỗi lệnh trong vong một chu kỳ xung clock, Atmega16 có thể đạt được tốc độ 1MIPS trên mỗi MHz( 1triệu lệnh/s/MHz),các lệnh được xử lý nhanh hơn,tiêu thụ năng lượng thấp. 1.2.Chức năng của ATmega16 * Atmega16 có cấu trúc RISC với: +131 lệnh,hầu hết được thực thi trong 1 chu kì xung nhịp. +32x8 thanh ghi đa dụng +Full static operation +Tốc độ làm việc 16MPIS,với thạch anh 16MHz +Trong chip co 2 chuc nang ho tro go roi va lap trinh saon chuong trinh - Bộ nhớ: +16 KB ISP Flash với khả năng 10.000lần ghi/xóa +512Byte EEROM +1KB SRAM ngọai * Giao tiếp JTAG +Khả năng quét toàn diện theo chuẩn JTAG +Hỗ trợ khả năng go roi +Hỗ trợ lập trình Flash,EEROM,fuse… +Lock bit qua giao tiếp JTAG * Ngọai vi: +2 timer/counter 8 bit với các mode :so sánh và chia tần số +1 timer/counter 16 bit với các mode:so sánh,chia tần số,capture,PWM +1 timer thời gian thực(Real time clock) với bộ dao động riêng biệt +4 kênh PWM(họăc nhiều hơn trong các VĐK khác thuộc họ này) +8 kênh biến đổi ADC 10bit +Hỗ trợ giao tiếp I2C +Bộ giao giao tiếp nối tiếp lập trình được USART +Giao tiếp SPI +Watch_dog timer với bộ dao động on-chip riêng biệt * Những thuộc tính đặc biệt: +Power On reset và Brown-out detection +chế độ hiệu chỉnh bộ sai số cho bộ dao động RC On-chip +Các chế độ ngắt ngòai và trong đa dạng +6 mode sleep:Idle,ADC noise reduction,tiết kiệm năng lượng,power-down, standby,extended standby * I/O port: +32 chân I/O(Atmega16) và 21 chân I/O (Atmega8) lập trình được +vỏ 40 chaân (Atmega16) ,28 chân(Atmega8),64 chân(AT90can128); * Nguồn cấp: 2,7->5.5 V với ATmega16L 4.5->5.5V với ATmega16H * Tiêu hao năng lượng: +Khi họat động tiêu thụ dòng 1,1mA +Ở mode Idle tiêu thụ dòng 0.35mA +Ở chế độ Power_down tiêu thụ dòng nhỏ hơn 1uA * Đây là những chức năng cơ bản thường thấy trong các Vi điều khiển AVR,ngòai ra trong các vi điều khiển khác thuộc dòng vi điều khiển này thì thường được hỗ trợ thêm những chức năng đặc biệt.Ví dụ AT90can128 hỗ trợ thêm bộ giao tiếp mạng Can bus on-chip * Các phần mềm lập trình cho AVR: + AVRStuido (free), Code Vision. Các phần mềm này có hỗ trợ phần nạp và debug on chip + Ngoài ra có thể dùng chương trình nạp PonyProg2000, Winpic800... Một số modun của Atmega16 Cổng vào ra I/O - Vi điều khiển ATmega16 có 32 đuờng vào ra chia làm bốn nhóm 8bit một. Các cổng vào ra của AVR là cổng vào ra 2 chiều có thể định hướng, tức có thể chọn hướng của cổng là hướng vào ( input ) hay hướng ra ( out put ). Tất cả các cổng vào ra của AVR đều có tính năng Đọc- Chỉnh sửa- Ghi ( Read- Modify-Write ) khi sử dụng chúng như là các cổng vào ra số thong thường. Điều này có nghĩa là khi tat hay đổi hướng của 1 chân nào đó thì nó không ảnh hưởng tới hướng của các chân khác, Tất cả các chân của các các cổng ( Port ) đều có điện trở kéo lên (Pull-up ) riêng, ta có thể cho phếp hay không cho phép điện trở léo lên này hoat động. - Điện trở kéo lên ( pull- up ): là 1 điện trở được dung khi thiết kế các mạch điện tử logic. Nó có 1 đầu được nói với nguồn điện áp dương ( thường là Vcc hoặc Vdd) và đầu còn lại được nối với tín hiệu lối vào/ra của 1 mạch logic chức năng, Điện trở kéo lên có thể được nắp đặt tại các lối vào ra của các khôíi mạch logic để thiết lập mức logic của khối mạch khi không có thiết bị ngoài nối với lối vào. Điện trở kếo lên cũng có thể nắp đặt tại các gaio diện giữa 2 khối mạch logic không cùng loại logic, đặc biệt là khi 2 khối mạch này được cấp nguồn khác nhau. - Khi khảo sát các cổng như là các cổng vào ra số thong thường thì tính chất của các cổng ( Port A, PortB, PortC ) là tương tự nhau, nên ta chỉ cần lkhảo sát 1 cổng nào đó trong 3 cổng của vi điều khiển là đủ - Mỗi 1 cổng vào ra của vi điều khiển được lien kết với 3 thanh ghi : PORTx, DDRx, PINx (ở đây x là thay thé cho A, B, C ). Ba thanh ghi này sẽ được phối hợp với nhau đẻ điều khiển hoạt động của cổng, chẳmg hạn thiết lạp cổng thành lối vào có sử dụng điện trở pull-up… Sau đây là vai trò của 3 thanh ghi trên. Thanh ghi DDRx Đây là thanh ghi 8bit( ta có thể đọc và ghi ở các thanh ghi này) có tác dụng điều khiển hướng cổng PORTx( tức là cổng vào hay cổng ra). Nếu như một bit trong thanh ghi này được set thì bit tương ứng đó trên PORTx đuệoc định nghĩa như một cổng ra. Ngược lại nếu như bit đó không được set thi bit tương úng trên PORTx được định nghĩa là cổng vào Thanh ghi PORTx Đây cũng là thanh ghi 8bit ( các bit có thể đọc và được ghi) nó là thanh ghi dữ liệu của cổng Px và trong trường hợp nếu cổng được định nghĩa là cổng ra thì khi tag hi một môtl bit lên thanh ghi này thì chân tương ứng trên port đó cùng có mức logic. Trong trường hợp đó mà cổng được định nghĩa là cổng vào thì thanh ghi này mang dữ liệu điều khiển cổng. Cụ thể là nếu bit nào đó của thanh ghi này được set (đưa lên mức 1 ) thì điện trở kéo lên pull up của chân tương ứng của port đó sẽ được kích hoạt. Ngược lại nó sẽ ở trạng thái. Thanh ghi này sau khi khởi động Vi điều khiển sẽ có giá trị là 0x00 Thanh ghi PINx Đây là thanh ghi 8bit chứa dữ liệu vào của PORTx ( trong trường hợp PORTx được thiết lập là cổng vào) và nó chỉ có thể đọc mà không ghi vào được AVR ATmega16 Memories - AVR có 2 không gian bộ nhớ chính là bộ nhớ dữ liệu vào bộ nhớ chương trình. Ngoài ra ATmega16 còn có them bộ nhớ EEPROM để lưu trữ dữ liệu Bộ nhớ chương trình( bộ nhớ Flash) bộ nhớ Flash 16Kb của ATmega16 dùng để lưu trữ chương trình. Do các lẹnh của AVR có độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp xếp théo kiểu 8KX16. Bộ nhớ Flash được chia làm 2 phần, phần dành cho chương trình boot và phần dành cho chương trinh ứng dụng Bộ nhớ dữ liệu SRAM 1120 ô nhớ dữ liệu đinh địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ nhớ dữ liệu SRAM nội. Trong đó 96 ô nhớ đầu tiên định địa chỉ cho file thanh ghi và bộ nhớ I/O và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội Bộ nhớ dữ liệu EEPROM Đây là bộ nhớ dữ liệu có thể ghi xoá ngay trong lúc vi điều khiẻn hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị mất. Có thể ví bộ nhớ dữ liệu EEPROM giống như ổ cứng của máy tính. Với vi điều khiển ATmega16 chứa bộ nhớ dữ liệu EEPROM dung lượng 512byte, và được sắp xếp theo từng byte, cho phép các thao tác đọc/ ghi từng byte một . EEPROM được xem như là 1 bộ nhớ vào ra được đánh địa chỉ độc lập với SRAM , điều này có nghĩa ta cần sử dụng cá lệnh in , out… khi muốn truy xuất tới EEPROM. Để điều khiển vào ra dữ liệu với EEPROM ta sử dụng 3 thanh ghi sau: Thanh ghi EEAR (EEARH và EEARL ) EEAR là thanh ghi 16 bit lưu giữ địa chỉ của các ô nhớ của EEPROM, thanh ghi EERA được kết hợp từ 2 thanh ghi 8 bit là EEARH và thanh ghi EEARL. Thanh ghi EECR Đây là thanh ghi điều khiển EEPROM, ta chỉ sử dụng 4 bit đầu chảu thanh ghi này,4 bit cuối là dự trữ. Sau đây là chức năng của từng bit. + Bit 3- EERIE : EEPROM ( Ready Interrup Enable) : Đây là bit cho phép EEPROM ngắt CPU, khi bit này được set thành 1 và ngắt toàn cục dược cho phép ( bằng cách set bit 1 trong thanh ghi SREG lên 1) thì EEPROM sẽ tạo ra 1 ngắt với CPU khi bit EEWE được xoá, điều này có nghĩa là khi các ngắt được cho phép ( bit 1 trong thanh ghi SREG và bit EERIE tronh thanh ghi EECR được set thành 1) với quá trình ghi vào ROM vừa xong thì sẽ tạo ra 1 ngắt với CPU , chương trình sẽ nháy với vectơ ngắt có địa chỉ là 002C để thực hiện chương trình phục vụ ngắt (ISR ). Khi bit EERIE là 0 thì ngắt không được cho phép. + Bit 2- EEMWE : EEPROM Master Write Enable : Khi bit EEMWE và bit EEWE là 1 sẽ ra lệnh cho CPU ghi dữ liệu từ thanh ghi EEDR vào EEPROM, địa chỉ của ô nhớ cần ghi trong EEPROM dược lưu trong thanh ghi EEAR. Khi bit này là 0 thì không cho phép ghi vào EEPROM. Bit EEMWE sẽ được xoá bởi phần cứng sau 4 chu kỳ máy. + Bit1- EEWE : EEPROM (Write Enable ) Bit này vừa đong vai trò như 1 bit cờ, vừa là bit điều khiển việc ghi dữ liệu vào EEPROM. Ở vai trò của 1 bit điều khiển nếu bit EEMWE đã được set lên 1 thì khi ta set bit EEWE lên 1 thì sẽ bắt đầu quá trình ghi dữ liệu vào EEPROM. Trong suốt quá trình ghi dữ liệu vào EEPROM bit EEWE luôn giữ là 1. Ở vai trò của 1 bit cờ khi quá trình ghi dữ liệu vào EEPROM hoàn tất , phần cứng sẽ tự động xoá bit này về 0. Trước khi dữ liệu vào EEPROM ta cần phải biết chắc là khong có qú trình ghi EEPROM nào khác đang xảy ra , đẻ biết được điều này ta cần kiểm tra bit EEWE. Để ý là sau khi quá trình đọc dữ liẹu từ EEPROM hoàn tất, bit EERE sẽ được tự động xoá bởi phần cứng. Nếu EEPROM đang được ghi thì ta không thể đọc được dữ liệu từ EEPROM. Khi bắt đầu quá trình đọc dữ liệu từ EEPROM , CPU sẽ tạm nghỉ 4 chu kỳ máy trước khi thực hiện lếnh kế tiếp. - Tóm lại để ghi vào EEPROM ta cần thực hiện các bước sau: + Chờ cho bit EEWE về 0 + Cấm tất cả các ngắt + Ghi địa chỉ vào thanh ghi EEAR + Ghi dữ liệu mà ta cần ghi vào EEPROM vào thanh ghi EEDR + Set bit EEMWE thành 1 + Set bit EEWE thành 1 + Cho phép các ngắt trở lại - Nếu 1 ngắt xảy ra giữa bước 5 và 6 sẽ làm hỏng quá trình ghi vào EEPROM bởi vì bit EEMWE sau khi set lên 1 chỉ được giữ trong 4 chu kỳ máy, chương trình ngắt sẽ làm hết thời gian ( Time out ) duy trì bit này ở mức 1. - Một ngắt xuất hiện ở cuối bước 4 cũng có thể làm cho địa chỉ và dữ liệu cần ghi vào EEPROM trở lên không chính xác nếu trong vhương trình phục vụ ngắt có chỉnh sửa lại các thanh ghi EEAR và EEDR. Đó là lý do ta cần cấm các ngắt trước khi thực hiện tiếp các bước 3, 4, 5, 6 Quá trình ghi dữ liệu vào EEPROM cũng có thể không an toàn nếu điện thé nguồn nuôi (Vcc) quá thấp. - Đọc dữ liệu từ EEPROM :Việc đọc dữ liệu từ EEPROM đơn giản hơn ghi dữ liệu vào EEPROM, để đọc dữ liệu từ EEPROM ta thực hiện các bước sau: Chờ cho bit EEWE về 0. Ghi địa chỉ vào thanh ghi EEAR . Set bit EERE lên 1 C. Bộ Định thời (Timer/ Counter ) - là một modum định thời/đếm 8bit, có đặc điểm sau: + Bộ đếm một kênh. + Xoá bộ định thời khi trong mode so sánh( tự động nạp) + PWM + Tạo tần số + Bộ đếm sự kiẹn ngoài + Bộ chia tần 10 bit + Nguồn ngắt tràn bộ đếm và so sánh - Các thanh ghi : TCNT0 và OCR0 là các thanh ghi 8 bit. Các tín hiệu yêu cầu ngắt đều nằm trong thanh ghi TIFR. Các ngắt có thể được che bởi thanh ghi TIMSK. - Bộ định thời có thể sử dụng xung clock nội thong qua bộ chia hoặc xung clock ngoài trên chân T0. Khối chọn xung clock điều khiển việc bộ định thời/bộ đếm sẽ dung nguồn xung nào để tăng giá trị của nó. Ngõ ra của khối chọn xung clock được xem là xung clock của bộ định thời. - Đơn vị đếm - Phần chính của bộ định thời 8 bit là 1 đơn vị song hướng có thể lập trình được Count: tăng hay giảm TCNT01 Direction: lựa chọn giữa đếm lên và đếm xuống Clear: xoá thanh ghi TCNT0 Clkto : xung clock của bộ định thời TOP: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất BOTTOM : báo hiệu bộ đinh thời đã giảm đến giá trị nhỏ nhất( 0 ) * Đơn vị so sánh ngõ ra - Bộ sa sánh 8 bit lien tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh ngõ ra(OCR0). Khi giá trị TCNT0 băng với OCR0, bộ so sánh sẽ tạo một báo hiệu. Báo hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0 ) lên 1 vào chu kỳ xung clock tiếp theo. Nếu được kích hoạt ( OCIE0=1 ), cờ OCF0 sẽ tạo ra 1 ngắt được thực thi. Cờ OCF0 cũng có thể được xoá bằng phần mềm. - Mô tả các thanh ghi Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0 + Bit 7- FOC0 : so sánh ngõ ra bắt buộc Bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM. Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng song + Bit 6, 3- WGM01, WGM00 : chế độ tạo dang song Các bit này điều khiển đếm thứ tự của bộ đếm, nguồn cho giá trị lón nhất của bộ đếm ( TOP ) và kiểu tạo dạng song sẽ được sử dụng. + Bit 5, 4- COM01, COM00 : chế độ báo hiệu so sánh ngõ ra Các bit này điều khiển hoạt động của chân OC0. Nếu 1 hoặc cả 2 bit COM01 và COM00 được đặt lên 1, ngõ ra OC0 sẽ hoạt động. + Bit 2, 0- CS02, CS00 : chọn sung đồng hồ Ba bit này dung để lựa chọn nguồn xung cho bộ định thời/ bộ đếm Thanh ghi bộ định thời/ bô đếm - Thanh ghi bộ định thời/ bộ đếm cho phép truy cập trực tiếp ( cả đọc và ghi) vào bộ đếm 8 bit Thanh ghi so sánh ngõ ra- OCR0 - Thanh ghi này chứa 1 giá trị 8 bit và lien tục được so sánh với giá trị của bộ đém - Thanh ghi mặt nạ ngắt + Bit 1- OCIE0: cho phép ngắt báo hiệu so sánh + Bit 0- TOIE0 :cho phép ngăt tràn bộ đếm Thanh ghi cờ ngắt bộ định thời + Bit 1- OCF0 : cờ so sánh ngõ ra 0 + Bit 0- TOV0 : cờ tràn bộ đếm - Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và đựoc xoá bởi phần cứng khi vectơ ngắt tương ứng được thực hiện . Bit này cũng có thể xoá bằng phần mềm. D .Interrup Khái niệm về ngắt : Ngắt là sự kiện bên trong hay bên ngoài làm ngắt bộ vi điều khiển để báo cho nó biết rằng thiết bị cần dịch vụ của nó. Một bộ vi điều khiển có thể phục vụ một vài thiết bị, có 2 cách để thực hiện điều này đó là sử dụng các ngắt Interrup và thăm dò ( polling). Trong phương pháp sử dụng các ngắt thì mỗi khi có thiết bị bất kỳ cần đến dịch vụ của nó thì nó báo cho bộ vi điều khiển bằng cách gửi 1 tín hiệu ngắt. Khi nhận được tín hiệu ngắt thì bộ vi điều khiển ngắt tất cả những gì nó đang thực hiện để chuyển sang phục vụ thiết bị. Chương trình đi cùng ngắt được gọi là dịch vụ ngắt ISR hay còn gọi là chương trình quản lý ngắt. Còn trong phương pháp thăm dò thì bộ vi điều khiển hiển thị lien tục tình trạng của 1 thiết bị đã cho và điều khiển thỏa mãn thì nó phục vụ thiết bị. Sau đó chuyển sang hiển thị tình trạng của thiết bị kế tiếp cho đến khi tất cả đều được phục vụ Điểm mạnh của phương pháp ngắt là bộ vi điều khiển là phục vụ rất nhiều thiết bị( tất nhiên là không cùng tại một thời điểm. Trình phục vụ ngắt Đối với mỗi ngắt thì phải có 1 trình phục vụ ngắt ISR hay trình ngắt. Khi 1 ngăt được gọi thì bộ vi điều khiển phục vụ ngắt. Đối với mỗi ngắt thì có 1 vị trí cố định trong bộ nhớ giữa địa chỉ ISR của nó. Nhóm các vị trí nhớ được dành riêng để gửi các địa chỉ của các ISR được gọi là bảng vectơ ngắt. Khi kích hoạt 1 ngắt bộ vi điều khiển đi qua các bước sau : + Vi điều khiển kết thúc lênh đang thực hiện và lưu trữ đia chỉ của lệnh kế tiếp ( PC ) vào ngăn xếp. + Nó nhảy đến 1 vị trí cố định trong bộ nhớ được gọi là bảng vectơ ngắt nơi lưu giữ địa chỉ của 1 trình phục vụ ngắt + Bộ vi điều khiển nhận địa chỉ ISR từ bảng vectơ ngắt và nhảy tới đó. Nó bắt đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR và RETI ( trở về từ ngắt ) + Khi thực hiện lệnh RETI bộ vi điều khiển quay trở về nơi nó đã bị ngắt. Trước hết nó nhận địa chỉ của bộ đếm chương trình PC từ ngăn xếp bằng cách kéo 2 byte trên đỉnh của ngăn xếp vào PC. Sau đó bắt đầu thực hiện các lệnh từ địa chỉ đó. Bảng vectơ ngắt của Atmega 16 E. USART - USART : Bộ truyền nhận nối tiếp đồng bộ và bất đồng bộ phổ dụng . Đây là khối chức năng dung cho việc truyền thong giữa vi điều khiển với các thiết bị khác. Trong vấn đè truyền dữ liệu só, có thể phân chia cách thức(method) truyền dữ liệu ra 2 chế độ mode cơ bản là : chế độ nhận Đồng Bộ (shynchronous) và chế độ nhận Bất đồng bộ (Asynchronous). Ngoài ra , nếu có góc độ phần cứng thì có thể phân chia theo cách khác đó là : Truyền nhận dữ liệu theo kiểu Nối Tiếp ( serial) và song song (paralen) Truyền đồng bộ: là kiểu truyền dữ liệu trong đó bộ truyền (Transmitter) và bộ nhận(Receiver) sử dụng chung mọt xung đồng hồ (clock).Do đó hoạt động truyền và nhận dữ liệu diễn ra đồng thời. Xung clock có vai trò là tín hiệu đồng bộ cho hệ thống ( gồm khối truyền và khối nhận). Ưu điểm của kiểu ctuyền đồng bộ là tốc độ nhanh, thích hợp khi truyền dữ liệu khôí block). Truyền bất đồng bộ : là kiểu truyền dữ liệu trong đó mỗi bộ truyền (transmitter) và bộ nhận (receiver) có tạo bộ xung (lock) riêng, tốc độ xung clock ở 2 khối này có thể khác nhau, nhưng thưòng khong quá 10%. Do không dung chung xung clock, nên để đồng bộ quá trình truyền và nhận dữ liệu, người ta phải truyền các bit đồng bộ (Start, stop,…) đi kèm với các bit dữ lieu. Các bộ truyền và bộ nhận sẽ dựa vào các bit đồn bộ này quyết định khi nào sẽ thực hiện hay kết thúc quá trình truyền hoặc nhận dữ liệu. Do đó, hệ thống truyền không đồng bộ còn được gọi là hệ thống truyền “ tự đồng bộ “ - Từ 2 kiểu truyền dữ liệu cơ bản trên,người ta dưa ra nhiều giao thức truyền khác nhau như : SPI (đồng bộ ), USRT (đồng bộ ), UART ( bất đồng bộ ) - Sơ đồ khói bộ USART được chia làm ba phần chính khối tạo xung Bộ truyền Bộ nhận Bộ tạo xung clock : có chức năng thiết lập tốc đọ Baud. Bộ truyền bao gồm 1 thanh ghi đệm và một thanh ghi dịch, việc ghi dữ liệu vào bộ đếm cho phép quá trình truyền lien tục mà khong có độ trẽ giữa các khung. Bộ nhận có cấu tạo phức tạpnó bao gồm việc kiểm tra chẵn lẻ, điều khiển logic, thanh ghi dich, đồng thới nó có 2 cấp độ trong bộ đếm nhận . Ngoài việc đinh dạng khung như bộ truyền thì bộ nhận có khả năng phát hiện lỗi khung, lỗi chẵn lẻ, lỗi tràn dữ liệu Đơn vị tạo xung clock Txclk : xung đồng hồ bộ truyền Rxclk : xung đồng hồ bộ nhận Xcki : tín hiệu vào từ chân XCK, sử dụng cho truyền đồng bộ Master XCKO : tín hiệu cung clock ngõ ra tới chân XCK, sử dụng cho hoạt động truyền đồng bộ slave Fose: tần số tử chân XTAL Định dạng khung: Trong ché độ truyền không đồng bộ, khung dữ liệu truyền đi không có 1tín hiệu clock để đồng bộ hoá dữ liêu ( vì thế mà gọi là không đồng bộ) , quá trình đông bộ hoá giữa bộ thu và bộ phát được thực hiện nhờ các bit đồng bộ là start bit và stop bit . Một khung nối tiếp bao giờ cũng được đinh dạn theo thứ tự 1 start bit , các bit giữ liệu (data bit ) 1 bit pairty tuỳ chọn phục vụ lỗi kiếm lỗi và kết thúc bằng 1 hoặc 2 stop bit St : bit start ( mức thấp ) (n) : bit dữ liệu ( 0 đến 8 ) P: bit chẵn lẻ Sp: bit stop ( mức cao ) IDLE : không có dữ liệu truyền ( mức cao trong suốt thời gian idle ) USART chấp nhận các định dạng khung sau: 1 start bit (luôn có mức logic thấp, gọi là space) . 5, 6, 7, 8 hoặc 9 data bits. Không có, hoặc 1 bit parity chẵn/lẻ. 1 hoặc 2 stop bit (luôn có mức lôgic cao, gọi là mark). - Quá trình truyền USART: Việc truyền dữ liệu nối tiếp ra ngoài thông qua chân TxD.Một quá trình truyền dữ liệu từ MCU đi được khởi tạo bằng việc viết dữ liệu vào thanh ghi đệm dữ liệu UDR, sau đó dữ liệu được chuyển tới thanh ghi dịch bộ phát khi thanh ghi dịch đã sẵn sàng truyền một byte mới. Các bit start và stop được bổ sung vào khung dữ liệu trong thanh ghi này với thiết đặt từ thanh ghi điều khiển bộ phát. Cũng như vậy bit thứ 9 (nếu có) có thể được thêm vào TXB8 trong thanh ghi UCSRB trước khi byte thấp của ký tự được viết vào UDR. Khi thanh ghi dịch dịch hết dữ liệu (đã được điều chế) ra thế giới bên ngoài thông qua chân TxD, nó sẽ sẵn sàng nhận dữ liệu mới nếu nó đang ở trạng thái rỗi hoặc ngay lập tức sau khi bit stop cuối cùng của khung trước đó được truyền đi. Lưu ý rằng dữ liệu được dịch ra ngoài với bit LSB trước, cuối cùng là MSB. - Quá trình nhận USART: Phần mềm cho phép thanh ghi dịch nhận dữ liệu nối tiếp từ thế giới bên ngoài thông qua chân RxD (PD0). Bộ thu bắt đầu tiếp nhận dữ liệu khi dò được một bit Start. Sau khi dò được bit Stop đầu tiên (end of the frame), dữ liệu được chuyển đến thanh ghi UDR (bộ đệm dữ liệu bộ thu) không có các Start và Stop bits theo dạng song song để vào CPU. - USART có 5 thanh ghi Thanh ghi vào/ra dữ liệu (UDR). Các thanh ghi đệm dữ liệu của bộ thu và bộ phát của USART cùng chia sẻ vùng địa chỉ I/O được tham chiếu là thanh ghi dữ liệu UDR. Khi viết vào UDR thì nó thể hiện như là một bộ đệm truyền, còn khi đọc dữ liệu từ UDR thì nó lại thể hiện như một bộ đệm nhận. Đối với các bit 5,6 và 7, các bit không dùng sẽ bị bỏ qua bởi bộ đệm truyền và được đọc là 0 bởi bộ đệm nhận. Bộ đệm truyền chỉ có thể được viết khi cờ UDRE trong thanh ghi UCSRA được set. Dữ liệu viết vào UDR khi cờ UDRE không được set sẽ bị bỏ qua. Khi dữ liệu được viết vào bộ đệm truyền và bộ đệm truyền được enable thì nó sẽ tải dữ liệu vào thanh ghi dịch truyền nếu nó rỗng. Bộ đệm thu gồm hai mức FIFO. Hai thanh ghi đệm hoạt động như một bộ đệm vòng FIFO. FIFO sẽ thay đổi trạng thái của nó bất cứ khi nào bộ đệm nhận được truy cập. Quan trọng là các cờ lỗi (FE và DOR), và bit dữ liệu thứ 9 (RXB8) được đệm cùng với dữ liệu trong bộ đệm nhận. Vì vậy các bit trạng thái luôn phải được đọc trước khi thanh ghi UDR được đọc. b. Thanh ghi điều khiển và trạng thái A (UCSRA). • Bit 7 – RXC: USART Receive Complete. Bit này được set khi có dữ liệu không đọc được vào bộ đệm nhận, hay bộ đệm nhận đ• đầy và nó bị xoá khi bộ đệm nhận là rỗng. Cờ RXC có thể sử dụng để phát ra một ngắt báo Receive Complete. • Bit 6 – TXC: USART Transmit Complete: Bit này được set nếu quá trình truyền hoàn thành, đó là tại lúc kết thúc một khung gửi đi. Cờ TXC có thể dùng phát ra một ngắt Transmit Complete. • Bit 5 – UDRE: USART Data Register Empty. Bit này được set nếu thanh ghi dữ liệu phát (bộ đệm truyền) là rỗng và sẵn sàng nhận dữ liệu mới. Cờ này cũng có thể dùng để phát ra một ngắt. c. Thanh ghi điều khiển và trạng thái B (UCSRB). d. Thanh ghi điều khiển và trạng thái C (UCSRC). • Bit 7 – URSEL: Register Select. Bit này chọn việc truy nhập vào UCSRC hoặc UBRRH. Nếu URSEL = 1 thì sẽ chọn làm việc với UCSRC, URSEL phải được viết là 1 khi thực hiện viết UCSRC. • Bit 6 – UMSEL: USART Mode Select. Bít này dùng để chọn giữa chế độ hoạt động đồng bộ (UMSEL = 1) hay không đồng bộ (UMSEL= 0). e. Thanh ghi tốc độ Baud (UBRRL và UBLLH).: • Bit 15 – URSEL: Register Select . Làm việc với UBRRH.àURSEL = 0 • Bit 14:12 – Reserved Bits. Các bit này dành cho các ứng dụng tương lai. • Bit 11:0 – UBRR11:0: USART Baud Rate Register. Đây là thanh ghi 12 bit chứa tốc độ baud của USART, UBRRH chứa 4 bit cao nhất và UBBRRL chứa 8 bit thấp còn lại PHẦN 2. Tìm hiểu phần mềm lập trình giao diện máy tính Giới thiệu phần mềm ViSual Basic -Visual Basic là gì ? Phần “ Visual “đề cập đến phương pháp được sử dụng để chế tạo giao diện đồ hoạ người dung ( Graphical User Interface hay viết tắt là GUI ). Có sẵn những bộ phận hình ảnh gọi là control, bạn tha hồ sắp đặt vị trí và quyết định cá đặc tính của chúng trên một khung màn hình, gọi là From Phần “ Basic “đề cập đến ngôn ngữ BASIC , một ngôn ngữ lập trình đơn giản, dễ học được chế ra cho các khoa học giả dung Visual Basic đã được ra từ MSBasic, do Bill Gate viết từ thời dung cho máy tính 8 bit 8080 hay Z80. Hiện nay nó chứa đến hang trăm câu lệnh ( command), àhm ( function ) và từ khoá ( keyword ). Khả năng ngôn ngữ này cho phếp những người chuyên nghiệp hoàn thành bất kỳ điều gì nhờ sử dụng ngôn ngữ lập trình MSWindow nào khác Visual Basic còn có 2 dạng khác : Visual Basic for Application ( VBA ) và VBScript. Visual basic 6.0 ( VB6) là một phiên bản của bộ công cụ lập trình Visual Basic , cho phếp người dung tiếp cận nhanh cách thức lập trình trên môi trường Window. Những ai đã từng quen thuộc với VB thì tìm thấy ở VB những tính năng trợ giúp mới và các công cụ lập trình hiệu quả. Người mới quen với VB cung có thể làm chủ VB6 một cách dễ dàng. Với VB6 , chúng ta có thể: khai thác thé mạnh của các điều khiển mở rộng. làm việc với các thanh điều khiển mới ( ngày tháng với điều khiển Month View và Data timePicker, các thanh công cụ có thể di chuyển được CoolBar, sử dụng đò hoạ với Image Combo, thanh cuộn FlatScrollBar,… ) Làm việc với các tính năng ngôn ngữ mới Làm việc với DHTML Làm việc với cơ sở dữ liệu Các bổ xung về lập trình hướng đối tượng B . C ác thao t ác v à C ontrol - IDE là tên viết tắt của môi trường phát triển tích hợp (Inegreated Development Enviroment). IDE là nơi tạo ra các chương trình VB. IDE của VB là nơi tập trung các menu, thanh công cụ và cửa sổ để tạo ra chương trình. Mỗi phần của IDE có các tính năng anhe hưởng đến các hoạt động lập trình khác nhau. Thanh menu cho phép bạn tác động cũng như quản lý trực tiếp trên toàn bộ ứng dụng. Thanh công cụ cho phép truy cập các chức năng của thanh menu qua các nút trên thanh công cụ. - Thanh menu cho phép bạn tác động cũng như quản lý trực tiếp toàn bộ ứng dụng. Ben cạnh đó thanh công cụ cho phép truy cập các chức năng của thanh menu thông qua cac nút trên thanh công cụ. Các biểu mẩu( From)- khối xây dựng chính của chương trình VB- xuất hiện trong cửa sổ From.Hộp công cụ để them các điều khiển vào các biểu mẫu của đề án. Cửa sổ Project Explorer hiển thị các đề án khác nhau ma người dung đang làm cũng như các phần của đề án. --Người dung duyệt và cài đặt các thuộc tính của điều khiển, biểu mẫu và module trong cửa sổ Propertíe. Sau cùng, người dung sẽ xem xét và bố trí một hoặc nhiều biểu mẫu trên màn hình thông qua cửa sổ From Layout. 1. Sử dụng thanh công cụ trong IDE của VB - Thanh công cụ là tập hợp các nút bấm mang biểu tương thường đắt dưới thanh menu. Các nút này đảm nhận các chức năng thông dụng của thanh menu( Open, Save ...). Thanh công cụ ở dạng standard Hơn nữa người dùng có thể kéo dê thanh công cụ trên IDE đến vị trí bất kỳ nào đó thuận tiện cho việc sử dụng. Người dùng có thể thêm hay xoá thanh công cụ trên IDE: Chọn Toolbars từ menuView hoặc ấn chuột phải vào điểm bất kỳ nào trên thanh menu , một popup menu bật ra Chọn loại thanh công cụ mà ta muốn thêm vào hoặc xoá đi. Nếu có đánh dấu check ở bên trái thì loại công cụ đó đang được chọn. - Sử dụng thanh công cụ gỡ rối (debug) với thanh công cụ gỡ rối ,người dùng có thể thực thi , tạm ngưng hoặc dừng một đề án. Với thanh công cụ Debug , người dùng có thể kiểm tra chương trình va giải Quyết các lỗi có thể xảy ra. Khi gỡ rối chương trình, người dùng có thể chạy từng dòng lệnh, kiểm tra giá trị các biến , dừng chương trình tại một điểm nào đó hoặc với một điều kiện nào đó. - Sử dụng thanh công cụ Edit Thanh công cụ Edit được dùng để viết chương trình trong cửa sổCode, thanh công cụ Edit có đầy đủ các tính năng của Menu Edit. Ngoai ra người sử dụng có sử dụng chức năng viét chương trinh tự động như là Quick Info. Thanh công cụ của Edit VB 6 có tính năng lý thú đó là tự hoàn tất các từ khoá. Tính năng này rất hữu dụng giúp cho người dùng tránh các lỗi mắc phải do gõ sai từ khoá. - Sử dụng thanh công cụ From Editor Thanh công cụ From Editor có chưc năng giống như menu fomat dung f để di chuyển và sắp xếp các điều khiển trên biểu mẫu - Sử dụng hộp công cu Tool Box Muốn hiển thị hộp công cụ, từ menu View, chọn Toolbox hoặc là nhấn chuột trên biểu tượng (icon). Khi hộp công cụ hiển thị, ta có thể dịch chuyển hộp công cụ xung quanh màn hình bằng cách nhấn thanh tiêu đề của nó(title bar) rồi giữ chuột và kéo tới nơi ta muốn và thả ra Muốn đóng hộp công cụ, nhấn chuột lên nút đóng(nằm trên góc phải của thanh tiêu đề ). Ngoài hộp công cụ, ta cũng cần xem một số cửa sổ tương tự phục vụ cho việc thiết kế ứng dụng như Gỡ rối chương trình(Debug), viết chưong trình (Edit), thiết kế biểu mẫu(Form Editor). Để hiển thị các cửa sổ này, nhấn nút phải chuột trên thanh công cụ(tool bar), ta sẽ thấy một menu theo ngữ cảnh(context sensitive menu), chọn trong menu cửa sổ mà ta muốn xem. Các cửa sổ này có thể hiển thị theo hai cách: trôi nổi và cố định. Hai cách này có thể chuyển đổi qua lại bằng cáh nhấn đúp chuột trên thanh tiêu đề của cửa sổ đó. 2. Các điều khiển nội tại Điều khiển Mô tả Label Hiển thị chuỗi ký tự không đổi trên biểu mẫu Frame Cho phép người sử dụng chọn hoặc không chọn một khả năng nào đó. CheckBox Cho phép người sử dụng chọn hoặc không chọn một khả năng nào đó ComboBox Cho phép người sử dụng chọn từ danh sách các chọn lựa hay nhập liệu mới HscrollBar Cho phép người dùng sử dụng cuộn ngang qua một điều khiển chứa dữ liệu khác Timer Cho phép chương trình tự động thi hành một công việc nào đó vào một thời điểm, không cần tương tác của người sử dụng. DirListBox Cho phép người sử dụng chọn một thư mục Shape Hiển thị một dạng hình học trên biểu mẫu Image Hiển thị hình ảnh đồ hoạ trên biểu mẫu nhưng không thể làm nơi chứa OLE Container Cho phép thêm chức năng lập trình của một điều khiển vào ứng dụng PictureBox Hiển thị hình anh trên biểu mẫu và có thể dùng làm nơi chứa. TextBox Dùng trình bày văn bản, nhưng cũng cũng cho phép người sử dụng sửa đổi hay thêm mới văn bản CommandButton Cho phép người sử dụng thực hiện một hành động OptionButton Cho phép ngưới sử dụng chọn lựa từ một nhóm có hai hay nhiều khả năng trở lên. ListBox Cho phép người sử dụng chọn từ danh sách các phần tử VscrollBar Cho phép người sử dụng cuộn dọc qua một điều khiển chứa dữ liệu khác DriveListBox Cho phép người sử dụng chọn ổ đĩa FileListBox Cho phép người sử dụng chọn một tập tin Line Hiển thị một đoạn thẳng trên biểu mẫu Data Cho phép lập trình để kết nối dữ liệu Sau đây là các điều khiển thường được sử dụng Nhãn ( Label ) Khái niệm: Nhãn là điều khiển dạng đồ hoạ cho phép người sử dụng hiển thị chuỗi kí tự trên biêu mẫu nhưng họ không thể thay đổi chuỗi kí tự đó một cách trực tiếp. Biểu tượng (shortcut ) trên hộp công cụ : Thuộc tính: Name : Đây là một tên xác định một định danh , người lập trình có thể thay đổi tên này theo cách của mình để tiện dùng. Caption : Thuộc tính quy định chuỗi ký tự hiển thị khi tạo ra một điều khiển nhãn Font ,ForeColor : quy định kiểu chữ , kích thước , màu hiển thị. Back Style ; Quy định nhã trong suốt hay không trong suốt Back kolor : Quy định màu nền của nhãn trong trường hợp nhãn không trong suốt 2.2 Khung ( Frame ) Khái niệm : Khung là 1 điều khiển dùng trong việc bố trí giao diện của 1 biểu mẫu 1 cách trong sáng và rõ nét. Thông thường các điều khiển thường phục vụ cho 1 công việc nào đó sẽ được đăt trong 1 khung nhằm làm nổi bật vai trò của chúng. Biểu tượng shortcut trên hộp công cụ : Thuộc tính : Khung cũng có các thuộc tính thông dụng như của điều khiển nhãn 2.3 Nút lệnh ( Command Button ) Khái niệm : - Nút lệnh là 1 điều khiển dùng để bắt đầu , ngắt hoặc kết thúc 1quá trình. Khi nút lệnh được chọn thì nó trông như được nhấn xuống , do đó nút lệnh còn được gọi la nút nhấn ( push Button ). Người sử dụng luôn có thể chọn một nút lệnh nào đó bằng cách nhấn chuột trên nút lệnh đó. - Biểu tượng ( shortcut ) trên hộp công cụ : thuộc tính : Name : sử dụng như một định danh nhằm xác định tên của 1 nút lệnh Caption ; dùng để hiện thị 1 chuỗi nào đó trên nút lệnh. Default : Nếu giá trị của thuộc tính này la True thì ta có thể chọn nút lệnh bằng cách nhấn phím Enter Cancel : Nếu giá trị của thuộc tính này la True thì ta có thể chon j nút lệnh bằng cách nhấn phím Esc Enabled : Trong 1 biểu mẫu có thể có nhiều nút lệnh để thực hiện nhiều công việc khác nhau và tại 1 thời điểm nào đó ta chỉ được phép thực hiện mọt số công việc. Néu giá trị thuộc tính của Enbled la False thì nút lệnh đó không có tác dụng. Giá trị mặc định của thuộc tính này là True ToolTipText : cho phép hiển thị 1 đoạn văn bản chú thích công dụng của nút lệnh khi người sử dụng được dùng chuột rê trên nút ấn Font ForeColor : quy điịnh kiểu chữ ,kích thước màu hiển thi 2.4 Ô nhập dữ liệu ( TextBox ) Khái niệm : - Ô nhập dữ liệu là 1 điều khiển cho phép nhập thông tin do ngươi dùng nhập vào. Đối với ô nhập dữ liệu ta cũng có thể dùn để hiển thị thông tin , thông tin này được đưa vào thời điểm thực thi ứng dụng. Còn thao tác nhận thông tin do người dùng nhập vào dĩ nhiên là được thực hiện tại thời điểm chạy ứng dụng. - Biểu tượng shortcut : b. Thuộc tính: - Name : Đây là ô nhập liệu , được sử dụng như 1 định danh - Maxlength: Thuộc tính quy định số kí tự tối đa có thể nhập vào ô nhập liệu. Nếu số ký tự nhập vào vươt quá số ký tự tối đa được ghi nhận vào trong thuộc tính Text. - Text : Dùng để nhập vào thông tin cần hiển thị trong TextBox tại thời điểm thiết kế hoặc nhận giá trị do người dùng nhập vào tại thời điểm chạy ứng dụng. - Locked : Thuộc tính cho phép người dùng thay đổi nội dung của ô nhập liệu được hay không. Thuọc tính này có thể nhận 2 giá trị True hoặc False. Néu False thì người dùng có thể thay đổi được nôi dung của ô nhập liệu va mặc định thì thuộc tính này có giá trị là False - PasswordChar ; Thuộc tính này quy định cách hiểm thị thông tin do người dùng nhập vào. Chẳng hạn ta nhập vào giá trị thuọc tính này la * thì các ký tự nhập vào đều hiện * .Thuộc tính này thường được dùng để che giấu thông tin người dùng - Multiline : Thuộc tính quy định ô nhập liệu có được hiển thị thông tin dưới dang nhiều hàng hay không, nếu la True thi ô nhập liệu cho phép nhiều hàng - Font, Fore Color : quy định kiểu chữ kích thước màu hiển thị. 2.5 . Điều khiển danh sách các lựa chọn ( List Box ) Khái niệm : - Điều khiển nàt hiển thị một danh sách các đề mục mà ở đó người dùng có thể chon lựa một hoặc nhiều mục - Biểu tương shortcut trên hộp công cụ - điều khiển này hiển thị một danh sách các đề mục mà ở đó người dùng có thể chọn lựa một hoặc nhiều đề mục - ListBox giới thiệu với người dùng một danh sách các lựa chọn. Một cách mặc định , các lựa chọn hiển thị theo chiều dọc trên một cột và các bạn có thể thiết lạp là hiển thị theo nhiều cột. Nếu số lượng lựa chọn nhiều và khôeng thể hiện thị hết trong danh sách thì một thanh trươt sẽ tự động xuất hiện trên điêu khiển Thuộc tính: *Name : đay là tên danh sách các lựa chọn , được sử dụng như một định danh. *MultíSelect : Thuộc tính này cho phép ListBox có được phép có nhiều lựa chọn khi thực thi hay không *ListIndex : Vị trí các phần tử được lựa chọn trong ListBox 2.6 . Điều khiển hộp lựa chọn ( ComBo Box) Khái niệm: - Điều khiển combo Box có thể được xem là tích hợp giữa 2 điều khiển TetxBox va ListBox. người dùng có thể chon j một đề mục bằng cách đánh chuỗi văn bản vào comboBox hoặc chọn một đè mục trong danh sách. - điểm khác nhau giữa combo Box và List Box là điều khiển combo chỉ gợi ý( hay đề nghị) các lựa chọn trong khi đó điều khiển List có giơi hạn các đề muc nhập vào tức là người dùng chỉ có thể chọn những đề mục trong danh sách - Biểu tượng shortcut trên hộp công cụ - Có tất cả 3 dạng điều khiển Combo Box -Drop-down Combo Box : đây là dạng măc nhiên của combo. Người dùng có thể nhập vào trực tiếp hoặc chọn từ danh sách các đề mục. -Simple Combo Box : Ta có thể hiển thị nhiều đề mục cùng một lúc. Để hiện thị tất cả các đề mục , bạn cần thiết kế đủ lớn. Một thanh trươt sẽ xuất hiện khi còn đề mục chưa hiển thị hết. Ở dạng này , người dùng vẫn có thể nhập một chuỗi vào trục tiép hoặc tron từ danh sách các đề mục. -Drop dow List Box : dang này giống như một List box. Một điểm khác biệt là các đề mục sẽ không được hiển thị đén khi nào có người dùngClick lên mũi tên phía phải của điều khiển 2.7 . điêu khiển hộp đánh dấu ( Check Box ) Khái niệm - Đây là điều khiển hiển thị dấu nếu như được chọn và dấu bị xoá nếu như không chọn. Dùng điều khiển check box đẻ nhận thông tin từ người dùng theo dạng yes/No hoặc True/ Fasle Biểu tượng shortcut Thuộc tính: Name : Thuộc tính tên Value : giá trị hiện thời trên Check Box. Có thể nhận các giá trị : vbChecked , vbUnchecked , vbGrayed 2.8 . Điều khiển nút lựa chọn (Option Button ) Khái niệm: - Công dụng của điều khiển Option Button cũng tương tự như điều khiển Check Box < Điểm khác nhau chủ yếu giữa 2 loại điều khiển này đó là : Các option Button của cùng một nhóm tại mỗi thời điêm chỉ có một điều khiển nhất định được chọn - Biểu tượng shortcut Thuộc tính Name : thuộc tính tên của điều khiển Option Button Value : Giá trị hiện thời trên Opiton Button > có thể nhận các giá trị : True & False 2.9 Điều khiển thanh cuộn ngang ( HScrollBar) Khái niệm: - Là điều khiển có thanh trượt cho phép cuộn ngfang va người dùng có thể sử dụng HscrollBar như một thiết bị nhập hoặc một thiết bị chỉ định cho số lượng hoặc vận tốc - Biểu tượng shortcut Thuộc tính : Name : Ten của thanh cuộn Min : Giá trị nhỏ nhất trên thanh cuộn Max : giá trị lớn nhất của thanh cuộn Large change : Thuộc tinh này để xác định khoảng thay đỏi khi người dùng ấn chuột lên HscrollBar Small change: Thuộc tính này dùng để xác định khoảng thay đổi khi người dùng ấn lên mũi tên phía cuối thanh cuộn Value: Thuọc tinh này trả về giá trị tại một thơìư điểm của thanh cuộn nằm trong khoang giá trị {Min Max} mà người đùng đã xác định 2.10 . Điều khiển thanh cuộn đứng (VscrollBar) Khái niệm: Biểu tượng shortcut Thuộc tính : tương tự như HscrollBar 2.11 . Điều khiển thời gian ( Timer) Khái niệm: điều khiển Timer đáp ứng lại sự trôi đi của thời gian . Nó độc lập với người sử dụng và ta có thể lập trình để thực hiện một cong việc nào đó cú sau một khoảng thời gian đều nhau Biểu tượng shortcut Thuộc tính Name : tên điều khiển Timer Interval : đây là thuộc tính chỉ rõ số ms giữa 2 sự kiện tiép nhau . Trừ khi nó vô hiệu hoá Enabled : Nếu giá trị là True nghĩa là điều khiển Timer được kích hoạt và ngược lại 2.12 . Điều khiển danh sách ổ đĩa (Driver ListBox), danh sách thư mục (DirListBox) , danh sách tập tin ( FileListBox) Khái niệm: Điều khiển DriverListBox trình bày những ổ đĩa của hệ thống và cho phép người dùng chọn một trong những ổ đĩa đó Biểu tượng shortcut Điều khiển DirListBox cho phép trình bày những thư mục và đường dẫn tại thời điểm chạy ứng dụng Biểu tượng shortcut Điều khiẻn FileList Box cho phép trình bày những tài liệu có sẵn trong thư mục hiện hành. Bạn có thẻ dùng thuọc tính Partten để xác định kiểu tập tin nào được hiển thị trong danh sách Biểu tượng shortcut Giao tiếp cổng Com - Cổng nối tiếp RS232 là 1giao diện phổ biến rộng rãi nhất. Người ta còn gọi cổng này là cổng COM1 hay cổng COM2 để tự do cho các ứng dụng khác. - Việc truyền dữ liệu qua cổng COM được tiến hàn theo cách nối tiếp. Nghĩa là các bit dữ liệu được trưyền đi nối tiếp nhau trên 1 đường dẫn. Loại truyền này có khả năng dung cho nhưng ứng dụng có yêu cầu chuyển khoảng cách lớn hơn, bởi vì các khả năng gây nhiễu là nhỏ đáng kể hơn khi dung 1 cổng song song ( cổng máy in ). - Cổng COM không phải là 1 hệ thống Bus nó cho phép dễ dàng tạo ra lien kết dưới hình thức điểm với điểm giữa 2 máy cần trao đổi thong tin với nhau , một thành viên thứ 3 không thể tham gia vào cuộc trao đổi thong tin này. Các chân và đường dẫn được mô tả như sau : - Phich cắm COM có tổng cộng 8 đường dẫn, chưa kể đến đường nối đất. Trên thực tế có 2 loại phích cắm, 1 loại 9 chân , 1 loại 25 chân. Cả 2 loại này đều có chung 1 đặc điểm. - Việc truyền dữ liệu xảy ra ở trên 2 đường dẫn. Qua chân cắm ra TXD máy tính gửi dữ liệu của nó đến Kit Vi điêu khiển . Trong khi đó các dữ l;iệu mà máy tính nhận được, lại được dẫn đến chân RXD các tín hiệu khác đóng vai trò như là tín hiệu bổ trợ khi trao đổi thong tin và vì thế không phải trong mọi trường hợp ứng dụng đều đúng hết. Thông tin số liệu Hệ thống thong tin số liệu dung để xử lý và truyền các chuỗi mã nhị phân. Các mã này được tao ra, lưu trữ và sử lý bởi máy tính và các thiết bị ngoại vi , bao gồm các loại như : các tin tức đã mã hoá, tập tin văn bản, hình ảnh dữ liệu số và các thong tin khác. Đường truyền là đường truyền ẩn tín hiệu số và các ký tự truyền phổ biến là mã ASCII Phương thức truyền Truyền nối tiếp : truyền tuần tự từng bit của 1 ký tự truyền nối tiếp truyền đồng bộ - nối tiếp : Truyền đồng bộ- nối tiếp - Dùng 1 xung clock để đồng bộ quá trình nhận theo từng bit ký tự . Máy sẽ cung cấp tín hiệu clock cho cả 2 đầu phát và thu. - Ưu điểm: chỉ truyền dữ liệu , không cần them dữ liệu đồng bộ vào chuỗi data => nhanh hơn. Nhược điểm : phải them 1 kênh thứ 2 để truyền tín hiệu clock song song với kênh truyền data - Trong phương pháp này thông tin được truyền theo khối ( Blocks ). Mỗi khối bao gồm 1 số tuần tự các ký tự và không cần các Bit Start, bit Stop, mà sẽ đồng bộ theo từng khối cũng như việc kiểm tra sai. - Trong các hệ thống đồng bộ, tín hiệu clock của máy phát sẽ được truyền qua máy thu song song với dữ liệu để dung làm xung Clock cho việc dịch chuyển các bit thu, Nếu trong thực tế không thể thực hiện việc truyền tín hiệu Clock, thì máy thu phải tự tạo ra tín hiệu này. Do đó sẽ phức tạp hơn và có giá thành cao hơn so với thông tin bất đồng bộ, Để tránh trường hợp các chuỗi bit 0 hoặc bit 1 kéo dài đôi có thể dung loại mã nhị phân đặc biệt đẻ máy thu giữ được khả năng đồng bộ, Máy thu gửi 1 hoặc nhiều ký tự đồng bộ nhận dạng khi bắt đầu truyền và ngay khi nhận được bit đồng bộ, máy thu bắt đầu nhận bit. Phần lớn các mạng đồng bộ sử dụng các nghi thức do IBM tạo ra - Giao tiếp chuẩn RS 232 cung cấp các chân sau để truyền tín hiệu Clock : Chân 15: TCLK- Transmit Clock ( từ DCE ) Chân 17 RCLK- Receive Clock ( từ DCE ) Chân 24 : ETCLK – Externel Transmit Clock Truyền bất đồng bộ - nối tiếp: Thêm vào phía trước mỗi ký tự 1 bit Start và phía sau 1 hoặc 2 bit Stop . Máy thu sẽ tách bit Start để khởi động tín hiệu đồng bộ dung cho việc thu các bit ký tự. Các bit Stop được dùng đẻ ngăn cách giữa các ký tự. Phương phấpnỳ cho phép truyền ngẫu nhiên , không cần truyền liên tục. Vì phải them các bit Start , Stop nên tốc độ truyền là chậm so với truyền đồng bộ nhưng lại đơn giản rẻ tiền hơn. Tốc độ truyền bất đồng bộ : 75, 110, 300 , 1200bit/s Tốc độ truyền đồng bộ : 2400, 4800, 9600bit/s Trong truyền bất đòng bộ - nối tiếp : dạn số liệu được cấu tạo từ các BIT số liệu cơ bản ( các bit thông tin và kiểm tra chẵn lẻ ) và them vào phía trước 1 bit khởi động (Start ) và phía sau 1 hoặc 2 bit dừng (Stop ). Bit Start có mức logic “ 0” được định nghĩa như mức điện áp dương trong chuẩn RS 232. Bit Stop có mức logic “1”. Bit Start báo cho phía thu bắt đầu nhận ký tự và đồng bộ với bên phát. Đặc điẻm của truyền nói tiếp bất đòng bộ là : + Tần số Clocl thu, phát phân biệt với cùng tần số tuỳ theo tốc độ truyền bit. + Các ký tự trưyền với nhưng thời điẻm không cần lien tục, truyền riêng biệt và ngẫu nhiên. + Đường trưyền giữ ở trạng thái 1 trong khoảng cách giữa các ký tự gọi là trạng thái lỗi ( Idle) + Đối với 1 ký tự là LSB được truyền đầu tiên và lần lượt là các bit kế tiếp Ở đầu thu: sẽ nhận biết điểm ký tụ bằng cách tách bit Start nhờ mạch tách bit Start khi trạng thái đường truyền dẫn chuyển từ 1 xuống 0 và lúc này bộ phận điều khiển sẽ điều khiển thanh ghi dịch bắt đầu dịch các bit trên đường dây vào. Sau 11 lần dịch ( 1 bit Start + 8bit Data+ 2bit Stop ) thì có thể đọc được ký tự thu dạn song song ở ngõ ra thanh ghi dịch khi có tín hiệu READ Để kiểm tra sai k hi truyền , trong 8 bit Data sẽ có 1 bit kiểm tra theo 1 trong 2 thủ tục sau : + Kiểm tra chẵn : Tổng số bit 1 trong 8 bit phải luôn chẵn + Kiểm tra lẻ : Tổng số bit 1 luôn lẻ Như vậy ở đầu phát sẽ có bộ phận để đếm số bit 1 của 8 bit dữ liệu và tuỳ theo vào hình thức kiểm tra chẵn hay lẻ sẽ them vào bit cuối cùng giá trị 0 hay 1 cho thích hợp Ở đầu thu sẽ đếm số bit 1 của mỗi ký tự để xác định xem tình hình dữ lieu đến có đúng hay không Tất cả các thủ tục trên không ohải là bắt buộc mà có thể thay đổi khác nhau tuỳ theo việc cài đặt thông số ban đầu bởi người thực hiện việc truyền. Chỉ bắt buộc là các thủ tục ở 2 đầu thu và phát tương ứng nhau. Tất cả nhưng công việc đã mo tả ở trên sẽ thực hiên bởi 1 bộ phận giao tiếp thông tin bất đồng bộ mà thành phần chính là chip LSI – còn gọi là UART

Các file đính kèm theo tài liệu này:

  • docBC1011.doc
Tài liệu liên quan