1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án thiết kế máy tính bỏ túi sử dụng vi xử lý 89c51

40 2,2K 19

Đ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

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 673,53 KB

Nội dung

Trong đó có 24 chân có tác dụng kép có nghĩa 1 chân có 2 chức năng, mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

SVTH : Nguyễn Cao Nguyên 20101947

Nguyễn Danh Tân 20102128

Lều Như Tình 20102321

Ngô Đình Vũ 20102577

1

Trang 2

Lời nói đầu

Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, đặc biệt là ngành vi điều khiển Đời sống xã hội ngày càng phát triển cao dựa trên những ứng dụng của khoa học vào đời sống Vì vậy mà những công nghệ điện tử mang tính tự động ngày càng được ứng dụng rộng rãi Trong số đó có sự đóng góp không nhỏ của kỹ thuật vi điều khiển Các bộ vi điều khiển đang được ứng dụng rộng rãi và thâm nhập ngày càng nhiều trong các lĩnh vực

kỹ thuật và đời sống xã hội Hầu hết là các thiết bị được điều khiển tự động từ các thiết bịvăn phòng cho đến các thiết bị trong gia đình đều dung các bộ vi điều khiển nhằm đem lại sự tiện nghi cho con người trong thời đại công nghiệp hóa, hiện đại hóa

Ngoài ra cùng với sự phát triển của các ngành kinh tế, giáo dục, y học,… làm tăng số lượng công việc tính toán và xử lý số liệu và phải tiếp cận những con số lớn và lẻ mà không thể tính toán bằng tay được Chính vì vậy chúng em lựa chọn đề tài cho đồ án 1 là

:” Thiết kế máy tính bỏ túi sử dụng vi xử lý 89C51 “ này.

Tuy đã cố gắng thực hiện đồ án trong sự nghiêm túc và trách nhiệm nhất, nhưng do khảnăng nghiên cứu cũng như kiến thức các thành viên còn nhiều hạn chế nên không thể tránh khỏi những lỗi và thiếu sót Rất mong nhận được những ý kiến đóng góp tích cực từthầy Nguyễn Tuấn Ninh !

Trang 3

MỤC LỤC

Trang

Trang bìa ……….1

Lời nói đầu ……… 2

Phần 1: GIỚI THIỆU ……… 4

Phần 2 : CƠ SỞ LÝ THUYẾT………5

I Các linh kiện sử dụng trong mạch ……… ….5

II Đặc điểm, cấu tạo, chức năng của các linh kiện ……… 5

Phần 3 : THIẾT KẾ VÀ MÔ PHỎNG ……… … 21

I Sơ đồ khối ……….….…21

II Mô phỏng ……….…….22

III Code chương trình ……… ….23

Phần 4 : KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ……… ….39

Các tài liệu tham khảo ……….……40

3

Trang 4

Phần I

GIỚI THIỆU

I Mục tiêu đề tài

- Nâng cao hiệu quả tính toán số liệu

- Tăng tốc tính toán và xử lý số liệu

- Thấy được tầm quan trong của việc ứng dụng vi điều khiển vào các lĩnh vực khác nhau trong cuộc sống

Trang 5

Phần 2

CƠ SỞ LÝ THUYẾT

I CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH

- Vi điều khiển AT89C51

- Cơ cấu hiển thị LCD 16x2

- Bàn phím keypad

- Các loại tụ điện, điện trở, biến trở…

- Thạnh anh 12Mhz

- Nguồn 1 chiều 5V

II ĐẶC ĐIỂM, CẤU TẠO, CHỨC NĂNG CỦA CÁC LINH KIỆN

1 Vi điều khiển AT89C51

a Giới thiệu chung về 89C51

 Vi điều khiển (VĐK) là một hệ vi xử lý được tổ chức như một chip IC VĐK AT89C51 tương thích với họ MCS51 có những đặc điểm sau :

- Bộ xử lý bit thao tác trên các bit riêng

- 4 μs cho hoạt động nhân hoặc chias cho hoạt động nhân hoặc chia

5

Trang 6

- 210 vị trí nhớ định địa chỉ, mỗi vị trí một bit

- Có các thanh ghi chức năng, cơ chế điều khiển ngắt

- Các bộ thời gian dung trong lĩnh vực chia tần số và tạp thời gian thực-

 Sơ đồ chân 89C51

 Cấu trúc bên trong của 89C51

Trang 7

89C51 có tất cả 40 chân có chức năng như các đường xuất nhập Trong đó có 24 chân

có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ

7

Trang 8

1 GND ( chân 20) : chân nối đất 0V.

2 Port 0 là port có 2 chức năng ở các chân 32 – 39 của 8951 Trong các thiết kế cỡnhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉvà bus

dữliệu

