báo cáo chuyên đề ''''vi điều khiển''''

21 525 0
báo cáo chuyên đề ''''vi điều khiển''''

Đ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 chuyên đề "Vi điều khiển" Lời nói đầu Ngày nay cùng với sự phát triển của các ngành khoa học kĩ thuật, mà kĩ thuật điện tử đóng vai trò quan trọng hầu hết các lĩnh vực khoa học kĩ thuật , quản lý, công nghiệp tự động hóa , thong tin liên lạc…vv do đó là những sinh viên ngành điện tử .thế hệ tương lai của đát nước cần phải nắm vững các kiến thức và vận dụng một cách có hiệu quả nhằm góp phần vào sự phát triển của khoa học kĩ thuật nước nhà rộng hơn là khoa học thế giới trong ngành điện tử.trong phạm vi lần này chúng em được giao đề tài :”ghép nối hai vi điều khiển 89S52 hiển thị trên màn hiển thị LCD 16x2” . đây chỉ là ứng dụng nhỏ của môn học vi điều khiển nhưng qua quá trình thiết kế và thi công đề tài này thì chúng em đã rút ra được rất nhiều kinh nghiệm thực tiễn quý báu cho bẩn thân .Mục đích của đề tài là tạo cho học sinh chúng em làm quen với họ vi điều khiển 8051.cụ thể ở đây là IC AT89S52.từ đó lập trình cho vi điều khiển của các IC khác.Từ thử nghiệm của những ứng dụng về họ VĐK 8051 đơn giản và gần gũi trên sách VĐK họ 8051,một số sách tham khảo cùng một vài trang web về chuyên ngành điện tử . Chúng em đã tìm tòi nhiều ứng dụng khác và phát triển ứng dụng đó vào đời sống hằng ngày cần thiết. Mặc dù có nhiều cố gắng để hoàn thành xong đồ án môn học bằng kiến thức dã được học và một số tài liệu khác nhưng cũng không tránh khỏi những thiếu xót. Do vậy chúng em ,những người thực hiện đề tài rất mong nhận được sự đóng góp của quý thầy cô và các bạn để đề tài lần sau được hoàn thiện hơn. Cuối cùng chúng em xin chân thành cảm ơn quý thầy cô và các bạn. Phần 1 : tìm hiểu cơ bản về linh kiện quan trọng sử dụng trong mạch (IC AT89S52 và module LCD 16x2) . 1. IC AT89S52. • Một số hình ảnh thực tế của AT89S52 • Hình ảnh sơ đồ chân : • Cấu tạo IC 89S52 có 1 > CPU (CPU central processing unit ): + 8_bit data bus ; 16_bit address bus ; không gian địa chỉ 64kbyte . + Thanh ghi tích lũy A : + Thanh ghi tích lũy phụ B : + Đơn vị logic học(ALU) : + Thanh ghi từ trạng thái chương trình : + Bốn băng thanh ghi : + Con trỏ ngăn xếp : 2 > bộ nhớ (Memory) : + Bộ nhớ chương trình (Rom) gồm 8Kbyte Flash , ghi xóa hàng nghìn lần . + Bộ nhớ dữ liệu (dạng SRAM) gồm 256 byte (chứa ngăn xếp – Stack) . + Vùng thanh ghi có chức năng đặc biệt SFR (Special Funtion Register) . + Bộ UART có chức năng truyền nhận nối tiếp . Cổng nối tiếp trong 8051 chủ yếu được dùng trong các ứng dụng có yêu cầu truyền thông với máy tính, hoặc với một vi điều khiển khác. Liên quan đến cổng nối tiếp chủ yếu có 2 thanh ghi: SCON và SBUF. Ngoài ra, một thanh ghi khác là thanh ghi PCON (không đánh địa chỉ bit) có bit 7 tên là SMOD quy định tốc độ truyền của cổng nối tiếp có gấp đôi lên (SMOD = 1) hay không (SMOD = 0). Dữ liệu được truyền nhận nối tiếp thông qua hai chân cổng P3.0(RxD) và P3.1(TxD). Thanh ghi SBUF là thanh ghi 8bit chứa dữ liệu truyền hoặc nhận. Về thực chất có hai thanh ghi dữ liệu khác nhau, một dành để chứa dữ liệu truyền đi, một để chứa d ữ liệu nhận được. Cả hai thanh ghi này đều có chung một tên là SBUF, tuy nhiên CPU hoàn toàn phân biệt được một cách dễ dàng. Khi ta muốn truyền dữ liệu đi, ta phải ghi vào thanh ghi SBUF (ví dụ viết lệnh mov SBUF,a), còn khi muốn đọc kiểm tra dữ liệu nhận về ta phải đọc thanh ghi SBUF (ví dụ viết lệnh mov a,SBUF). CPU sẽ căn cứ vào việc thanh ghi SBUF nằm ở vị trí toán hạng đích (toán hạng bên trái) hay toán hạng nguồn (toán hạng bên phải) để quyết định sẽ truy nhập ( đọc/ghi) thanh ghi SBUF nào. Người l ập trình không cần phải quan tâm xử lý vấn đề này. Thanh ghi quy định chế độ hoạt động và điều khiển cổng nối tiếp là thanh ghi SCON (đánh địa chỉ bit). SM0 SM1 SM2 REN TB8 RB8 TI RI Bit SM0, SM1, SM2 quy định chế độ hoạt động của cổng nối tiếp. Thông thường để tr uyền thông giữa 2 vi điều khiển hoặc giữa 1 vi điều khiển và 1 máy tính, giá trị của bit SM2 được đặt bằng 0. Khi truyền thông theo kiểu mạng đa vi xử lý(multiprocessor communication), SM2 được đặt bằng 1. Hai bit SM0 và SM1 thực sự là các bit quy định chế độ hoạt động của cổng nối tiếp, chúng tạo ra 4 tổ hợp(00,01,10 và 11)ứng với 4 chế độ hoạt động mô tả trong bảng sau. SM0 SM1 Chế độ Khung dữ liệu Baud rate 0 0 0 -Đồng bộ 8 bit SBUF Fosc/12 0 1 1 - D ị b ộ 8 bit SBUF Thay đổi được 1 0 2 - D ị b ộ 8bit SBUF- RB8/TB8 Fosc/32 hoặc Fosc/64 1 1 3 - D ị b ộ 8bit SBUF-RB8/TB8 Thay đổi được Chế độ 0: là chế độ truyền đồng bộ duy nhất. Chân RxD sẽ là tín hiệu truyền/nhận dữ liệu, chân TxD là tín hiệu xung nhịp. Bit LSB (bit 0) của dữ liệu được truyền đi trước tiên. Tốc độ truyền cố định và bằng 1/12 giá trị thạch anh. Chế độ 1: là chế độ truyền dị bộ 8 bit. Dữ liệu 8 bit được đóng khung bởi một bit Start (= 0) ở đầu và một bit Stop (=1)ở cuối trước khi được truyền đi. Tốc độ truyền thay đổi được theo ý người lập trình. Chế độ 2: là chế độ truyền dị bộ 9 bit. Dữ liệu 9 bit được ghép thành bởi 8bit trong thanh ghi SBUF và bit RB8 (trường hợp nhận về) hoặc TB8 (trường hợp truyền đi) trong thanh ghi SCON. Ngoài ra các bit Start và Stop vẫn được gắn bình ở đầu và cuối khung truyền. Trong chế độ này, tốc độ truyền chỉ có thể chọn được ở 1 trong 2 mức: 1/32 hoặc 1/64 giá trị của thạch anh (tùy thuộc vào giá trị của bit SMOD trong thanh ghi PCON đã nói ở trên). Chế độ 3: cũng là chế độ truyền dị bộ 9 bit, khác với chế độ 2 ở chỗ tốc độ truyền có thể thay đổi được theo ý người lập trình như trong chế độ 1. Bit REN trong thanh ghi SCON là bit cho phép nhận dữ liệu. Dữ liệu chỉ được nhận qua cổng nối tiếp khi bit này = 1. BitTB8 là bit dữ liệu thứ 9 trong trường hợp truyền đi 9 bit (8 bit kia trong thanh ghi SBUF). BitRB 8 là bit dữ liệu thứ 9 trong trường hợp nhận về 9 bit (8 bit kia trong thanh ghi SBUF). Bit TI là cờ ngắt truyền, báo hiệu việc truyền 1 khung dữ liệu đã hoàn tất. Bit RI là cờ ngắt nhận, báo hiệu việc nhận 1 khung dữ liệuđã hoàn tất. Để tạo ra tốc độ tr uyền (Baud rate) của c ổng nối tiếp trong 8051, phải Dùng đến timer1 ở chế độ Auto Reload 8bit. Giá trị nạp lại chứa trong thanh ghi TH1 được tính toán theo công thức sau (phụ thuộc vào Baud rate mong muốn và giá trị của thạch anh). Tóm lại để sử dụng cổng nối tiếp của 8051, hãy thực hiện các bước sau: -Chọn chế độ cho cổng nối tiếp (đồng bộ/dị bộ, 8bit/9bit ), từ đ ó chọn được giá trị cho các bit trong thanh ghi SCON. Lưu ý xóa các bit TI và RI. -Chọn tốcđộ truyền mong muốn, từ đ ó tính ra giá trị của thanh ghi TH1. Cho timer1 chạy ở chế độ Auto Reload 8bit (không dùng ngắt tràn timer1). -Đặt mức ưu tiên ngắt và cho phép ngắt cổng nối tiếp nếu muốn. -Bắt đầu quá trình truyền dữ liệu bằng một lệnh ghi dữ liệu muốn truyền vào thanh ghi SBUF. Quá trình truyền kết thúc thì cờ TI sẽ tự động đặt lên 1. -Khi một khung dữ liệu đã được nhận đầy đủ, cờ RI sẽ tự động đặt lên 1 và người lập trình lúc này có thể dùng lệnh đọc thanh ghi SBUFđể lấy dữ liệu nhận được ra xử lý. + 3 bộ nhớ timer/counter 16 bit thức hiện chức năng định thời và đếm sự kiện . + Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong .có 6 trang thái ngắt Tên ngắt Nguyên nhân gây ra ngắt Địa chỉ vector ngắt Mức độ ưu tiên Cờ báo ngắt Ngắt ngoài 0 Tín hiệu INTO thay đổi mức logic 10,hoặc oqr mức logic 0 0x0003 1 IE0(TCON) Ngắt timer/counter0 timer/counter 0 đếm tràn trên 0x000B 2 TF0(TCON) Ngắt ngoài 1 Tín hiệu INT1 thay đổi mức logic 10,hoặc oqr mức logic 0 0x0013 3 IE1(TCON) Ngắt timer/counter1 timer/counter 1 đếm tràn trên 0x001B 4 TF1(TCON) Ngắt cổng nối tiếp cổng nối tiếp nhận được hoặc truyền xong 1 khung dữ liệu đầy đủ 0x0023 5 TI,TR(SCON) Ngắt timer/counter2 timer/counter2 đếm tràn trên hoặc tín hiệu T2EX thay đổimức logic10 0x002B 6 TX2,EXF2(T2CON) Các cờ báo ngắt do INT1, INT0, Timer 0, Timer 1 bi xóa khi CPU xử lý chương trình ngắt . còn cờ ngắt của cổng nối tiếp và ngắt do Timer 2 không tự động xóa, mà người dung phải xóa bằng phần mềm. + bộ lập trình ( ghi chương trình lên Flash ROM ) cho phép người sử dụng có thể nạp các chương trình cho chip mà không cần các bộ nạp chuyên dụng . + Bộ chia tần số với hệ số chia là 12 . + 4 cổng xuất nhập song song với 32 chân . 8051 có 4 cổng vào ra song song, có tên lần lượt là P0, P1, P2 và P3. Tất cả các cổng này đều là cổng vào ra hai chiều 8bit. Các bit của mỗi cổng là một chân trên chip, như vậy mỗi cổng sẽ có 8 chân trên chip. Hướng dữ liệu (dùng cổng đó làm cổng ra hay cổng vào) là độc lập giữa các cổng và giữa các chân (các bit) trong cùng một cổng. dụ, ta có thể định nghĩa cổng P0 là cổng ra, P1 là cổng vào hoặc ngược lại một cách tùy ý, với cả 2cổng P2 và P3 còn lại cũng vậy. Trong cùng một cổng P0, ta cũng có thể định nghĩa chân P0.0 là cổng vào, P0.1 lại là cổng ra tùy ý. Liên quan đến mỗi cổng vào/ra song song của 8051 chỉ có một thanh ghi SFR ( thanh ghi chức năngđặc biệt) có tên trùng với tên của cổng. Ta có các thanh ghi P0 dùng cho cổng P0, thanh ghi P1 dùng cho cổng P1 …Đây là các thanh ghi đánh địa chỉ đến từng bit (bit addressable), do đó ta có thể dùng các lệnh tác động bit đối với các bit của các thanh ghi này. Mỗi thanh ghi này gồm 8bit tương ứng với các chân (bit) của cổng đó. Khi một chân (bit) cổng nào đó được dùng làm cổng vào thì trước đó bit tương ứng trong thanh ghi SFR phải được đặt ởmức 1. Nếu m ột chân (bit) cổng nào đó được dùng làm cổng ra thì giá trị của bit tương ứng trong thanh ghi SFR sẽ là giá trị lôgic muốn đưa ra chân cổng đó. Nếu muốn đưa ra mức lôgic cao (điện áp gần 5V), bit tương ứng trongthanh ghi phảiđượcđặt bằng 1, hiển nhiên nếu muốnđưa ra mức lôgic thấp(điện áp gần 0V) thì bit tương ứng trong thanh ghi phải được đặt bằng 0. Như nói ở trên, các bit trong thanh ghi cổng có thể được đặt bằng 1/0 mà không làmảnh hưởng đến các bit còn lại trong cổng đó b ằng cách dùng các lệnh setb (đặt lên 1) hay clr (đặt về 0).  PORT 0 (P0.0=>P0.7) : PORT 0 gồm 8 chân , ngoài chức năng xuất nhập . PORT 0 còn là bus đa hợp dữ liệu và địa chỉ ( AD0 – AD7), chức năng này sẽ được sử dụng khi 89S52 giao tiếp với các thiết bị ngoài có kiến trúc bus như các vi mạch nhớ , mạch PIO…  PORT 1 (P1.0=>P1.7) : Chức năng của PORT 1 là xuất nhập và có thể xuất nhập theo bit và theo byte .  PORT 2 (P2.0=>P2.7) : PORT 2 ngoài chức năng vào/ ra như PORT 0 và PORT 1 còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài .  PORT 3 . Mỗi chân trên PORT 3 ngoài chức năng xuất ngập còn có một chức năng riêng, cụ thể như sau : Bit Tên Chức năng P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu truyền cho port nối tiếp P3.2 INTO Ngăt bên ngoài 0 P3.3 INT1 Ngăt bên ngoài 1 P3.4 TO Ngõ vào của timer/counter 0 P3.5 T1 Ngõ vào của timer/counter 1 P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài  Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài .  Chân ALE : ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của vi điều khiển . tín hiệu AlE được dùng để cho phép vi mạch chốt bên ngoài như 7473.  Chân /EA : tín hiệu EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài . khi EA =1 thì thực hiện chương trình trong RAM nội . khi EA =0 thì thực hiện chương trình ở RAM ngoài .  Chân RST (reset) . Ngõ vào reset trên chân 9 . khi RST = 1 thì bộ vi điều khiển sẽ được khởi động để thiết lập trạng thái ban đầu .  Chân XTAL 1 và XTAL 2 : 2 chân này được nối song song với thạch anh với tần số lớn nhất bằng 33Mhz . để tạo dao động cho bộ vi điều khiển .  Chân VCC, GND : là chân cung cấp nguồn nuôi cho vi điều khiển .dương nguồn 5V được cấp vào chân 40. chân 20 nối mass, [...]... chip khi tín hiệu được đua lên mức cao trong ít nhất 2 chu kỳ máy thì các thanh ghi trong bộ vi điều khiển được tải những giá trị thích hợp để khởi động hệ thống 4>Khối hiển thị (LCD 16x2) : Sử dụng module LCD 16x2 , trong đó các chân tạo tín hiệu điều khiển , RS, RW, EN_LCD trong mạch sư dụng PORT 1 của vi điều khiển Các chân thuộc PORT 2 thì được nối với bus dữ liệu của LCD ( từ chân 7 => chân 14)... vào chân 9 của IC  Mạch dao động thạch anh (chân 18 và 19)  Trạng thái của chân EA( chân 3.1) Chức năng của CPU là tiến hành các thao tác tính toán sử lý, đưa ra các tín hiệu địa chỉ , dữ liệu và điều khiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thong qua các lệnh 2>Khối tạo xung( tạo dao động): + AT89S52 có một bộ chia tần số bên trong chip, bộ này sẽ cung cấp xung clock... 8 9 10 11 12 13 14 R/W E DBO DB1 DB2 DB3 DB4 DB5 DB6 DB7 0/1 1,1 ->0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 I I I/0 I/0 I/0 I/0 I/0 I/0 I/0 I/0 Chức năng Nguồn cung cấp (GND) Nguồn cung cấp (+5V) Điện áp và điều chỉnh độ tương phản Lựa chọn thanh ghi 0= thanh ghi lên 1= thanh ghi dữ liệu 0= ghi vào LCD module Tín hiệu cho phép Data bus line 0 ( LSB) Data bus line 1 Data bus line 2 Data bus line 3 Data bus... M[i]=_getkey(); ghi_lenh(0x01); ghi_lenh(0x80); chuoi("KI TU NHAN:"); ghi_du_lieu(M[i]); i++; ghi_lenh(0xc0); chuoi(" "); hien_thi(i); putchar(i); } } Hoàn Thành Mạch : + mạch in :  Tài liệu tham khảo : 1 > VI ĐIỀU KHIỂN cấu trúc_ lập trình và ứng dụng (Kiều Xuân Thực ) 2 > Intrnet : www.dientuvietnam.net www.alldatasheet.com www.atmel.com/atmel/acrobat/doc1919.pdf www.cdtvn.net/ www.keil.com/c51 www.Scribd.com . Báo cáo chuyên đề "Vi điều khiển" Lời nói đầu Ngày nay cùng với sự phát triển của các. được giao đề tài :”ghép nối hai vi điều khiển 89S52 hiển thị trên màn hiển thị LCD 16x2” . đây chỉ là ứng dụng nhỏ của môn học vi điều khiển nhưng qua quá trình thiết kế và thi công đề tài này. quý báu cho bẩn thân .Mục đích của đề tài là tạo cho học sinh chúng em làm quen với họ vi điều khiển 8051.cụ thể ở đây là IC AT89S52.từ đó lập trình cho vi điều khiển của các IC khác.Từ thử

Ngày đăng: 28/06/2014, 02:21

Từ khóa liên quan

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

Tài liệu liên quan