Thông báo

Tất cả đồ án đều đã qua kiểm duyệt kỹ của chính Thầy/ Cô chuyên ngành kỹ thuật để xứng đáng là một trong những website đồ án thuộc khối ngành kỹ thuật uy tín & chất lượng.

Đảm bảo hoàn tiền 100% và huỷ đồ án khỏi hệ thống với những đồ án kém chất lượng.

ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử MẠCH ĐỒNG HỒ BÁO TIẾT HỌC

mã tài liệu 301000300008
nguồn huongdandoan.com
đánh giá 5.0
mô tả 100 MB Bao gồm tất cả file,.lưu đồ giải thuật.. CDR thuyết minh, bản vẽ nguyên lý, bản vẽ thiết kế, FILE lập trình, và nhiều tài liệu liên quan kèm theo đồ án này
giá 989,000 VNĐ
download đồ án

NỘI DUNG ĐỒ ÁN

100 MB Bao gồm tất cả file,.lưu đồ giải thuật... thuyết minh, bản vẽ nguyên lý, bản vẽ thiết kế, FILE lập trình, ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử MẠCH ĐỒNG HỒ BÁO TIẾT HỌC

LỜI MỞ ĐẦU

Kỹ thuật Vi xử lí với tốc độ phát triển nhanh đã và đang mang đến những thay đổi to lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày. Ngày nay, các thiết bị, máy móc áp dụng kĩ thuật Vi xử lí ngày càng trở nên thông minh hơn và dễ sử dụng hơn, các công việc được thực hiện với hiệu quả cao hơn.

Kỹ thuật Vi xử lí là kỹ thuật của tương lai, là chìa khóa đi vào công nghệ hiện đại. Đối với học sinh sinh viên chuyên ngành Điện tử, đây là một lĩnh vực mới, hứa hẹn mở ra nhiều triển vọng. Để góp phần làm nền tảng ban đầu cho việc học tập, tìm hiểu và ứng dụng kỹ thuật vi xử lí, chúng em đã quyết định thực hiện Đề tài: MẠCH ĐỒNG HỒ BÁO TIẾT HỌC.

Những kiến thức năng lực đạt được trong suốt quá trình học tập ở trường sẽ được đánh giá qua đồ án này, vì vậy chúng em cố gắng tận dụng tất cả những kiến thức đã học ở trường cùng với sự tìm tòi nghiên cứu, sáng tạo để có thể hoàn thành tốt đồ án này. Những sản phẩm, những kết quả đạt được ngày hôm nay tuy không có gì lớn lao, nhưng đó là những thành quả của cả một khoá học.

Mặc dù chúng em đã rất cố gắng để hoàn thành đồ án này đúng thời hạn, tuy vậy vẫn không tránh khỏi những thiếu sót mong quí thầy cô thông cảm. Chúng em mong nhận được những ý kiến đóng góp chân thành từ quí thầy cô cùng toàn thể các bạn.

 Chúng em xin chân thành cảm ơn quí thầy cô cùng toàn thể các bạn

MỤC LỤC

 

 LỜI NÓI ĐẦU.......................................................................................................................... 2 

 Mục lục      ................................................................................................................................ 3 

CHƯƠNG DẪN NHẬP

Chương II: CÁC PHƯƠNG ÁN THIẾT KẾ.......................................................................... 7

  1. Các phương án thiết  ........................................................................................... 8
  2. Ưu nhược điểm của các phương án...................................................................... 8
  3. Lựa chọn phương án thiết kế............................................................................. 12

Chương III:GIỚI THIỆU TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN 89C52...................... 13

  1. Giới thiệu............................................................................................................ 14
  2. Tổng quát bộ Vi điều khiển 89C52.................................................................... 14
  3. Các chân của Vi điều khiển 89C52.................................................................... 16
  4. Tổ chức bộ nhớ................................................................................................... 18
  5. Bộ nhớ ngoài ..................................................................................................... 19
  6. Các nhóm lệnh của 89C52 ................................................................................. 23

Chương IV: GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH....................... 27

  1. IC DS12C887..................................................................................................... 28
  2. IC 74LS154........................................................................................................ 40
  3. IC 74LS573........................................................................................................ 43
  4. IC 7408............................................................................................................... 45

Chương V: THIẾT KẾ VÀ THI CÔNG................................................................................. 46

  1. Thiết kế phần cứng............................................................................................. 47
  2. Thiết kế phần mềm............................................................................................. 56

CHƯƠNG KẾT LUẬN

MỘT SỐ TÀI  LIỆU THAM KHẢO

CHƯƠNG DẪN NHẬP

I.ĐẶT VẤN ĐỀ :

   Ngày nay với sự phát triển của Công nghiệp Vi điện tử và Kỹ thuật số các hệ thống điều khiển dần dần được tự động hóa. Với những kỹ thuật tiên tiến như vi xử lí, vi mạch số … đựơc ứng dụng vào lĩnh vực điều khiển, thì các hệ thống điều khiển cơ khí thô sơ, với tốc độ xử lí chậm chạp ít chính xác được thay thế bằng các hệ thống điều khiển tự động với các chương trình đã được thiết lập trước.

Trong đó, Công nghệ Tự động hoá được xem như là giải pháp tiên tiến nhất và được ứng dụng vào tất cả các lĩnh vực đời sống của con người. Những lợi ích từ Công nghệ Tự động hoá giúp giảm bớt sự can thiệp trực tiếp của con người vào tất cả các  máy móc thiết bị.

            Xuất phát từ yêu cầu và để cũng cố kiến thức cho mình, mong muốn tạo ra sản phẩm để ứng dụng vào thực tiễn, chúng em chọn đề tài: “MẠCH ĐỒNG HỒ BÁO TIẾT HỌC”.

