intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn tốt nghiệp: Giới thiệu các linh kiện trong mạch vi điều khiển, nhận dạng tiếng nói

Chia sẻ: Lam Quoc Hung | Ngày: | Loại File: PDF | Số trang:72

294
lượt xem
55
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cùng tham khảo Luận văn tốt nghiệp: Giới thiệu các linh kiện trong mạch vi điều khiển, nhận dạng tiếng nói, luận văn này gồm 4 chương giúp bạn tìm hiểu về sơ đồ khối trong quá trình x ử lý tiếng nói, giới thiệu các linh kiên trong mạch vi điều khiển, nhận dạng, tiếng nói, thiết kế và thi công mạch, thiết kế phần mềm.

Chủ đề:
Lưu

Nội dung Text: Luận văn tốt nghiệp: Giới thiệu các linh kiện trong mạch vi điều khiển, nhận dạng tiếng nói

  1. Luận Văn Tốt Nghiệp PHẦN MỞ ĐẦU I. Khái Quát Vấn Đề Ngày nay, các bộ vi điều khiển đang có ứng dụng ngày càng m ở rộng 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 các thiết bị kỹ thuật từ phức tạp cho đến đơn giản như thiết bị tự động điều khiển, thiết bị văn phòng cho đ ến các thiết bị trong gia đ ình đều dùng các bộ vi điều khiển. Từ những điều đã được thấy đó và khả năng của em, em muốn làm một điều gì nhỏ để góp phần vào giúp người quản lý bớt phần mệt nhọc chân tay mà cho phép tăng hiệu suất lao động lên gấp nhiều lần, đồng thời vẫn đảm bảo đư ợc độ chính xác cao. Nên em quyết định thiết kế một mạch quản lý thiết bị bằng tiếng nói vì nó gần gũi với thực tế và nó th ật sự có ý nghĩa đối với em vì đ ã làm được một phần nhỏ trong xã hội. Để làm được mạch này cần thiết kế đ ược hai bộ phận chính là: bộ phận hiển thị và bộ phận nhận biết giọng nói.  Bộ phận hiển thị: có một bóng đèn để hiển thị  Bộ phận nhận biết tiếng nói đư ợc xử lý bằng phần mềm. II. Chọn Ph ương An Thiết Kế 1. Với mạch nhận biết giọng nói dùng IC Có ưu điểm sau: - cho phép tăng hiệu suất lao động - đảm bảo độ chính xác - tổn hao công suất bé, mạch có thể sử dụng pin hoặc accu các nhược điểm: - Kh ả năng linh hoạt kém - Thiết kế mạch phức tạp - Giá thành cao - IC nhận biết giọng nói ít phổ biến ở thị trường Việt Nam - Tài liệu về IC HM2007 còn hiếm. Trang 1
  2. Luận Văn Tốt Nghiệp Với việc sử dụng kỹ thuật số khó có thể đáp ứng đ ược việc dùng giọng nói để điều khiển thiết bị. Muốn thayđổi một yêu cầu nào đó của mạch thì buộc lòng ph ải thay đổi phần cứng. Do đó mỗi lần phải lắp lại mạch dẫn đ ến tốn kém về kinh tế m à nhiều khi yêu cầu đó không thực hiện được bằng ph ương pháp này. Với sự phát triển mạnh của ngành kỹ thuật số đặc biệt là sự ra đời các họ vi xử lý và vi điều khiển rất đa chức năng do đó việc dùng k ỹ thuật vi xử lý, kỹ thu ật vi đ iều khiển đã giải quyết những bế tắt và kinh tế h ơn mà phương pháp IC rời kết nối lại không thực hiện được. 2. Với mạch nhận biết giọng nói dùng vi xử lý: Ngoài những ưu điểm đ ã liệt kê trong phương pháp dung IC rời thì mạchdùng kỹ thuật vi xử lý còn có những ưu điểm sau: - Mạch có thể thay đổi một cách linh hoạt bằng việc thay đổi phần mềm, trong khi đó ph ần cứng không cần thay đổi mà mạch dùng IC rời không thể thực hiện được m à nếu có thực hiện đ ược thì cũng cứng nhắc mà người sử dụng khó tiếp cận, dễ nhầm. - Số linh kiện trong mạch ít hơn - Mạch đơn giản so với mạch dùng IC rời - Mạch có thể quản lý nhiều thiết bị cùng lúc b ằng phần mềm - Mạch cũng có thể phát triển kết nối giao tiếp với máy tính thích hợp cho nh ững người quản lý tại phòng k ỹ thuật nắm bắt được tình trạng hiện tại của thiết bị. Nhưng trong thiết kế người ta th ương chọn phương án tối ưu nhưng kinh tế do đó em chọn phương pháp thiết kế dùng kỹ thuật vi điều khiển. III. Mục Đích Y êu Cầu Của Đề Tài Trong đồ án này em dùng IC HM2007 đ ể nhận biết và xử lý tiếng nói để điều khiển thiết bị. Các thiết bị có thể mở bằng tay hoặc do giọng nói.Khi ta cài đặt giọng nói vào thiết bị mà ta muốn cài đặt, khi cài đặt xong nó sẽ lưu lại, khi nào ta cần tắt hoặc mở thiết bị nào theo yêu cầu của người sử dụng thì chỉ cần nói đúng câu mà ta đã cài đặt trước đó. Vì vậy mục đích yêu cầu của đề tài là: - Bộ phận hiển thị phải chính xác - Mạch điện không quá phức tạp, đảm bảo được sự an to àn và dễ sử dụng. Trang 2
  3. Luận Văn Tốt Nghiệp - Thiết bị gọn nhẹ. - Giá thanh không quá cao - Lưu trữ dữ liệu khi mất điện. - Sản phẩm của đề tài trước hết có thể được ứng dụng vào phương tiện giảng dạy tại trường , và nếu được phát triển rộng, đi sâu hơn th ì có thể ứng dụng vào trong thực tế sản xuất công nghiệp, và đ ặc biệt cung cấp một cái nh ìn tổng quát về xử lý bằng giọng nói. IV. Giới Hạn Của Đề Tài Số lượng thiết bị chưa được nhiều Chưa th ể phát triển thành m ột hệ thống mạng để có thể quản lý trong các nhà cao tầng. Do th ời gian nghiên cứu và để thực hiện đề tài chỉ giới hạn trong vòng 12 tuần lễ, vốn kiến thức và việc tìm hiểu sâu về một hệ vi điều khiển còn hạn chế, luận van này chỉ thực hiện trong phạm vi sau: Chương I: Tìm hiểu về sơ đồ khối trong quá trình xử lý tiếng nói Chương II: Giới thiệu các linh kiên trong m ạch vi điều khiển, nhận dạng tiếng nói Chương III: Thiết kế và thi công m ạch Chương IV: Thiết kế phần mềm V . Mục Tiêu Phát Triển Và Nghiên C ứu Dựa trên cơ sở của đề tài vi xử lý và vi điều khiển, đặc biệt là tính năng của chúng cũng như các họ IC giao tiếp, hiển thị…, nhằm thiết kế một hệ thống vi điều khiển góp phần làm phong phú thêm cho việc hiểu biết về lĩnh vực n ày đồng thời có thể mở rộng và đ ịnh hướng cho những đề tài sau. Đối với đề tài này ta có th ể phát triển thành một hệ thống giám sát và điều khiển thiết bị trong một toà nhà, kết hợp với điều khiển bằn g máy tính. Trang 3
  4. Luận Văn Tốt Nghiệp CHƯƠNG I: TÌM HIỂU VỀ SƠ ĐỒ KHỐI TRONG QUÁ TRÌNH XỬ LÝ I. Các Khối Trong Mạch: 1. K hối Thi Hành: Gồm một rơ le dùng để thực hiện việc tắtr mở thiết bị 2. K hối Hiển Thị: Gồm có một bóng đèn để hiển thịkhi nhận được câu lệnh 3. K hối Xử Lý: Với khối xử lý ngươi ta có th ể dùng khối vi xử lý. Khối n ày gồm một vi điều khiển hoạt động của mạch, việc xử lý và nh ận biết giọng nói hoàn toàn điều do IC chuyên dụng HM 2007(IC này sẽ đ ược nói rõ hơn trong phần giới thiệu IC). IC này là một mạch tích hợp nhận biết giọng nói đơn chíp CMOS với chíp tương tự, xử lý giọng nói và bộ phân điều khiển các chức năng. Nó đư ợc kết nối với một micrô, ram 64k. Ở đây ta sử dụng là SRAM 6264 được chế tạo theo công nghệ CMOS có dung lượng 65536 bit. Để điều khiển thiết bị có nguồn 220vac ta chọn các rơle có kh ả năng chịu tải. Ta dùng rơle loại 5v cho cùng nguồn toàn m ạch. Để cho rơle hoạt động ta phải dùng transisitor kéo cho rơle và TST chịu sự điều khiển của 89C51. Ngoài ra còn có một số bộ phận khác. 4. Sơ Đ ồ Khối Của Hệ Thống Khối giao tiếp Khối hiển thị CPU Khối bộ nhớ Trang 4
  5. Luận Văn Tốt Nghiệp II. Chức Năng Từng Khối 1. Đơn Vị Xử Lý Trung Tâm CPU Đây là kh ối quan trọng nhất của hệ thống. CPU giữ nhiệm vụ tiếp nhận và xử lý trung tâm, khả năng tiếp nhận và phân tích các yêu cầu tác động, từ đó có thểđáp ứng thích hợp. Điều n ày có thể thực hiện qua khái niệm tập lệnh của vi điều khiển, . tập lệnh này cho ta kh ả năng hoạt động có mức độ của đơn vị xử lý trung tâm, khắc phục và hạn chế các điều đó nhà sản xuất đ ã cố gắng thiết lập tập lệnh sao cho khi kế`t hợp chúng lại với nhau đơn vị xử lý trung tâm xử lý thêm nhiều tình huống mà từng lệnh riêng biệt không thể giài quyết đ ược. Đây chính là cơ sở của chương trình hệ thống. 2. K hối Bộ Nhớ Đây là nơi lưu trữ chương trình cũng như các số liệu thu nhập và các kết qu ả sau quá trình làm việc nào đó, khối này không th ể thiếu đư ợc trong hệ thống vi điều khiển và đó là nơi cất giữ m à người lập trình tạo ra cho hệ thống. 3. K hối Giao Tiếp Ngoại Vi đây là ph ần kết nối giữa Cpu và bên ngoài. Do yếu tố khách quan là CPU ch ỉ có một tuyến dữ liệu trong khi yêu cầu giao tiếp bên ngoài nhiều, vì vậy ph ần giao tiếp là đơn vị chịu trách nhiệm thiết lập các mối quan hệ từ b ên ngoài tại thời điểm có yêu cầu. 4. K hối hiển thị Đây là khối phục vụ đắc lực của hệ thống vi điểu khiển, bộ hiển thị giúp người lập trình kiểm soát được quá trình nhập số liệu cũng như một kết quả trong quá trình làm việc. Trong một số trư ờng hợp ta phải công nhận là thiết bị ngoại vi luôn đi kèm với một hệ thống điều khiển. Mặt khác vì đ ây là thiết bị ngoại vi hiển thị không làm việc với CPU mà ph ải thông qua giao tiếp ngoại vi. Trang 5
  6. Luận Văn Tốt Nghiệp CHƯƠNG II: GIỚI THIỆU CÁC LINH KIỆN TRONG MẠCH VI ĐIỀU KHIỂN ĐỂ NHẬN DẠNG TIẾNG NÓI I. Giới Thiệu Cấu Trúc Phần Cứng 8951 AT89C51 là một Microcomputer 8 bit, loại CMOS, có tốc độ cao và công suất thấp với bộ nhớ Flash có thể lập trình được. Nó được sản xuất với công nghệ bộ nhớ không bay hơi m ật độ cao của hãng Atmel, và tương thích với chuẩn công nghiệp của 80C51 và 80C52 về chân ra và bộ lệnh. Vì lý do đó, kể từ đây về sau ta sẽ d ùng thu ật ngữ “80C51” (hoặc "8051") 1. Sơ Đồ Chân 8951 8951 là IC vi điều khiển do hãng Intel sản xuất. IC này có đặc điển như sau:  4k byte Rom, 128 byte RAM  4 Port I/O 8 bit  2 bộ đếm/định thời 16 bit  Giao tiếp nối tiếp  64k byte không gian bộ nhớ ch ương trình mở rộng  64k byte không gian bộ nhớ dữ liệu mở rộng  Một số bộ lý luận 39 21 P0.0/AD0 P2.0/A8 38 22 P0.1/AD1 P2.1/A9 37 23  210 bit được địa chỉ hoá P0.2/AD2 P2.2/A10 36 24 P0.3/AD3 P2.3/A11 35 25 P0.4/AD4 P2.4/A12  Bộ nhân, bộ chia 34 26 P0.5/AD5 P2.5/A13 33 27 P0.6/AD6 P2.6/A14 32 28 P0.7/AD7 P2.7/A15 1 10 P1.0 P3.0/RXD 2 11 P1.1 P3.1/TXD 3 12 P1.2 P3.2/INTO 4 13 P1.3 P3.3/INT1 5 14 P1.4 P3.4/TO 6 15 P1.5 P3.5/T1 7 16 P1.6 P3.6/WR 8 17 P1.7 P3.7/RD 19 29 XTAL1 PSEN 18 XTAL2 9 30 RST ALE/PROG 31 EA/VPP AT89C51 Trang 6
  7. Luận Văn Tốt Nghiệp 2. Chức năng của các chân 8951  Port0 : Là một port hai chức năng trên các chân 32 – 39. 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 I/O. Đối với các thiết kế lớn với bộ nhớ mở rộng, nó được hợp kênh giữa bus địa chỉ và bus dữ liệu.  Port 1: là port I/O trên các chân 1 – 8 . 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ỉ dùng cho giao tiếp với các thiết bị ngoài.  Port 2 : là m ột port công 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 kế dùng bộ nhớ mở rộng.  Port 3 : là một port công 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: Bít Tên Chức năng chuyển đổi P3.0 RXD Dữ liệu nhân cho port nối tiếp P3.1 TXD Dữ liệu xuất phát cho port nối tiếp P3.2 /INT0 Ngắt 0 bên ngoài P3.3 /INT1 Ngắt 1 bên ngoài P3.4 T0 Ngõ vào của Timer/counter0 P3.5 T1 Ngõ vào của Timer/counter1 P3.6 /WR Xung ghi bộ nhớ dữ liệu ngo ài P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài  PSEN (Program Store Enble) : Là tín hiệu ra trên chân 29. Nó là tín hiệu đ iều khiển để cho phép bộ nhớ chương trình mở rộng và thường được nối đ ến chân OE (Output Enable) cùa một EPROM để cho phép đọc các byte m ã lệnh. PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các m ã nhị phân Trang 7
  8. Luận Văn Tốt Nghiệp 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 của 8951 để giải mã lệnh.  ALE (Address Latch Enable) tín hiệu ALE trên chân 30 tương hợp với các thiết bị làm việc với các các vi xử lý, dùng ALE cho việc giải kênh các bus đ ịa chỉ và dữ liệu. Khi Port0 dùng trong ch ế độ chuyển đổi của nó: vừa là bus dữ liệu vừa là byte thấp của bus địa chỉ, ALE là tín hiệu để chốt địa chỉ vào thanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ, sau đó các đường Port0 dùng đ ể xuất hay dữ liệu trong nữa chu kỳ sau của chu kỳ bộ nhớ. 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ể dùng làm nguồn xung nhịp cho các phần khác của hệ thống. Nếu xung nhịp trên 8951 là 12MHz thì ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị mất. Chân n ày cũng được làm ngõ vào xung lập trình cho EPROM trong 8951.  EA (External Acsess): Là tín hiệu vào trên chân 31 thường được mắc ở mức thấp GND  RST (Reset) : Ngõ vào RST trên chân 9 là ngõ Reset của 8951, khi tín hiệu n ày được đ ưa lên mức cao (trong ít nhất 2 chu kỳ máy) Các thanh ghi trong 8951 được tải những giá trị thích hợp để khởi động hệ thống.  Các ngõ vào bộ giao động trên chip : 8951 có một bộ dao động trên chip, nó thường được nối với một thạch anh giữa hai chân 18 và 19. Các tụ giữ cũng cần thiết như trên hình. Tần số thạch anh thông thư ờng là 12MHz  Các chân nguồn : 8951 vận hành với nguồn đơn + 5V. VCC đư ợc nối vào chân 40 và VSS (GND) được nối vào chân 20.  XTAL1 và XTAL2  XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại dao động n ghịch được cấu hình đ ể dùng như một bộ dao động trên chip. Trang 8
  9. Luận Văn Tốt Nghiệp  Không có yêu cầu nào về duty cycle của tín hiệu xung ngo ài,vì ngõ nh ập nối với mạch tạo xung nội là một flip-flop chia đôi, nhưng các chỉ định về th ời gian high và low, các mức áp tối đa và tối thiểu phải được tuân theo. 3. Cấu Trúc Bên Trong Của 8951 Sơ đồ khối bên trong 8951 Timer 2 Điều khiển Các thanh ghi Timer 1 128 byte Ram Rom nội ngắt khác Timer 0 CPU Oscillator Điều khiển Các port rt I/O Bus I/O K hảo sát các khối bên trong 8951 Trang 9
  10. Luận Văn Tốt Nghiệp  Tổ chức bộ nhớ: 8951 có bộ nhớ theo cấu trúc Harvard, có nh ững vùng nh ớ riêng cho chương trình và dữ liệu RAM trên chip bao gồm nhiều phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi có chức năng đặc biệt.  Hai đặc tính cần chú ý là:  Các thanh ghi và các port xuất nhập đã được xếp trong bộ nhớ và có thể được truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác.  Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoài như trong các bộ vi xử lý khác.  Chi tiết về bộ nhớ RAM trên chip: RAM bên trong 8951 được phân chia giữa các bank thanh ghi (00H – 1FH), RAM địa chỉ hóa từng bit (20H – 2F), RAM đa dụng (30H 0 7FH) và các thanh ghi chức năng đặc biệt (80H – FFH) .  RAM đa dụng: Mọi địa chỉ trong vùng RAM đa d ụng đều có thể đư ợc truy xuất tự do dùng các đánh địa chỉ trực tiếp hoặc gián tiếp, Ví dụ: để đọc nội dung ở địa chỉ 5FH của RAM nội vào th anh ghi tích lũy, lệnh sau sẽ được dùng: MOV A,5FH  Lệnh này di chuyển một byte dữ liệu dùng các đánh đ ịa chỉ trực tiếp để xác định “ địa chỉ nguồn “ (5FH). Đích nhận dữ liệu được ngầm xác định trong mã lệnh là thanh ghi tích lũy A  RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua R0 hay R1. Ví dụ: hai lệnh sau thi hành cùng nhiệm vụ như lệnh đơn trên: MOV R0,#5FH MOV A,@R0 Trang 10
  11. Luận Văn Tốt Nghiệp  Lệnh đàu dùng địa chỉ tức thời để di chuyển giá trị 5FH vào thanh ghi R0, lệnh thứ hai dùng địa chỉ trực tiếp để di chuyển dữ liệu (đư ợc trỏ bởi R0) vào thanh ghi tích lũy. FFFF FFFF Bộ nhớ FF Bộ nhớ d ữ liệu chương trình đ ược chọn được chọn qua WR qua PSEN và RD 00 Bộ nhớ trên chip 0000 0000 Bộ nhớ mở rộng RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua R0 hay R1. Trang 11
  12. Luận Văn Tốt Nghiệp RAM địa chỉ hóa từng bit: Địa chỉ Địa chỉ Địa chỉ bit Địa chỉ bit byte byte FF 7F F0 F7 F6 F5 F4 F3 F2 F1 F0 B E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC RAM đa dụng PSW D0 D7 D6 D5 D4 D3 D2 D1 D0 30 B8 - - - BC BB BA B9 B8 IP 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 2D 6F 6E 6D 6C 6B 6A 68 69 IE 2C 67 66 65 64 63 62 61 60 A8 AF - - AC AB AA A9 A8 2B 5F 5E 5D 5C 5B 5A 59 58 P2 2A 57 56 55 54 53 52 51 50 A7 A6 A5 A4 A3 A2 A1 A0 A0 29 4F 4E 4D 4C 4B 4A 48 49 Không được địa chỉ hóa bit SBUF 28 47 46 45 44 43 42 41 40 99 27 3F 3A SCON 3E 3C 3B 39 38 3D 9F 9E 9D 9C 9B 9A 99 98 98 32 26 37 36 35 34 33 31 30 25 2F 2A 2E 2D 2C 2B 28 29 P1 97 96 95 94 93 92 91 90 90 22 24 27 26 25 24 23 21 20 23 1F 1A Không được địa chỉ hóa bit TH1 1E 1D 1C 1B 19 18 8D 12 22 17 16 15 14 13 11 10 Không được địa chỉ hóa bit TH0 8C 21 0F 0A 0E 0D 0C 0B 08 09 Không được địa chỉ hóa bit TL1 8B 02 20 07 06 05 04 03 01 00 Không được địa chỉ hóa bit TL0 8A Không được địa chỉ hóa bit TMOD 1F 89 Bank 3 18 8F 8E 8D 8C 8B 8A 89 88 TCON 88 Không được địa chỉ hóa bit 17 PCON 87 Bank 2 10 Không được địa chỉ hóa bit 0F DPH 83 Bank 1 08 Không được địa chỉ hóa bit 82 DPL Bank 0 07 Không được địa chỉ hóa bit SP 81 (Mặc định cho R0- R7) P0 00 80 87 86 85 84 83 82 81 80 RAM CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT  8951 ch ứa 210 bit được địa chỉ hóa trong đó 128 bit là các đ ịa chỉ byte 20H đến 2FH, và phần còn lại là trong các thanh ghi chức năng đặc biệt.  Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện lợi của vi điều khiển nói chung. Các bit có thể được đặt, xóa, AND, OR… với một lệnh đ ơn. Đa số các vi xử lý đòi hỏi một chuỗi lệnh đọc – sữa – ghi để đạt được Trang 12
  13. Luận Văn Tốt Nghiệp hiệu quả tương tự. Hơn nữa, các Port I/O cũng được địa chỉ hóa từng bit làm đơn giản phềm mềm xuất nhập từng bit  128 bit được địa chỉ hóa đa dụng ở các byte 20H – 2FH, các địa chỉ n ày được truy xuất như các byte hoặc như các bit phụ thuộc vào lệnh được dùng, Ví dụ: để đặt bit 67 H ,ta dùng lệnh sau: SETB 67H  Địa chỉ bit 67H là bit có trọng số lớn nhất (MSB) ở địa chỉ byte 2CH , do đó lệnh trên sẽ không tác động đến các bit khác ở địa chỉ này và các vi xử lý thi hành lệnh tương tự như thi hành các lệnh sau: MOV A,2CH : đọc cả byte ORL A,#10000000B :set MSB MOV 2 CH,A : ghi lại cả byte Các bank thanh ghi:  32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi. Bộ lệnh của 8951 hổ trợ thanh ghi (R0 đến R7) và theo mặc định (sau khi reset hệ thống) các thanh ghi này ở các địa chỉ 00H – 07H. Lệnh sau đây sẽ đọc nội dung ở địa ch ỉ 05H vào thanh ghi tích lũy: MOV A,R5  Đây là lệnh 1 byte d ùng địa chỉ thanh ghi. Tất nhiên thoa tác tương tự có thể thi hành bằng lệnh 3 byte dùng địa chỉ trực tiếp nằm trong byte thứ hai: MOV A,05H  Các lệnh dùng các thanh ghi R0 đến R7 th ì sẽ ngắn hơn và nhanh hơn các lệnh tương ứng nhưng dùng địa chỉ trực tiếp. Các giá trị dữ liệu được dùng thường xuyên nên dùng 1 trong các thanh ghi này.  Băng thanh ghi tích cực có thể chuyển đổi bằng các thay đổi các bit chọn bank thanh ghi trong từng trạng thái chương trình (PSW) .  Giả sử rằng bank thanh ghi 3 được tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H : Trang 13
  14. Luận Văn Tốt Nghiệp MOV R0,A  Ý tưởng dùng các bank thanh ghi cho phép chuyển h ướng chương trình nhanh và hiệu quả (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng không phụ thuộc vào các thành ph ần khác). Các thanh ghi chức năng đặc biệt :  Các thanh ghi nội của 8951 được truy xuất ngầm định bởi lệnh. Ví dụ: lệnh (INC A) sẽ tăng nội dung của thanh ghi tích lũy A lên 1. Tác động này đư ợc ngầm định trong mã lệnh.  Các thanh ghi trong 8951 được định dạng như một phần của RAM trên chip. Vì vậy mỗi thanh ghi sẽ có một địa ch ỉ (ngoại trừ thanh ghi đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp, n ên không lợi lộc gì mà đặt chúng vào trong RAM trên chip). Đó là lý do tại sao để 8951 nhiều thanh ghi như vậy. Cũng nh ư R0 đến R7, có 21 th anh ghi chức năng đặc biệt (SFR – Special Funtion Register) ở vùng trên của RAM nội, từ địa ch ỉ 80H – FFH, chú ý rằng hầu hết 128 địa chỉ từ 80H đến FFH không đư ợc định nghĩa. Chỉ có 21 địa chỉ SFR là được định nghĩa. Ngoại trừ tích lũy (A) có thể đư ợc tru y xuất ngầm như đã nói, đa số các SFR đư ợc truy xuất dùng đ ịa chỉ trực tiếp. Chú ý rằng một vài SFR có th ể được địa chỉ hóa bit hoặc byte. Ví dụ lệnh sau: SETB 0 E0H  Sẽ set bit 0 nếu trong thanh ghi tích lũy, các bit khác không thay đổi. Ta thấy rằng E0H đồng thời là đ ịa chỉ byte của cả thanh ghi tích lũy và là địa chỉ bit của bit có trọng số nhỏ nhất trong thanh ghi tích lũy. Vì lệnh SETB chỉ tác động trên bit nên chỉ có địa chỉ bit là có hiệu quả. Thanh ghi trạng thái chương trình Từ trạng thái chương trình ở đ ịa chỉ D0H được tóm tắt như sau: Trang 14
  15. Luận Văn Tốt Nghiệp BIT SYMBOL ADDRESS DESCRIPTION PSW.7 CY D7H Cary Flag Auxiliary Cary PSW.6 AC D6H Flag PSW.5 F0 D5H Flag 0 Register Bank PSW4 RS1 D4H Select 1 Register Bank PSW.3 RS0 D3H Select 0 00=Bank 0; address 00H÷07H 01=Bank 1; address 08H÷0FH 10=Bank 2; address 10H÷17H 11=Bank 3; address 18H÷1FH PSW.2 OV D2H Overlow Flag PSW.1 - D1H Reserved PSW.0 P DOH Even Parity Flag Chức năng từng bit trạng thái chương trình * Cờ nhớ • Cờ nhớ (CY) có công dụng kép. Thông thư ờng nó được dùng cho các lệnh toán học : nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mư ợn bởi phép trừ. Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh ADD A, #1 sẽ trả về thanh ghi tích lũy kết quả 00H và set cờ nhớ trong PSW. Trang 15
  16. Luận Văn Tốt Nghiệp Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit. Ví dụ, lệnh sau sẽ AND bit 25H với cờ nhớ và đặt kết quả trở vào cờ nh ớ : ANL C, 25H * Cờ nhớ phụ Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của 4 bit thấp trong khoảng 0AH đến 0FH. Nếu các giá trị đ ược cộng là số BCD, thì sau lệnh cộng cần có DA A (hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết quả lớn hơn 9 vào nibble cao. * Cờ 0 Cờ 0 (F0) là 1 bit cờ đa dụng d ành cho các ứng dụng của người dùng.  Những bit chọn bank thanh ghi truy xuất: RS1 và RS0 quyết định dãy thanh ghi tích cực. Chúng được xóa sau khi reset hệ thống và đư ợc thay đổi bởi phần mềm khi cần thiết. Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là Bank 0, Bank1, Bank2, Bank3. RS1 RS0 BANK 0 0 0 0 1 1 1 0 2 1 1 3  Cờ tràn O V (Over Flag) : Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học. Khi các số có dấu đư ợc cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này đ ể xác định xem kết quả có nằm trong tầm xác định không. Khi các số không có dấu được cộng bit OV đ ược bỏ qua. Các kết quả lớn hơn +127 hoặc nhỏ hơn –128 thì bit OV = 1. Trang 16
  17. Luận Văn Tốt Nghiệp Bit Parity (P): Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity chẳn với thanh ghi A. Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn ch ẵn. Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong A và P tạo thành số chẵn. Bit Parity thường được dùng trong sự kết hợp với những thủ tục của Port nối tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm tra bitParity sau khi thu. Cờ 0: Cờ 0 (F0) là 1 bit cờ đa dụng dành cho các ứng dụng của người dùng  Thanh ghi B: Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi A cho các phép toán nhân chia. Lệnh MUL AB sẽ nhận những giá trị không dấu 8 bit trong hai thanh ghi A và B, rồi trả về kết quả 16 bit trong A (byte cao) và B(byte thấp). Lệnh DIV AB lấy A chia B, kết quả nguyên đặt vào A, số dư đ ặt vào B. Thanh ghi B có th ể đ ược dùng như một thanh ghi đệm trung gian đa mục đích. Nó là những bit định vị thông qua những địa chỉ từ F0H÷F7H.  Con trỏ Ngăn xếp SP (Stack Pointer) : Con trỏ ngăn xếp là một thanh ghi 8 bit ở địa chỉ 81H. Nó chứa địa chỉ của b yte d ữ liệu hiện hành trên đ ỉnh ngăn xếp. Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp (PUSH) và lấy dữ liệu ra khỏi Ngăn xếp (POP). Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP. Ngăn xếp của 8031/8051 được giữ trong RAM nội và giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp, chúng là 128 b yte đầu của 8951. Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60H, các lệnh sau đây được dùng: MOV SP , #5F Với lệnh trên thì ngăn xếp của 8951 chỉ có 32 byte vì địa chỉ cao nhất của RAM trên chip là 7FH. Sở dĩ giá trị 5FH được nạp vào SP vì SP tăng lên 60H trước khi cất byte dữ liệu. Trang 17
  18. Luận Văn Tốt Nghiệp Khi Reset 8951, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên sẽ được cất vào ô nh ớ ngăn xếp có địa chỉ 08H. Nếu phần mềm ứng dụng không kh ởi động SP một giá trị mới thì bank thanh ghi1 có thể cả 2 và 3 sẽ không dùng được vì vùng RAM này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm bằng lệnh gọi chương trình con ( ACALL, LCALL) và các lệnh trở về (RET, RETI) để lưu trữ giá trị của bộ đếm ch ương trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết thúc chương trình con …  Con trỏ dữ liệu DPTR (Data Pointer): Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh ghi 16 bit ở địa chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao). Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H: MOV A , #55H MOV DPTR, #1000H MOV @DPTR, A Lệnh đầu tiên dùng đ ể nạp 55H vào thanh ghi A. Lệnh thứ hai dùng đ ể nạp địa chỉ của ô nhớ cần lưu giá trị 55H vào con trỏ dữ liệu DPTR. Lệnh thứ ba sẽ di chuyển nội dung thanh ghi A (là 55H) vào ô nh ớ RAM bên ngoài có địa chỉ chứa trong DPTR (là 1000H).  Các thanh ghi Port (Port Register): Các Port của 8951 bao gồm Port0 ở địa chỉ 80H, Port1 ở địa chỉ 90H, Port2 ở đ ịa chỉ A0H, và Port3 ở địa chỉ B0H. Tất cả các Port n ày đều có thể truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp.  Các thanh ghi Timer (Timer Register): 8951 có chứa hai bộ định thời/ bộ đếm 16 bit được dùng cho việc định thời được đếm sự kiện. Timer0 ở địa chỉ 8AH (TLO: byte thấp ) và 8CH (THO: byte cao). Timer1 ở địa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao). Việc khởi động timer được SET bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển Timer (TCON) ở địa chỉ 88H. Chỉ có TCON đư ợc địa chỉ hóa từng bit . Trang 18
  19. Luận Văn Tốt Nghiệp  Các thanh ghi Port nối tiếp (Serial Port Register) : 8951 chứa một Port nối tiếp cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính, modem hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99 sẽ giữ cả hai dữ liệu truyền và dữ liệu nh ập. Khi truyền dữ liệu ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận khác nhau được lập trình qua thanh ghi điều khiển Port nối tiếp (SCON) được địa chỉ hóa từng bit ở địa chỉ 98H.  Các thanh ghi ngắt (Interrupt Register): 8951 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi bị reset hệ thống và sẽ đ ược cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa chỉ A8H. Cả hai đ ược địa chỉ hóa từng bit.  Thanh ghi điều khiển nguồn PCON (Power Control Register): Thanh ghi PCON không có bit định vị. Nó ở địa chỉ 87H chứa nhiều bit điều khiển. Thanh ghi PCON đư ợc tóm tắt như sau: Bit 7 (SMOD) : Bit có tốc độ Baudrate mode 1, 2, 3 . Bit 6, 5, 4 : Không có đ ịa chỉ. Bit 3 (GF1) : Bit cờ đa năng 1. Bit 2 (GF0) : Bit cờ đa năng 2 . Bit 1 (PD) : Set đ ể khởi động mode Power Down và thoát đ ể reset. Bit 0 (IDL) : Set đ ể khởi động mode Idle và thoát khi ngắt mạch ho ặc reset. Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả các IC họ MSC-51 nhưng ch ỉ được thi h ành trong sự biên d ịch của CMOS.  Bảo vệ bộ nhớ Các bit khoá bộ nh ớ chương trình. Vi điều khiển AT89C51 có 3 bit khoá có thể bỏ không lập trình (U) hoặc được lập trình (P) đ ể nhận các đặc trưng thêm vào được liệt kê trong bảng dưới đây (với LB1, LB2, LB3 là các bit khóa tương ứng). Trang 19
  20. Luận Văn Tốt Nghiệp Ch ế độ L L L Kiểu bảo vệ B B B 1 2 3 1 U U U Không khoá chương trình 2 P U U Các lệnh MOVC được thi hành từ bộ nhớ chương trình ngoài bị cấm khi lấy các byte mã từ bộ nhớ nội, /EA đư ợc lấy mẫu và được chốt lại khi reset và hơn nữa, việc lập trình bộ nhớ Flash là bị cấm. 3 Như chế độ 2 nhưng việc kiểm tra cũng bị cấm 4 Như chế độ 3 nhưng việc thi h ành ngoài cũng bị cấm. Khi bit khoá 1 được lập trình, mức logic tại chân EA được lấy mẫu và chốt lại khi reset. Nếu thiết bị được bật nguồn mà không có reset, việc chố t sẽ đư ợc kh ởi tạo với một giá trị ngẫu nhiên cho đến khi đ ược reset. Giá trị được chốt của EA phải bằng với mức logic hiện tại ở chân đó để cho thiết bị làm việc một cách chính xác.  Hoạt động của port nối tiếp Giới thiệu 8051/8031 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ trên một dãi tần số rộng. Chức năng chủ yếu của port nối tiếp là thực hiện chuyển đổi song song sang nối tiếp đối với dữ liệu xuất, và chuyển đổi nối tiếp sang song song với dữ liệu nhập. Truy xuất phần cứng đến port nối tiếp qua các chân TXD và RXD. Các chân này có các chức năng khác với hai bit của Port 3, P3.1 ở chân 11 (TXD) và P3.0 ở chân 10 (RXD). Trang 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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