3 Port 1 là port IO trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1, P1.2, … có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngoài

4 Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng

5 Port 3 là port có tác dụng kép trên các chân 10 - 17 Các chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 8951 như ở bảng sau:

Ngõ vào dữ liệu nối tiếpNgõ xuất dữ liệu nối tiếpNgõ vào ngắt cứng thứ 0Ngõ vào ngắt cứng thứ 1Ngõ vào của TIMER/COUNTER thứ 0Ngõ vào của TIMER/COUNTER thứ 1Tín hiệu ghi dữ liệu lên bộ nhớ ngoàiTín hiệu đọc bộ nhớ dữ liệu ngoài

Trang 9

6 PSEN ( Program store enable ): PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng chophép đọc bộ nhớ chương trình mở rộng thường được nói đến chân 0E\ (output enable) của Eprom cho phép đọc các byte mã lệnh PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951 đểgiải mã lệnh Khi 8951 thi hành chương trình trong ROM nội PSEN sẽ ở mức logic 1.

7 ALE ( Address latch enable ) : Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ởchân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp cácđường địa chỉvà dữ liệu khi kết nối chúng với IC chốt Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động Các xung tín hiệu ALE có tốc độbằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống Chân ALE được dùng làm ngõ vào xung lập trình cho Eprom trong 8951

8 EA ( External access) : Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0 Nếu ở mức 1, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8 Kbyte Nếu ở mức 0, 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng Chân EA được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 8951

9 RST ( Reset ) : Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951 Khi ngõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch tự động Reset

9

Trang 10

10 X1, X2 : Bộ dao động được tích hợp bên trong 8951, khi sử dụng 8951 người thiết kế chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho 8951 là 12Mhz.

11.Vcc : chân nguồn nối lên 5V

b Tổ chức bộ nhớ

Bộ nhớ bên trong chip bao gồm ROM, RAM và EPROM RAM trên chip bao gồm vùng RAM đa chức năng, vùng RAM với từng bit được định địa chỉ, các dây thanh ghi (bank) và các thanh ghi chức năng đặc biệt.

- Công dụng:

+ Truy xuất các bit riêng rẽ thông qua các phần mềm

+ Các port có thể định địa chỉ từng bit, làm đơn giản việc giao tiếp băng phần

Trang 11

mền với các thiết bị xuất nhập đơn bit.

Các thanh ghi chức năng đặc biệt (SFR):

Không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chit có

21 địa chỉ được định nghĩa.

Các thanh ghi chức năng đặc biệt bao gồm:

+ Từ trạng thái chương trình PSW: có địa chỉ là D0H

+ Thanh ghi B: Có địa chỉ F0H được dùng chung với thanh chứa A trong các phép toán nhân và chia.

+ Con trỏ Stack (SP): là thanh ghi 8bit ở địa chỉ 81H, nó chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack

+ Con trỏ dữ liệu DPTR: Dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ dữ liệu ngoài DPTR là thanh ghi 16bit có địa chỉ 82H (bytethấp) và 83H (bytecao).

+ Các thanh ghi port :

Port 0 : đại chỉ 80H

Port 1 : địa chỉ 90H

Port 2: địa chỉ A0H

Port 3: địa chi B0H + Các thanh ghi định thời: 89C51có 2 bộ định thời/đếm dùng để định khoảng thời gian hoặc đếm các sự kiện.

- Bộ định thời 0: địa chỉ 8AH (TL0) và 8CH (TH0)

- Bộ định thời 1: địa chỉ 8bH (TL1) và 8DH (TH1)

Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời TMOD

11

Trang 12

ở địa chỉ 89H và thanh ghi điều khiển bộ định thời TCON ở địa chỉ 88H (chỉ cóTCON được định địa chỉ từng bit).

+ Các thanh ghi của port nối tiếp: 89C51 có 1 port nối tiếp để truyền thông với các thiết bị như các thiết bị đầu cuối hoặc model

+ Các thanh nghi ngắt: có 1 cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên nhân ngắt Các ngắt bị vô hiệu hóa sau khi reset hệ thống và được phép bằng cách vào thanh ghi IE ở địa chỉ A8H Mức ưu tiên ngắt được thiết lập bởi thanh ghi IP ở địa chỉ B8H.

+Thanh ghi điều khiển nguồn: PCON có địa chỉ 87H

c Tập lệnh của 89C51

* Các kiểu định địa chỉ: Trong tập lệnh có 8 chế độ đánh địa chỉ

- Thanh ghi đại chỉ

- Địa chỉ trực tiếp

- Địa chỉ gián tiếp

- Địa chỉ tức thời

- Địa chỉ tuyệt đối

- Địa chỉ tương đối

Trang 13