II.TẦM QUAN TRỌNG CỦA ĐỀ TÀI:

Sự nghiệp công nghiệp hóa – hiện đại hóa đất nước đã và đang từng bước được thực hiện đã thúc đẩy nền kinh tế phát triển, trong đó việc cải cách giáo dục đã đóng góp một phần không nhỏ trong công cuộc đổi mới đó. Từ suy nghĩ muốn tạo ra những sản phẩm là thành quả của giáo dục trong nhà trường ứng dụng vào thực tế phục vụ trực tiếp cho giáo dục, chúng em quyết định chọn đề tài: “MẠCH ĐỒNG HỒ BÁO TIẾT HỌC” có độ chính xác cao nhằm thay thế các phương pháp báo giờ bằng tay trước đây .  

 Về ưu điểm: ở phương pháp báo giờ này là chúng ta có thể lập trình thời gian thực tế, ngày – tháng – năm, giờ – phút – giây, thứ trong tuần và khởi tạo được thời gian báo động (chuông)… Ơ đây ưu điểm khác là đề tài này có khả năng phát triển để có thể ứng dụng điều khiển được các thiết bị khác: ứng dụng vào hệ thống tưới nước tự động, đóng ngắt thiết bị điện …

Về nhược điểm : có một nhược điểm nhỏ là chỉ điều khiển được các thiết bị nhỏ không điều khiển được các thiết lớn.

III.MỤC ĐÍCH NGHIÊN CỨU :

Mục đích nghiên cứu đề tài là thiết kế và thi công ” MẠCH ĐỒNG HỒ BÁO TIẾT HỌC” với các đặc tính kỹ thuật sau:

            + Hoạt động chính xác, dễ sử dụng, đảm bảo tính trực quan.

            + Có thể điều chỉnh giờ – phút – giây, ngày – tháng – năm và thứ trong tuần từ bàn phím .

IV.GIỚI HẠN ĐỀ TÀI :

Với thời gian gần sáu tuần thực hiện đề tài, cũng như khả năng có hạn, chúng em đã cố gắng hết sức để hoàn thành tập luận văn này, nhưng chỉ giải quyết được những vấn đề sau :

-  Tìm hiểu  Vi điều khiển AT89C52.

-  Tìm hiểu  IC chuyên dụng Real Time Clock DS12C887.

- Ứng dụng vi điều khiển và Real Time Clock để thiết kế và thi công thiết bị báo chuông tiết học.

- Mạch báo chuông tiết học được hiển thị các thông tin sau: Giờ, phút, giây, thứ, ngày, tháng, năm (dương lịch), chế độ báo thời gian trên led 7 đoạn.

Đề tài này nhóm sinh viên thực hiện không giải quyết những vấn đề sau:

-  Nghiên cứu các Real Time Clock khác ngoài DS12C887.

-  Các ứng dụng khác như: Giao tiếp với máy tính, Mạch nạp 89C52

       IV.NỘI DUNG ĐỀ TÀI:

       Tập luận án này được chia làm bốn chương:

              Phần I      : Các phương án thiết kế.

              Phần II    : Giới thiệu tổng quan về họ vi điều khiển 89C52.

              Phần III   : Giới thiệu các linh kiện sử dụng trong mạch.

              Phần IV   : Thiết kế và thi công.

       V.PHƯƠNG PHÁP NGHIÊN CỨU VÀ KẾ HOẠCH THỰC HIỆN:

       Với sự giúp đỡ của Thầy TRẦN THANH TRANG giáo viên hướng dẫn và các bạn trong lớp, ngoài lớp, nhóm tiến hành thực hiện đề tài theo phương pháp:

  • Thu thập tài liệu liên quan.
  • Tìm hiểu và lý giải các vấn đề gút mắc.
  • Tiếp thu nhiều ý kiến quý báu của thầy cô và những người bạn.

Tiến hành thiết kế, thi công và viết đồ án theo sự hướng dẫn của Thầy

................................

Chương II: CÁC PHƯƠNG ÁN THIẾT KẾ

 

I.CÁC PHƯƠNG ÁN THIẾT KẾ:

Có bốn phương án thiết kế như sau:

  1. DùngVi mạch số.
  2. Dùng Vi điều khiển.
  3. Dùng Vi điều khiển kết hợp Real time không có nguồn dự phòng.
  4. Dùng Vi điều khiển kết hợp Real time có nguồn dự phòng.

 

II.ƯU NHƯỢC ĐIỂM CỦA CÁC PHƯƠNG ÁN:

1. Dùng vi mạch số:

a. Sơ đồ khối: Hình 2.1: Sơ đồ khối mạch báo chuông số sử dụng vi mạch số.

     b.Chức năng của từng khối:

- Khối nguồn: cung cấp điện cho toàn mạch.

- Khối dao động: tạo xung chuẩn 1 giây cho khối đếm thời gian.

- Khối đếm thời gian: nhận xung chuẩn 1 giây để đếm phút, giờ.

- Khối giải mã BCD sang 7 đoạn: chuyển đổi tín hiệu BCD từ khối đếm ra mã 7 đoạn để đưa đến khối hiển thị.

- Khối hiển thị: để hiển thị thời gian.

- Khối điều chỉnh: để điều chỉnh thời gian khi mạch chạy sai hoặc khi mất nguồn.

- Khối báo động: Để báo động kêu chuông khi thời gian đã xác lập.

 

            c.Ưu nhược điểm:

+Ưu điểm: Không cần viết chương trình.

+Nhược điểm:

- Mạch điện phức tạp.

- Không chuẩn về thời gian do mạch dao động tạo xung chuẩn hoạt động không chính xác.

- Phải cài đặt lại khi mất nguồn điện.

- Tiêu thụ nhiều năng lượng do dùng nhiều IC, cấp nguồn liên tục cho led 7 đoạn.