2 Cơ cấu hiện thị LCD 16x2

a Hình dáng và kích thước:

Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên hình 1 là loại LCD thông dụng.

Hình 1 : Hình dáng của loại LCD thông dụng

Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết Các chân này được đánh số thứ tự và đặt tên như hình 2 :

13

Trang 14

Hình 2 : Sơ đồ chân của LCD

Trang 15

Chân Ký

hiệu

Mô tả

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với

GND của mạch điều khiển

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này

với VCC=5V của mạch điều khiển

Chân chọn thanh ghi (Register select) Nối chân RS với logic

“0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high- to-low transition) của tín hiệu chân E.

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.

Trang 16

Bảng 1 : Chức năng các chân của LCD

Chú ý : Chân 15 và chân 16: ghi là A và K Nó là anot và katot của một

con led dùng để sáng LCD trong bóng tối, chúng ta có thể k nối , nếu sử dụng nối chân 15 với trở 220 or 330 ôm lên VCC , chân 16 nối đất.

b Các thành phần chức năng

- Cờ Busy (BF - Busy flag): Nếu BF = 1, LCD đang trong quá trình thực thi một

lệnh Khi đó, các lệnh gởi tiếp theo sẽ bị bỏ qua BF được đọc tại chân D7 khi RS

= 0 và R/W = 1 Do đó, trước khi thực hiện một lệnh, cần kiểm tra BF trước, nếu

BF = 0 thì mới gởi lệnh.

DD

- Vùng RAM hiển thị DDRAM : (Display Data RAM)

Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM

là một ô kí tự trên màn hình và khi bạn ghi vào vùng RAM này một mã 8 bit, LCD

sẽ hiển thị tại vị trí tương ứng trên màn hình một kí tự có mã 8 bit mà bạn đã cung cấp Hình sau đây sẽ trình bày rõ hơn mối liên hệ này :

Trang 17

Hình 4 : Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD

Vùng RAM này có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit.Những vùng RAM còn lại không dùng cho hiển thị có thể dùng như vùng RAM

đa mục đích

Lưu ý là để truy cập vào DDRAM, ta phải cung cấp địa chỉ cho AC theo mã HEX

- Bộ đếm địa chỉ AC : (Address Counter)

Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn

vị và nội dung của AC được xuất ra cho MPU thông qua DB0-DB6 khi có thiết lập RS=0 và R/W=1 (xem bảng tóm tắt RS - R/W)

Lưu ý: Thời gian cập nhật AC không được tính vào thời gian thực thi lệnh mà

được cập nhật sau khi cờ BF lên mức cao (not busy), cho nên khi lập trình hiển thị, bạn phải delay một khoảng tADD khoảng 4uS-5uS (ngay sau khi BF=1) trước khi nạp dữ liệu mới

17

Trang 18

Hình 4 : Giản đồ xung cập nhật AC

- CGROM (Character Genaration ROM):

Chứa các mô hình ký tự sẽ hiện thị trên LCD, bao gồm 192 ký tự 5x7 theo bảng mã ASCII (nghĩa là khi DDRAM chứa giá trị 41H tương ứng với mã ASCII của ký tự 'A' thì trên LCD sẽ hiện 'A'), trong dó chỉ có các mã từ 00H-0Fh sẽ không lấy theo mã ASCII mà lấy theo các ký tự đã định nghĩa trong CGRAM.

- Vùng RAM chứa kí tự đồ họa CGRAM : (Character Generator RAM)

Như trên bảng mã kí tự, nhà sản xuất dành vùng có địa chỉ byte cao là 0000 để người dùng có thể tạo các mẫu kí tự đồ họa riêng Tuy nhiên dung lượng vùng này rất hạn chế: Ta chỉ có thể tạo 8 kí tự loại 5x8 điểm ảnh, hoặc 4 kí tự loại 5x10 điểm ảnh

Trang 20

3 Bàn phìm keypad small calculator

Hình 4: Cơ cấu bàn phím keypad small calculator

4.Các linh kiện khác

- Mạch tạo dao động thạch anh 12MHz:

Cấp nguồn 5V cho vi điều khiển (Vcc: 5V chân 40; GND: 0V chân 20) Trong đó C1,C2= 30pF±10pF (thường được sử dụng với C1,C2 là tụ 33pF) dùng ổn định dao động cho thạch anh.

Trang 21

Phần 3:

THIẾT KẾ VÀ MÔ PHỎNG

I SƠ ĐỒ KHỐI

21

Trang 22

II MẠCH MÔ PHỎNG

- Đấy là mạch mô phỏng nguyên lý cấu tạo máy tính bỏ túi sử dụng chip AT89C51,bàn phím và LCD16x2 trên phần mềm Proteus 7.8

Trang 23