- Giá thành cao, không kinh tế.

2. Dùng vi điều khiển:

  a.Sơ đồ khối:

Hình 2.2: Sơ đồ khối mạch báo chuông số sử dụng vi điều khiển.

 

b.Chức năng của từng khối:

- Khối nguồn: cung cấp điện áp cho toàn mạch.

- Khối vi điều khiển: điều khiển đếm thời gian theo ý người viết chương trình.

- Khối hiển thị: để hiển thị thời gian.

- Khối điều chỉnh: để điều chỉnh thời gian khi mạch chạy sai hoặc khi mất nguồn.

- Khối báo động: Để báo động kêu chuông khi thời gian đã xác lập.

 

c.Ưu nhược điểm:

+Ưu điểm:

- Mạch điện thiết kế đơn giản.

- Tiêu thụ năng lượng thấp do dùng phương pháp quét.

- Giá thành thấp.

+Nhược điểm:

- Người thiết kế phải biết về Vi điều khiển.

- Phải cài đặt lại thời gian khi mất nguồn.

- Độ chính xác chỉ tương đối hơn so vơi phương pháp dùng vi mạch số.

 

3.Dùng Vi điều khiển và Real Time ( không có nguồn dự phòng):

a. Sơ đồ khối:

 

Hình 2.3: Sơ đồ khối mạch báo chuông sử dụng VĐK và RTC (No battery).

 

b.Chức năng của từng khối:

- Khối nguồn: cung cấp điện áp cho toàn mạch.

- Khối Vi điều khiển: nhận dữ liệu từ Real Time sau đó xử lý rồi đưa ra mạch hiển thị.

- Khối Real Time: cung cấp dữ liệu thời gian cho vi điều khiển xử lý.

- Khối điều chỉnh: điều chỉnh thời gian khi mạch bị mất nguồn.

- Khối hiển thị: để hiển thị thời gian.

- Khối báo động: để báo động kêu chuông khi thời gian đã xác lập.

 

c.Ưu nhược điểm:

+Ưu điểm:

- Mạch điện thiết kế đơn giản.

- Độ chính xác cao.

- Tiêu thụ năng lượng thấp do dùng phương pháp quét.

- Giá thành thấp.

+Nhược điểm:

- Người thiết kế phải biết về Vi điều khiển.

- Phải cài đặt lại thời gian khi mất nguồn.

 

4.Vi điều khiển và real time (có nguồn dự phòng):

a.Sơ đồ khối:

Hình 2.4: Sơ đồ khối mạch báo chuông sử dụng VĐK và RTC (battery).

 

b.Chức năng của từng khối:

- Khối nguồn: cung cấp điện áp cho toàn mạch.

- Khối vi điều khiển: nhận dữ liệu từ Real time xử lý và đưa ra mạch hiển thị.

- Khối điều chỉnh: điều chỉnh để cập nhật thời gian.

- Khối hiển thị: để hiển thị thời gian.

- Khối báo động: Để báo động kêu chuông khi thời gian đã xác lập.

c.Ưu nhược điểm:

+Ưu điểm:

- Mạch điện thiết kế đơn giản.

- Độ chính xác cao.

- Tiêu thụ năng lượng thấp do dùng phương pháp quét.

- Không phải cài đặt lại thời gian khi mất nguồn.

+Nhược điểm: Người thiết kế phải biết về Vi điều khiển.

III. LỰA CHỌN PHƯƠNG ÁN THIẾT KẾ:

Trong 4 phương án thiết kế trên, dựa vào yêu cầu thực tế của đồ án cũng như các ưu nhược điểm của từng phương pháp thiết kế mà nhóm quyết định chọn  phương án thiết kế thứ 4 là: THIẾT KẾ VÀ THI CÔNG MẠCH ĐỒNG HỒ BÁO TIẾT HỌC DÙNG VI ĐIỀU KHIỂN KẾT HỢP REAL TIME CLOCK, vì theo nhận định chủ quan thì đây là phương án tối ưu nhất trong 4 phương án trên.

Chương III: GIỚI THIỆU TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN 89C52

I.GIỚI THIỆU :

Bộ vi điều khiển viết tắt là Microcontroller, là mạch tích hợp trên một chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống. Theo các tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian và tiến hành đóng mở một cơ cấu nào đó.

Trong các thiết bị điện tử dân dụng, các bộ vi điều khiển điều khiển hoạt động của TV, máy giặt, đầu đọc laser, điện thoại, lò vi-ba … Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động. Các hệ thống càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng và không thể thiếu được.

II.TỔNG QUÁT BỘ VI ĐIỀU KHIỂN 89C52:

IC vi điều khiển 89C52  có các đặc điểm  được tóm tắt như sau :

  • 8KB  ROM
  • 256 byte RAM
  • 04 port xuất nhập ( I/0 port) 8 bit
  • 03 bộ định thời 16bit.
  • Mạch giao tiếp nối tiếp.
  • Không gian nhớ chương trình (mã) ngoài 64K
  • Không gian  nhớ dữ liệu ngoài 64K.
  • Bộ xử lí bit (thao tác trên các bit riêng rẽ).
  • 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit.
  • Nhân / chia 4ms
  • Tần số xung Clock  1Mhz (đối với thạch anh 12Mhz).

**Sơ đồ khối Chip 89C52:

Interrupt control: điều khiển ngắt

Other registers:các thanh ghi khác

Timer 0, 1: bộ định thời 0, 1

CPU: đơn vị điều khiển trung tâm

Oscillator: mạch dao động

Bus control: điều khiển bus

I/O ports: các port xuất/nhập

Serial port: port nối tiếp

Address/data: địa chỉ/dữ liệu

III. CÁC CHÂN CỦA VI ĐIỀU KHIỂN 89C52:

1.Port 0: (các chân từ 32 đến 39 ) là port có 2 chức năng. Trong các thiết kế có tối thiểu thành phần (không dùng bộ nhớ mở rộng ), port 0 có hai chức năng như các đườngxuất/nhập. Đối với các thiết kế cỡ lớn (với bộ nhớ mở rộng ) port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp.

 

2.Port1: chỉ có một công dụng là xuất/nhập (các chân từ 1 đến 8 ). Các chân được ký hiệu P1.0, P1.1, P1.2 … P1.7 có thể dùng để giao tiếp với các thiết bị ngoài nếu cần. port1 không có chức năng khác (ngoại trừ hai chân P1.0 và P1.1 có thể sử dụng làm các đường xuất/nhập hoặc làm ngõ vào cho mạch định thời thứ  ba) , vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài.

 

3.Port 2: (các chân từ 21 đến 28 ) có 2 công dụng, đượ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.

 

4.Port 3: (các chân từ 32 đến 39 ) có 2 công dụng, khi không hoạt động xuất/nhập các chân của port  này có nhiều chức năng riêng (mỗi chân có chức năng riêng ):

            Bit       Tên        Địa chỉ bit     Chức năng

P3.0    RxD       B0H                Chân nhận dữ liệu của port nối tiếp

P3.1    TxD       B1H                Chân phát dữ liệu của port nối tiếp

P3.2    INT0      B2H                Ngõ vào ngắt ngoài 0       

            P3.3    INT1      B3H                Ngõ vào ngắt ngoài 1

            P3.4    T0          B4H                Ngõ vào của bộ định thời/đếm 0

            P3.5    T1          B5H                Ngõ vào của bộ định thời/đếm 1

            P3.6    WR        B6H                Điều khiển ghi bộ nhớ dữ liệu ngoài

            P3.7    RD         B7H                Điều khiển đọc bộ nhớ dữ liệu ngoài

            P1.0    T2          90H                 Ngõ vào của bộ định thời/đếm 2

            P1.1    T2EX     91H                 Nạp lại/thu nhận của bộ định thời 2

                        Bảng 3.3: Chức năng của các chân của port 3 và port 1

 

5.Chân cho phép bộ nhớ chương trình PSEN(Program Store Enable ):

            89C52 cung cấp 4 tín hiệu điều khiển bus. PSEN 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 bytes mã lệnh.

            PSEN sẽ ở mức thấp trong thời gian tìm-nạp lệnh. Các mã nhị phân của   chương trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 89C52 để giải mã lệnh. Khi thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động (mức cao).

 

6. Chân cho phép chốt địa chỉ ALE (Address Latch Enable ) :

            Tín hiệu ra 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 họ vi xử lí 8585, 8088, 8086. 89C52 dùng ALE làm một cách tương tự cho việc giải các kênh các bus địa chỉ và dữ liệu  khi port 0 được 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 địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó, các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa sau chu kỳ của 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ể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 89C52 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 cho xung lập trình cho EPROM trong 89C52.

 

7.Chân truy xuất ngoài EA (External Access) :

            Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu EA ở mức cao, 89C52 thi hành chương trình trong ROM nội (chương trình nhỏ hơn 8K). Nếu EA ở mức thấp (chân PSEN cũng ở mức thấp), chương trình cần thực thi chứa ở bộ nhớ ngoài. Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 89C52 sẽ bị cấm và chương trình thi hành từ EPROM mở rộng. Người ta  còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM nội (nạp EPROM).

 

8.Chân RESET (RST) :

            Ngõ vào RST trên chân 9 là ngõ reset của 89C52. 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 89C52 được tải những giá trị thích hợp để khởi động hệ thống.

 

9.Các ngõ vào bộ dao động trên chip :

            Như đã thấy trong hình 3.2 , 89C52 có một bộ dao động trên chip. Nó thường được nối với thạch anh giữa hai chân 18 và 19. Các tụ giữa cũng cần thiết như đã vẽ. Tần số thạch anh thông thường là 12MHz.

 

10.Các chân nguồn :

            89C52 vận hành với nguồn đơn, Vcc (+5V) được nối vào chân 40 và Vss (GND) được nối vào chân 20.

 

IV.TỔ CHỨC BỘ NHỚ :

            Bộ nhớ bên trong bao gồm ROM và RAM trên chip, 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 chức năng đặc biệt.

 

 

            So với họ chip 8051 thì 89C52 cũng tương tự chỉ có một số cải tiến và khác biệt cơ bản sau:

- 89C52 có  thêm 128 byte RAM trên chip từ địa chỉ 80H đến FFH. Điều này không xung đột với các thanh ghi chức năng đặc biệt (có cùng địa chỉ) vì 128 byte RAM thêm vào chỉ có thể truy xuất bằng cách dùng kiểu định địa chỉ gián tiếp. Ví dụ: Một lệnh như sau:

            MOV A,0F0H

di chuyển nội dung của thanh ghi B tới thanh ghi A trên các IC họ MCS-51. Chuỗi lệnh:

            MOV R0,#0F0H

            MOV A,@R0

đọc vào thanh ghi A nội dung tại địa chỉ F0H trên IC 89C52 nhưng không được định nghĩa trên 8051. Tổ chức bộ nhớ của 89C52 được tóm tắt như sau:

Thanh ghi      Địa chỉ           Mô tả                                                 Địa chỉ bit

T2CON           C8H                Điều khiển                                         Có

RCAP2L         CAH               Nhận byte thấp                                 Không

RCAP2H        CBH                Nhận byte cao                                   Không

TL2                 CCH                Byte thấp của bộ định thời 2          Không

TH2                CDH               Byte cao của bộ định thời 2            Không

 

- 89C52 có thêm bộ định thời 16 bit. Bộ định thời 2 này được lập trình nhờ vào 5 thanh ghi chức năng đặc biệt thêm vào.

- 89C52 có 26 trong 128 địa chỉ  từ 80H đến FFH được định nghĩa (8051 có 21 địa chỉ)

V. BỘ NHỚ NGOÀI:.

            89C52 có khả năng mở rộng bộ nhớ đến 64K bộ nhớ chương trình và 64K bộ nhớ dữ liệu bên ngoài. Do đó có thể dùng thêm ROM và RAM nếu cần.

            Khi dùng bộ nhớ ngoài, port 0 không còn là một port I/O thuần túy nữa. Nó được hợp kênh giữa bus địa chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE để chốt byte thấp của địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port 2 thông thường được dùng cho byte cao của bus địa chỉ.

            Trong nửa đầu của mỗi chu kỳ bộ nhớ, byte thấp của địa chỉ được cấp bởi port 0 và được chốt bằng xung ALE. Một IC chốt 74HC373 (hoặc tương đương) sẽ giữ byte thấp của địa chỉ ổn định trong cả chu kỳ bộ nhớ. Trong nửa sau của chu kỳ bộ nhơ, Port0 được dùng như bus dữ liệu và dữ liệu được đọc hoặc ghi tùy theo lệnh.

 

1. Truy xuất bộ nhớ chương trình ngoài:

            Bộ nhớ chương trình ngoài là bộ nhớ chỉ đọc được phép bởi tín hiệu PSEN. Khi có 1 EPROM ngoài được sử dụng, cả hai port 0 và 2 đều không còn là các port xuất/nhập.

Hình sau mô tả cách kết nối một EPROM vào 89C52:

            Một chu kỳ máy của 89C52 có 12 chu kỳ xung nhịp. Nếu bộ dao động trên chip được lái bởi một thạch anh 12MHz thì chu kỳ máy kéo dài 1ms. Trong một chu kỳ máy sẽ có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương trình (nếu lệnh hiện hành là một byte thì byte thứ hai sẽ được loại bỏ). Giản đồ thời gian của một lần lấy lệnh được vẽ ở hình sau:

 

One machine cycle: một chu kì máy

PCH ( Program counter high byte): byte cao của PC

2.Truy xuất bộ nhớ dữ liệu ngoài: 

            Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng các tín hệu WR và RD (các chân P3.6 và P3.7 thay đổi chức năng). chỉ có một cách truy xuất bộ nhớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu (DPTR) 16 bit hoặc R0 và R1 xem như thanh ghi địa chỉ.

            Kết nối bus địa chỉ và bus dữ liệu giữa RAM và 89C52 cũng giống EPROM và do đó cũng có thể lên đến 64 byte bộ nhớ RAM. Ngoài ra, chân RD của 89C52 được nối tới chân cho phép xuất (OE) của RAM và chân WR được nối tới chân ghi (WR) của RAM.

            Giản đồ thời gian cho lệnh đọc bộ nhớ dữ liệu ngoài được vẽ trên hình sau đối với lệnh  MOVX A, @DPTR:

            Giản đồ thời gian cho lệnh ghi (MOVX @DPTR, A) cũng tương tự chỉ khác đường WR sẽ thay vào đường RD và dữ liệu được xuất ra trên port 0 (RD vẫn giữ mức cao).


3. Lệnh reset:

            89C52 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ máy và trả nó về mức thấp. RST có thể được kích khi cấp điện dùng một mạch R-C.

Hình 2.10: Mạch reset hệ thống.

            Trạng thái của tất cả các thanh ghi của 89C52 sau khi reset hệ thống được tóm tắt trong bảng sau:

Thanh ghi                                          Nội dung

Bộ đếm chương trình                       0000H

Thanh chứa A                                   00H

Thanh ghi B                                       00H

PSW                                                    00H

SP                                                        07H

DPTR                                      0000H

Port 0 - 3                                            FFH

IP                                                         xxx00000B

IE                                                        0xx00000B

Các thanh ghi định thời                   00H

SCON                                                 00H

SBUF                                                  00H

PCON (HMOS)                                 0xxxxxxxB

PCON (CMOS)                                 0xxx0000B

Bảng 2.11: Giá trị các thanh ghi sau khi reset hệ thống

            Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được đặt lại 0000H. Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt đầu ở địa chỉ đầu tiên trong bộ nhớ trong chương trình: địa chỉ 0000H. Nội dung của RAM trên chip không bị thay đổi bởi lệnh reset.

VI.CÁC NHÓM LỆNH CỦA 89C52:

Tập lệnh của 89C52 được chia thành 4 nhóm:

  • Số học.
  • Luận lý.
  • Chuyển dữ liệu.
  • Chuyển điều khiển.

 

Các chi tiết thiết lập lệnh:

Rn                   :Thanh ghi R0 đến R7 của bank thanh ghi được chọn.

Data               : 8 bit địa chỉ vùng dữ liệu bên trong. Nó có thể là vùng RAM dữ

  liệu trong (0-127) hoặc các thanh ghi chức năng đặc biệt.

@Ri                : 8 bit vùng RAM dữ liệu trong (0-125) được đánh giá địa chỉ gián

  tiếp qua thanh ghi R0 hoặc R1.

#data             : Hằng 8 bit chức trong câu lệnh.

#data 16        : Hằng 16 bit chứa trong câu lệnh.

Addr16          : 16 bit địa chỉ đích được dùng trong lệnh LCALL và LJMP.

Addr11          : 11 bit địa chỉ đích được dùng trong lệnh LCALL và AJMP.

Rel                  : Byte offset 8 bit có dấu được dùng trong lệnh SJMP và những lệnh nhảy có điều kiện.

Bit                   : Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các thanh ghi chức năng đặc biệt.

            1.Nhóm lệnh xử lý số học:

ADD A,Rn                 (1,1): cộng nội dung thanh ghi Rn vào thanh ghi A.

ADD A,data (2,1): Cộng trực tiếp 1 byte vào thanh ghi A.

ADD A,@Ri              (1,1): Cộng gián tiếp nội dung RAM chứa tại địa chỉ    

        được khai báo trong Ri vào thanh ghi A.

ADD A,#data            (2,1): Cộng dữ liệu tức thời vào A.

ADD A,Rn                 (1,1): Cộng thanh ghi và cờ nhớ vào A.

ADD A,data (2,1): Cộng trực tiếp byte dữ liệu và cờ nhớ vào A.

ADDC A,@Ri           (1,1): Cộng gián tiếp nội dung RAM và cờ nhớ vào A.

ADDC A,#data         (2,1): Cộng dữ liệu tức thời và cờ nhớ vào A.

SUBB A,Rn               (1,1): Trừ nội dung thanh ghi A cho nội dung thanh ghi Rn

           và cờ nhớ.

SUBB A,data            (2,1): Trừ trực tiếp A cho một số và cờ nhớ.

SUBB A,@Ri            (1,1): Trừ gián tiếp A cho một số và cờ nhớ.

SUBB A,#data          (2,1): Trừ nội dung A cho một số tức thời và cờ nhớ.

INC A                        (1,1): Tăng nội dung thanh ghi A lên 1.

INC Rn                      (1,1): Tăng nội dung thanh ghi Rn lên 1.

INC data                   (2,1): Tăng dữ liệu trực tiếp lên 1.

INC @Ri                   (1,1): Tăng gián tiếp nội dung vùng RAM lên 1.

DEC A                       (1,1): Giảm nội dung thanh ghi A xuống  1.

DEC Rn                     (1,1): Giảm nội dung thanh ghi Rn xuống 1.

DEC data                  (2,1): Giảm dữ liệu trực tiếp xuống 1

DEC @Ri                  (1,1): Giảm gián tiếp nội dung vùng RAM xuống 1.

INC DPTR                (1,2): Tăng nội dng con trỏ dữ liệu lên 1.

MUL AB                    (1,4): Nhân nội dung thanh ghi A với nội dung thanh ghi B.

DIV AB                      (1,4): Chia nội dung thanh ghi A cho nội dung thanh ghi B.

DA A                          (1,1): Hiệu chỉnh thập phân thanh ghi A.

 

            2.Nhóm lệnh luận lý:

ANL A,Rn                 (1,1): AND nội dung thanh ghi A với nội dung thanh ghi Rn.

ANL A,data (2,1): AND nội dung thanh ghi A với dữ liệu trực tiếp.

ANL A,@Ri              (1,1): AND nội dung thanh ghi A với dữ liệu gián tiếp

          trong  RAM.

ANL A,#data            (2,1): AND nội dung thanh ghi với dữ liệu tức thời.

ANL data,A (2,1): AND một dữ liệu trực tiếp với A.

ANL data,#data       (3,2): AND một dữ liệu trực tiếp với A một dữ liệu tức thời.

ANL C,bit                 (2,2): AND cờ nhớ với 1 bit trực tiếp.

ANL C,/bit                (2,2): AND cờ nhớ với bù 1 bit trực tiếp.

ORL A,Rn                 (1,1): OR thanh ghi A với thanh ghi Rn.

ORL A,data (2,1): OR thanh ghi A với một dữ liệu trực tiếp.

ORL A,@Ri (1,1): OR thanh ghi A với một dữ liệu gián tiếp.

ORL A,#data            (2,1):OR thanh ghi A với một dữ liệu tức thời.

ORL data,A              (2,1): OR một dữ liệu trực tiếp với thanh ghi A.

ORL data,#data      (3,1): OR một dữ liệu trực tiếp với một dữ liệu tức thời.

ORL C,bit                 (2,2): OR cờ nhớ với một bit trực tiếp.

ORL C,/bit                (2,2): OR cờ nhớ với bù của một bit trực tiếp.

XRL A,Rn                 (1,1): XOR thanh ghi A với thanh ghi Rn.

XRL A,data (2,1): XOR thanh ghi A với mộ dữ liệu trực tiếp.

XRL A,@Ri              (1,1): XOR thanh ghi A với một dữ liệu gián tiếp.

XRL A,#data            (2,1): XOR  thanh ghi A với mộ dữ liệu tức thời.

XRL data,A (2,1): XOR một dữ liệu trực tiếp với thanh ghi A.

XRL dara,#data      (3,1): XOR một dữ liệu trực tiếp với một dữ liệu tức thời.

SETB C                      (1,1): Đặt cờ nhớ.

SETB bit                    (2,1): Đặt một bit trực tiếp.

CLR A                       (1,1): Xóa thanh ghi A.

CLR C                       (1,1): Xóa cờ nhớ.

CPL A                        (1,1): Bù nội dung thanh ghi A.

CPL C                        (1,1): Bù cờ nhớ.

CPL bit                      (2,1): Bù một bit trực tiếp.

RL A                         (1,1): Quay trái nội dung thanh ghi A.

RLC A                       (1,1): Quay trái nội dung thanh ghi A qua cờ nhớ.

RR A                          (1,1): Quay phải nội dung thanh ghi A.

RRC A                       (1,1): Quay phải nội dung thanh ghi A qua cờ nhớ.

SWAP                        (1,1): Quay trái nội dung thanh ghi A 1 nibble (1/2byte).

 

3.Nhóm lệnh chuyển dữ liệu:

MOV A,Rn                (1,1):Chuyển nội dung thanh ghi Rn vào thanh ghi A.

MOV A,data             (2,1): Chuyển dữ liệu trực tiếp vào thanh ghi A.