III CODE CHƯƠNG TRÌNH

1 Các thư viện sử dụng trong chương trình

a Thư viện LCD 16x2 chế độ 8 bit

/*==================Thu vien LCD16x2==============================

+ Vss : Mass+ Vcc : Nguon 5V+ Vee : Cap nguon dieu khien tuong phan+ RS : Chon thanh ghi(register select)

1- thanh ghi data 0- Thanh ghi lenh+ RW : read/write(1/0)

+ 07h Dich hien thi sang trai+ 08h Tat con tro, tat hien thi+ 0ah Tat hien thi, bat con tro+ 0ch Bat hien thi, tat con tro+ 0eh Bat hien thi, nhap nhay con tro

23

Trang 24

+ 0fh Tat con tro, nhap nhay con tro+ 10h Dich vi tri con tro sang trai+ 14h Dich vi tri con tro sang phai+ 18h Dich toan bo hien thi sang trai+ 1ch Dich toan bo hien thi sang phai+ 80h Ep con tro ve dau dong thu nhat+ 0c0 Ep con tro ve dau dong thu 2+ 38h Hai dong va ma tran 5x7

Trang 25

//================= Write data 1char ===============================

void write_data(unsigned char str){

//================= Khoi tao LCD ==================================

void LCD_khoitao(void){

write_command(0x38); //2 dong va font 5x7

25

Trang 26

write_command(0x0e); // bat man hinh va con trowrite_command(0x01); // xoa man hinh

Trang 27

phim_bam = 0 ;keypad = 0xf0 ; //Quet cotwhile(keypad == 0xf0) ; //wait phim bamdelay_keypad ( 1000 ); //Chong nay phimif( C1 == 0 ) phim_bam = 0 ;

if( C2 == 0 ) phim_bam = 1 ;if( C3 == 0 ) phim_bam = 2 ;if( C4 == 0 ) phim_bam = 3 ;

27

Trang 28

keypad = 0xff; //Xoa port trc khi quetkeypad = 0x0f; //Quet hang

Trang 29

c Chương trình chính

/*=============================================================PROGRAM CACULATOR SMALL

- Muc dich : Thiet ke may tinh cam tay thuc hien duoc cac phep tinh co ban

+ Cong+ Tru+ Nhan+ Chia

- Su dung ban phim voi 16 phim(4x4)

- Hien thi tren man hinh LCD 16x2

==============================================================*/

29

Trang 30

//Khai bao tien xu ly

kq += temp ;

Trang 31

}return kq;

}

//======== Chuyen so hex -> asscii ====================================char* DEC_ASSCII ( long number , unsigned char do_dai ) //so can chuyen va so chu so{

unsigned char str[10] = "" ; //ket qua unsigned int i = 0 , temp = 0, kiem_tra=0;

for ( i = 0 ; i < do_dai ; i ++ ){

temp = number % 10 ; //Lay phan dunumber /= 10 ;

str [ do_dai - i - 1 ] = temp + 0x30 ; }

return &str [ 0 ] ;}

//============== Thuc hien cac phep toan ==================

long result_math ( long number_1 , long number_2 , unsigned char phep_toan )

31

Trang 32

if ( phep_toan == 'x' ) return number_1 * number_2 ; // Phep nhan

if ( phep_toan == ':' ) return (number_1 *1000)/number_2 ; //Phep chia}

//================== MAIN PROGRAM =================void main()

{

//Khai bao bien

unsigned char str [] = "Nhom_2" ;

unsigned char str_loi[] = "Loi Nhap" ;

unsigned char i = 0 , temp = 0 ;

unsigned char str_1 [ 10 ] = "" ; //Number 1 dang asscii

unsigned char str_2 [ 10 ] = "" ; // Number 2 dang asscii

unsigned char *kq_c; //Ket qua kieu char

Ngày đăng: 28/11/2014, 14:34

HÌNH ẢNH LIÊN QUAN

Hình 1 : Hình dáng của loại LCD thông dụng - Đồ án thiết kế máy tính bỏ túi sử dụng vi xử lý 89c51
Hình 1 Hình dáng của loại LCD thông dụng (Trang 13)
Hình 4 : Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD - Đồ án thiết kế máy tính bỏ túi sử dụng vi xử lý 89c51
Hình 4 Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD (Trang 16)
Hình 4 : Giản đồ xung cập nhật AC - Đồ án thiết kế máy tính bỏ túi sử dụng vi xử lý 89c51
Hình 4 Giản đồ xung cập nhật AC (Trang 17)
Hình 4: Cơ cấu bàn phím keypad small calculator - Đồ án thiết kế máy tính bỏ túi sử dụng vi xử lý 89c51
Hình 4 Cơ cấu bàn phím keypad small calculator (Trang 19)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w