MOV A,@Ri             (1,1): Chuyển dữ liệu gián tiếp vào thanh ghi A.

MOV A,#data          (2,1): Chuyển dữ liệu tức thời vào thanh ghi A.

MOV Rn,data          (2,2): Chuyển dữ liệu trực tiếp vào thanh ghi Rn.

MOV Rn,#data        (2,1): Chuyển dữ liệu tức thời vào thanh ghi Rn.

MOV data,A             (2,1): Chuyển nội dung thanh ghi A vào một dữ liệu trực tiếp.

MOV data,Rn          (2,2): Chuyển nội dung thanh ghi Rn vào một dữ liệu trực tiếp.

MOV data,data       (3,2): Chuyển một dữ liệu trực tiếp vào một dữ liệu trực tiếp.

MOV data,@Ri       (2,2): Chuyển một dữ liệu gián tiếp vào một dữ liệu gián tiếp.

MOV data,#data     (3,2): Chuyển một dữ liệu tức thời vào một dữ liệu trực tiếp.

MOV @Ri,A             (1,1): Chuyển nội dung thanh ghi A vào một dữ liệu gián tiếp.

MOV @Ri,data       (2,2): Chuyển một dữ liệu trực tiếp vào một dữ liệu gián tiếp.

MOV @Ri,#data     (2,1): Chuyển dữ liệu tức thời vào dữ liệu gián tiếp.

MOV DPTR,#data (3,2): Chuyển một hằng 16 bit vào thanh ghi con trỏ dữ liệu.

MOV C,bit                (2,1): Chuyển một bit trực tiếp vào cờ nhớ.

MOV bit,C                 (2,2): Chuyển cờ nhớ vào một bit trực tiếp.

MOV A,@A+DPTR(1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là                                                               @A+DPRT vào thanh ghi A.

MOVC A,@A+PC      (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là                                                 @A+PC vào thanh ghi A.

MOV A,@Ri             (1,2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào thanh ghi A.

MOVX A,@DPTR (1,2): Chuyển dữ liệu ngoài (16 bit địa chỉ) vào thanh ghi A.

MOVX @Ri,A          (1,2): Chuyển nội dung A ra dữ liệu ngoài (8 bit địa chỉ).

MOVX @DPTR,A (1,2): Chuyển nội dung A ra dữ liệu bên ngoài (16 bit địa chỉ).

PUSH data                (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP.

POP data                   (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và giảm SP.

XCH A,Rn                (1,1): Trao đổi dữ liệu giữa thanh ghi Rn v2 thanh ghi A.

XCH A,data (2,1): Trao đổi  giữa thanh ghi A và một dữ liệu trực tiếp.

XCH A,@Ri (1,1): Trao đổi giữa thanh ghi A và một dữ liệu gián tiếp.

XCHD A,@R            (1,1): Trao đổi giữa nibble thấp (LSN) của thanh ghi A và

          LSN của dữ liệu gián tiếp.

            4.Nhóm lệnh chuyển điều khiển:

ACALL addr11       (2,2): Gọi chương trình con dùng địa chì tuyệt đối.

LCALL addr16        (3,2): Gọi chương trình con dùng địa chỉ dài.

RET                            (1,2): Trở về từ lệnh gọi chương trình con.

RETI                          (1,2): Trở về từ lệnh gọi ngắt.

AJMP addr11          (2,2): Nhảy tuyệt đối.

LJMP addr16          (3,2): Nhảy dài.

SJMP rel                   (2,2):Nhảy ngắn.

JMP @A+DPTR      (1,2): Nhảy gián tiếp từ con trỏ dữ liệu.

JZ rel                         (2,2): Nhảy nếu A=0.

JNZ rel                      (2,2): Nhảy nếu A không bằng 0.

JC rel                         (2,2): Nhảy nếu cờ nhớ được đặt.

JNC rel                      (2,2): Nhảy nếu cờ nhớ không được đặt.

JB bit,rel                   (3,2): Nhảy tương đối nếu bit trực tiếp được đặt.

JNB bit,rel                (3,2):Nhảy tương đối nếu bit trực tiếp không được đặt.

JBC bit,rel                (3,2): Nhảy tương đối nếu bit trực tiếp được đặt , rồi xóa bit.

CJNE A,data,rel      (3,2): So sánh dữ liệu trực tiếp với A và nhảy nếu không bằng.

CJNE A,#data,rel   (3,2): So sánh dữ liệu tức thời với A và nhảy nếu không bằng.

CJNE Rn,#data,rel(3,2): So sánh dữ liệu tức thời với nội dung thanh ghi Rn

          và nhảy nếu không bằng.

CJNE @Ri,#data,rel (3,2): So sánh dữ liệu tức thời với dữ liệu gián tiếp

           và nhảy nếu không bằng.

DJNZ Rn,rel              (2,2): Giản thanh ghi Rn và nhảy nếu không bằng.

DJNZ data,rel          (3,2): Giảm dữ liệu trực tiếp và nhảy nếu không bằng.

Chương IV: GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH

I. IC DS12C887

1. Sơ đồ chân của DS12C887 – Chức năng từng chân:

            a.Sơ đồ chân:

  • AD0 – AD7 : Bus đa hợp địa chỉ/ dữ liệu
  • NC                : Bỏ trống
  • MOT            : Lựa chọn loại bus
  • CS                 : Ngõ vào lựa chọn RT C
  • AS                 : Chốt địa chỉ
  • R/W\             : Ngõ vào đọc/ghi
  • DS                 : Chốt dữ liệu
  • RST               : Ngõ vào Reset
  • IRQ               : Ngõ ra yêu cầu ngắt
  • SQW             : Ngõ ra sóng vuông
  • VCC              : Nguồn cung cấp +5 VDC
  • GND             : Mass

b.Chức năng của các chân :

GND, Vcc: là chân cấp điện áp cho IC hoạt động, điện  áp  ngõ vào  là +5 VDC. Khi điện áp được cung cấp đúng chuẩn (5 VDC), thiết bị được truy cập đầy đủ và dữ liệu có thể đọc và ghi. Khi Vcc thấp hơn 4.25 volts, đọc và ghi bị cấm. Tuy nhiên, chức năng giữ thời gian vẫn được tiếp tục không bị ảnh hưởng bởi điện áp bị sụt giảm bên ngoài. Khi Vcc rớt xuống thấp hơn 3 V, RAM và bộ giữ giờ được chuyển sang nguồn năng lượng bên

trong. Chức năng giữ thời gian duy trì độ chính xác vào khoảng ±1 phút/tháng ở nhiệt độ 250 C bất chấp điện áp ở ngõ vào chân Vcc.

MOT (Mode Select): là chân có tính linh hoạt để lựa chọn giữa hai loại bus. Khi được nối lên Vcc, bus định thời Motorola được chọn lựa. Khi được nối xuống GND hoặc không nối, bus định thời Intel được lựa chọn. Chân có điện trở kéo xuống bên trong có giá trị vào khoảng 20K.

SQW (Square Wave Output): có thể xuất tín hiệu ra từ 1 trong 13 loại được cung cấp từ 15 trạng thái được chia bên trong của Real Time Clock. Tần số của chân SQW có thể thay đổi bằng cách lập trình thanh ghi A . Tín hiệu SQW có

....................................

 

            mov   dptr,#02h

            mov   a,#00h

            movx @dptr,a

 

            mov   dptr,#04h

            mov   a,#01h

            movx @dptr,a

 

            mov   dptr,#06h

            mov   a,#05h

            movx @dptr,a

           

            mov   dptr,#07h

            mov   a,#01h

            movx @dptr,a

           

            mov   dptr,#08h

            mov   a,#01h

            movx @dptr,a

 

            mov   dptr,#09h

            mov   a,#00h

            movx @dptr,a

 

            mov   dptr,#000eh

            mov   a,#0ch

            movx @dptr,a

 

            mov   dptr,#000fh

            mov   a,#0ch

            movx @dptr,a

 

            mov   7dh,#0ch

            mov   7eh,#0ch

            lcall delay255

            ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

delayht:

            mov   r7,#055h

dl_ht:

            movx            @dptr,a

            djnz  r7,dl_ht

            ret

end

 

 

 

 

CHƯƠNG KẾT LUẬN

 

      Sau 1 thời gian thực hiện đề tài: “Mạch đồng hồ báo tiết học” với sự nỗ lực và cố gắng của bản thân cùng với sự tận tình hướng dẫn của thầy Trần Thanh Trang, tập luận văn này đã hoàn thành đúng thời gian qui định theo yêu cầu đặt ra. Trong thời gian thực hiện đề tài, chúng em đã hoàn thành những nội dung sau đây:

 

*Phần kiến thức:

- Tìm hiểu về Họ vi điều khiển 89C52.

- Tìm hiểu về IC chuyên dụng Real Time Clock DS12C887, các IC số: 74LS154, 74LS573,7408…và các linh kiện sử dụng trong mạch: Relay, Transistor, Điện trở, Tụ điện…

 

*Phần thiết kế thi công :

- Xây dựng sơ đồ khối toàn mạch .

- Xây dưng lưu đồ giải thuật .

- Viết chương trình.       

- Thi công lắp ráp và kiểm tra.

Theo nhận định chủ quan của nhóm thực hiện thì tập luận văn này đã trình bày tương đối đầy đủ các nội dung, những kiến thức liên quan, giải quyết đươc những yêu cầu đặt ra:

   - Hiển thị giờ – phút – giây.

   - Hiển thị ngày – tháng – năm (Dương lịch).

   - Hiển thị thứ trong tuần.

   - Hiển thị kiểu reng  chuông.

   - Điều chỉnh thời gian bằng tay.

Tuy nhiên, đề tài vẫn có những giới hạn sau đây:

               - Không hiển thị ngày – tháng – năm (âm lịch).

               - Người sử dụng không thể cập thời gian để báo chuông.

            Để đề tài này được ứng dụng rộng rãi thì cần phải đáp ứng một số tính năng sau:

- Người sử dụng có thế cập nhập thời gian reng chuông bất kỳ.

- Hiển thị ngày – tháng – năm  (âm lịch)

     Nếu đề tài này phát triển sẽ có khả năng đóng mở thiết bị với thời gian  cập nhập  do người sử dụng, mong rằng đề tài này sẽ được các bạn sinh viên khóa sau tham khảo và có thể khắc phục được những hạn chế trên để tạo ra sản phẩm có độ chất lượng  cao để ứng dụng trong thực tiễn.

            Sau cùng một lần nữa chúng em xin chân thành cảm ơn thầy cùng với quí thầy cô trong khoa Điện tử chỉ dẫn tận tình, động viên chúng em trong suốt quá trình thực hiện đề tài.

            Xin chân thành cảm ơn !

                                                                                  Nhóm thực hiện đề tài

TÀI LIỆU THAM KHẢO

 

1.Lê Văn Doanh và Phạm Khắc Chương – Kỹ thuật Vi điều khiển – NXB Khoa Học Kỹ Thuật.

2.Nguyễn Hữu Phương – Giáo trình Vi mạch số – Trường ĐH Khoa Học Tự Nhiên TP HCM.

3.Tống Văn On và Hoàng Đức Hải – Họ Vi điều khiển 89C51 – NXB Lao Động  Xã Hội Hà Nội.

4.Nguyễn Hồng Sơn – Kỹ thuật Truyền số liệu – NXB Lao Động Xã Hội TP.HCM.

Close