Trong phạm vi đồ ỏn lần này, chỳng em dựng vi điều khiển để thiết kế mô hình đồng hồ số hiển thị bằng 8 led 7 thanh .Đõy chỉ là một trong những ứng dụng rất nhỏ của vi điều khiển nhưng q
Trang 1Đề tài: Thiết kế đồng hồ số hiển thị bằng 8 Led 7 đoạn
Sinh viên thực hiên: Đinh Thị Ngần
I.Giới thiệu chung về bộ vi điều khiển.
II.Khảo sát bộ vi điều khiển 8051(89s52).
Trang 2b.Nhóm ra điều khiển.
C Các thanh ghi
1.Các thanh ghi port xuất nhập.
2.Các thanh ghi timer.
3.Thanh ghi port nối tiếp.
4.Thanh ghi ngắt.
5.Hoạt động của bộ định thời
a.Thanh ghi chế độ (TMOD).
b.Thanh ghi điều khiển timer(TCON).
6.Hoạt động của port nối tiếp.
7.Các ngắt của 8051.
Chơng II: Đồng hồ số hiển thị bằng 8 led 7 thanh
I.Các thiết bị sử dụng trong mạch.
II.Lu đồ thuật toán.
Mã nguồn chơng trình.
LờI NóI ĐầU
Trang 3-Hiện nay thế giới đang khụng ngừng phỏt triển, cỏc thành tựu về khoa học
và kỹ thuật ngày một nhiều Năm 1976 Intel giới thiệu bộ vi điều khiển đầu tiờn
7448, từ đú đến nay vi điều khiển đó được sử dụng rất nhiều , phổ biến ở nhiều lĩnh vực trong đời sống Trong phạm vi đồ ỏn lần này, chỳng em dựng vi điều khiển để thiết kế mô hình đồng hồ số hiển thị bằng 8 led 7 thanh Đõy chỉ là một trong những ứng dụng rất nhỏ của vi điều khiển nhưng qua quỏ trỡnh thiết kế và thi cụng
đề tài chỳng em đó rỳt ra được rất nhiều kinh nghiờm thực tiễn quý bỏu Mục đớch của đề tài hướng đến: tạo ra bước đầu cho sinh viờn thử nghiệm những ứng dụng của
vi điều khiển trong thực tiễn để rồi từ đú tỡm tũi, phỏt triển nhiều ứng dụng khỏc trong đời sống hằng ngày cần đến.
Mặc dự đó cố gắng hết sức mỡnh để hoàn thành xong đồ ỏn mụn học nhưng cũng khụng trỏnh khỏi những thiếu sút và điều cha đợc về sản phẩm của mình Do vậy, chỳng em rất mong được sự gúp ý quý bỏu của thầy cụ và cỏc bạn để đề tài cú thể hoàn thiện hơn.
Chỳng em xin chõn thành cảm ơn!
Sinh viên thực hiện: Đinh Thị Ngần
Đoàn Trọng Linh
Vũ Thị Thu
Chơng I
Giới thiệu chung về bộ vi điều khiển
I.Giới thiệu chung về bộ vi điều khiển:
Bộ vi điều khiển viết tắt là Micro-contronller, là mạch tích hợp trên một chíp có thể lậptrình đợc, dùng để điều khiển hoạt động của 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, lu trữ thông tin, xử lý thông tin, đo lờng thời gian và tiếnhành đọc mở một cơ cấu nào đó
Trong các thiết bị điện và điện tử dân dụng, thiết bị tự động hoá… các bộ vi điều khiển, các bộ vi điều khiển,
điều khiển hoạt động của các thiết bị này Trong hệ thống sản xuất tự động, bộ vi điều
Trang 4-khiển đợc sử dụng trong điều -khiển robot, dây chuyền tự động… các bộ vi điều khiển, Các hệ thống càng thông minh thì vai trò của vi điều khiển càng quan trọng
II Khảo sát bộ vi điều khiển 8051(89S52)
Họ vi điều khiển 8051 (còn gọi là họ C51) là một trong những họ vi điều khiển thông dụng nhất Đây là các bộ vi điều khiển 8bits, có kiến trúc theo kiểusản xuất theo công nghệ CMOS, Một số loại vi điều khiển thuộc họ 8051 thông dụng có thể kể ra : AT89C2051(20 chân), AT89C4051(20 chân), AT89C51(40 chân), AT89C52(40 chân), AT89S51(40 chân), AT89S52(40 chân), AT89S53(40 chân)
Trong chơng trình môn học này chúng ta tập trung nghiên cứu về bộ vi điều khiển 89S52
Đây là một bộ vi điều khiển thông dụng, giá rẻ có khá nhiều chức năng hay đặc
biệt là có tích hợp sẵn bộ nạp trên chip giúp sinh viên có thể dễ dàng tự thực hiện các bài thí nghiệm với chi phí rất thấp
Cũng trong chơng trình môn học này, ngôn ngữ đợc sử dụng để trình bày các ví dụ ứng dụng là ngôn ngữ C
Cụ thể họ vi điều khiển 8051 có các đặc điểm sau :
-8 kbyte ROM (đợc lập trình bởi nhà sản xuất chỉ có ở 8051 )
- Thanh ghi tích luỹ A
- Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học (ALU: arithmetic logical unit)
- Thanh ghi từ trạng thái chơng trình (PSW: program status word)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
- Ngoài ra còn có bộ nhớ chơng trình, bộ giải mã lệnh, bộ điều khiển thời gian và logic
Trang 5Hình 1 : Sơ đồ khối 89s52 Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn có khả năng đa một tín hiệu giữ nhịp từ bên ngoài
Chơng trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn của bộ đếm định thời hoặc cũng có thể là giao diện nối tiếp
ba bộ định thời 16 Bit hoạt động nh một bộ đếm
Các cổng(Port 0, Port 1 Port 2 Port 3) Sử dụng vào mục đích điều khiển
ở cổng 3 có thêm các đờng dẫn điều khiển dùng để trao đổi với bộ nhớ ở bên ngoài, hoặc để
đầu nối giao diện nối tiếp, cũng nh các đờng ngắt dẫn ở bên ngoài
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việc độc lập với nhau Tốc độ truyền qua cổng nối tiếp có thể đặt trong vảy rộng và đợc ấn định bằng một bộ định thời
Trong vi điều khiển 8051 có hai thành phần quan trọng khác đó là bộ nhớ và các thanh ghi:
Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lu trữ dữ liệu và mã lệnh
Các thanh ghi sử dụng để lu trữ thông tin trong quá trình xử lý Khi CPU làm việc nó thay
đổi nội dung các thanh ghi
B.Sơ đồ chân, chức năng các chân của họ vi điều khiển 8051(89s52)
Trang 6a.Nhóm vào diều khiển.
-Xtal1(chân18),Xtal2(chân19):nối tinh thể thạch anh cho phát xung nhịp chu trình.
mạch dao động bên trong chip 8051 đợc ghép với thạch anh bên ngoài ở 2 chân
XTAL1 và XTAL2 Thờng tần số l 12MHz và các tụ ổn định có giá trị trong khoảng30pF 33 pF
-RST(reset)chân9:nối chuyển mạch để xoá về trạng thái ban đầu hay khởi động lại -/EA/CPP(chân31):chon nhớ ngoài ( nối đất);chọn nhớ trong(nối nguồn nuôi 5V) -T2 hay P1.0(chân1):tín hiệu vào đếm cho timer2.
-T2EX(chân2):tín hiệu vào ngắt ngoài2.
-INTO hay P3.2(chân12):tín hiệu vào gây ngắt ngoài 0.
-INT1 hay P3.3(chân13):tín hiệu vào gây ngắt ngoài 1.
-T0 hay P3.4(chân14):tín hiệu vào đếm cho timer 0.
-T1 hay P3.5(chân15):tín hiệu vào đếm cho timer1.
b.Nhóm ra điều khiển.
-ALE/prog(chân30):dùng dể định tín hiệu chốt địa chỉ khi có nhớ ngoài hay điều khiển ghi trơng trình /prog.
Là tín hiệu xuất ra để giải đa hợp bus địa chỉ v bus dữ liệu Trong 1/2 chu kỳ đầu
bộ nhớ, chân ALE xuất tín hiệu để chốt địa chỉ (byte thấp của bus địa chỉ 16 bit) và
thanh ghi ngoài khi ta sử dụng port 0 làm byte thấp địa chỉ Trong 1/2 chu kỳ bộ nhớcòn lại port 0 sẽ xuất/nhập dữ liệu Tín hiệu ALE có tần số bằng 1/6 tần số của mạchdao động bên trong chip vi điều khiển v có thể lm xung clock cho các phần còn lại
của hệ thống (trờng hợp ngoại lệ khi thực hiện lệnh MOVX, một xung ALE (vàs cả
/PSEN) sẽ bị bỏ qua) Chân ALE còn đợc dùng để nhập xung ngõ vo lập trình cho
EPROM hoặc Flash ROM trên chip đối với chip có loại ROM này
-PSEN(chân29):đa tín hiệu điều khiển đọc bộ nhớ truơng trình Rom ngoài.
Trang 7Chân này thờng đợc nối với chân cho phép xuất /OE (Output Entable) của
EPRROM (hoặc của ROM) để cho phép đọc các byte lệnh Tín hiệu /PSEN ở lôgic ‘0‘trong suốt thời gian tìm nạp lệnh Các mã nhị phân của chơng trình (opcode) đợc
đọc từ EPROM, qua bus dữ liệu và đợc chốt với thanh ghi lệnh IR của 8051 để đợc
giải mã Khi thực thi một chơng trình trong ROM nội, /PSEN đợc duy trì ở lôgic
không tích cực (logic 1)
-WR hay P3.6(chân số 16):đa tín hiệu ghi dữ liệu vào bộ nhớ ngoài.
- RD hay P3.7(chân số 17):đa tín hiệu đọc dữ liệu vào nhóm tín hiệu địa chỉ,dữ liệu -Cổng vào,ra địa chỉ/dữ liệu P0 hay P0.0-P0.7:(chân39-32):dùng trao đổi thông tin về dữ liệu D0-D7 hoặc đa ra các địa chỉ thấp (A0-A7) theo chế độ dồn kênh(kết hợp với tín hiệu chốt dịa chỉ ALE).
-Cổng vào ra địa chỉ/dữ liệu P2 hay P2.0-P2.7(chân21-28) dùng trao đổi thông tin song song về dữ liệu(D0-D7)hoặc đua ra địa chỉ cao(A8-A15).
-Cổng vào ra dữ liệu P1 hay P1.0-P1.7(chân1-8)dùng trao đổi thông tin song song dữ liệu(D0-D7).
-Cổng vào ra P3 hay(P3.0-P3.7)/:chân 10-17:
P3.0(chân10):đa vào tín hiệu nhận tin nối tiếp RXD.
P3.1(chân11):đua ra tín hiệu truyền tin nối tiếp TXD
/INTO hay P3.2(chân12) tín hiệu vào gây ngăt 0 của vi điều khiển.
/INT1 hay P3.3(chân13) tín hiệu vào gây ngắt 1 của vi điều khiển.
T0 hay P3.4(chân14) tịn hiệu vào đếm cho timer 0/counter 0 cho vi điều khiển 8051/8052.
T1 hay P3.5(chân15) tín hiệu vào đếm cho timer1
WR hay P3.6 (chân16) đa tín hiệu ghi vào bộ nhớ ngoài.
RD hay P3.7(chân17) đua tín hiệu đọc vào bộ nhớ ngoài.
-T2 hayP1.0(chân1) tín hiệu vào đếm cho timer 2/counter2.
-T2EX(chân2) tín hiệu vào gây ngắt 2 của vi điều khiển.
-Cổng vào/ra P3 còn dùng để trao đổi thông tin về dữ liệu D7-D0
Dới đây là cấu trúc của các chân trên port0,port1và port3,port2
Trang 8H×nh 3 CÊu tróc cña c¸c ch©n trªn port 0(P0.0-P0.7)
H×nh 4 CÊu tróc cña c¸c ch©n trªn port 1 vµ port 3(P1.0-P1.7vµ P3.0-P3.7)
Trang 9Hình 5 Cấu trúc của các chân trên port 2 (P2.0-P2.7)
C Các thanh ghi.
1 Các thanh ghi Port xuất nhập:
Các Port cua 8051 bao gồm port 0 ỏ địa chỉ 80H.port1 ỏ dịa chỉ 90H,port2 ỏ địa chỉ A0H và port 3 ỏ địa chỉ B0H.Tất cả các port dều đợc địa chỉ hoá tùng bit Điều đó cung cấpmột khả năng giao tiếp thuận lợi
2 Các thanh ghi TIMER:
8051 chứa 2 bộ định thời đếm 16bit đợc dùng trong việc định thời hoạ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 vận hành của Timer đợc set bởi thanh ghi Timer MODE(TMOD)ở địa chỉ 89H cà thanh ghi điều khiển timer(TCON)ở địa chỉ
88H.Chỉ có TCON đợc địa chỉ hoá từng bit
3 Các thanh ghi Port nối tiếp:
8051 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết bị nối tiếp nh máy tính, Modern hoặc cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (có
bộ chuyển đổi A/D,các thanh ghi dịch ) Một thanh ghi gọi la bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ dữ cả hai vai trò truyền và nhận dữ liệu.Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF Các MODE vận hành khác nhau đợc lập trình qua thanh ghi diều khiển Port nối tiếp (SCON) đợc dịa chỉ hoá từng bit ở địa chỉ 98H
4 Các thanh ghi ngắt :
8051 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 reset hệ thống và sẽ
đợc cho phép bằng việc thanh ghi cho phép ngắt (IE) ở địa chỉ 8AH Cả hai thanh ghi đợc
địa chỉ hoá từng bit
5 Hoạt động của bộ định thời(timer)
8051 có 3 timer 16 bit, mỗi timer có 4 cách làm việc Ngời ta sử dụng các timer để :
Định khoảng thời gian
Đếm sự kiện
Trang 10- Tạo tốc độ BAUD cho Port nối tiếp trong 8051
a) Thanh ghi chế độ(TMOD)
Thanh ghi TMOD chứa 2 nhóm 4bit dùng để đặt chế dộ làm việc cho timer0 và timer1
b) Thanh ghi điều khiển timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và timer 1.Bit Ký hiệu địa chỉ Mô tả
TCON.7 TF1 8FH Cở báo tràn TIMER 1 Đợc đặt bởi phần cứng, khi
tràn đợc xóa bằng phần mềm, hay phần cững khi bộ
xử lý chỉ đến chơng trình phục vụ ngắt
TCON.6 TR1 8EH Bit điều khiển timer 1 chạy, đặt và xóa bằng phần
mềm
TCON.5 TF0 8DH Cờ báo tràn Timer 0, tơng tự nh Timer 1
TCON.4 TR0 8CH Bit điều khiển chạy cho Timer 0 đặt xóa bằng phần
mềm
TCON.3 IE1 8BH Cờ báo ngắt 1 bên ngoài
TCON.2 IT1 8AH Cờ ngắt do Timer 1
TCON.1 IE0 89H Cờ báo ngắt do Timer 0
Trang 11MSB của giá trị trong các thanh ghi timer là bit7 của THx và LBS là bit 0 của TLx Các
thanh ghi timer (TLx/THx)có thể đọc hoặc ghi bắt cứ lúc nào bằng phần mềm
timer
Chế độ 2 –chế độ 8 bit tự nạp lạichế độ 8 bit tự nạp lại
TLx hoạt động nh một timer 8 bit,trong khi đó THx vẫn giữ nguyên giá trị đợc nạp Khi số
đếm tràn từ ffH đến 00H,không những cờ timer đợc set mà giá trị trong THx động thời đợc
nạp vào TLx Việc đếm tiếp tục từ giá trị naỳ đến ffH xuống 00Hvà nạp lại CHế độ này rất
thông dụng vì sự tràn timer sảy ra trong khoảng thời gian nhất định và tuần hoàn khi đã
khởi động TMOD và THx
Chế độ 3 –chế độ 8 bit tự nạp lạichế độ tách timer
Timer 0 tách làm 2 titmer 8 bit (TL0&TH0) ,TL0 có cờ báo tràn là TF0 và TH0 có cờ báo
tràn là TF1
Timer 1 ngng ở chế độ 3 , nhng có thể đợc khởi động bằng cách chuyển sang chế độ khác
Giới hạn duy nhất là cờ báo tràn TF1 không còn bị tác động khi timer 1 bị tràn vì nó đẫ đợc
nối tới TH0
TFxTLx THx
(5 bit) (8 bit)
TFxTLx THx
(8 bit) (8 bit)
TFxTLx THx
(5 bit) (8 bit)
Trang 126 Hoạt động port nối tiếp
Bit ký hiệu địa chỉ Mô tả
Trang 13độ 2 và 3 ,RI sẽ không bị tác động Nếu bit thứ 9 thu đợc bằng 0-cho phép thu (đặt bằng 1)
-bit 8 phát bit thứ 9 đợc phát các chế độ 2 và 3 -bit 8 thu bit thứ 9
-cờ ngắt phát ,đặt lên 1 khi kết thúc phát -cờ ngắt thu ,đặt lên 1 khi kết thúc nhận
Bảng 2.7:Tóm tắt thanh ghi chế độ port nối tiếp SCON
Các chế độ hoạt động của PORT nối tiếp
Port nối tiếp có 4 chế độ hoạt động :
đồng hồ số hiển thị bằng 8 led 7 đoạn
I Các thiết bị sử dụng trong mạch :
Mạch đồng hồ số hiển thị ngày và giờ bằng 8 led 7 thanh thực chất là 1 mạch
điện chia và hiển thị thời gian bằng led 7 đoạn từ xung nhịp thạch anh ngày nay
Trang 14-được sử dụng rất rộng rãi trong thực tế.ở mạch này chúng ta sử dụng led 7 thanhkép gồm 4 led đơn gắn trên cùng một con led gọi là MPX4-CA để hiển thị Nguyên lý hiển thị quét led:đa điện áp vào từng led một rồi đa dữ liệu ra các thanh dữ liệu,tất cả các thanh hiển thị của led đều nối chung trên bus dữ liệu
7 bit,muốn sáng led nào thì đa dữ liệu ra bus đồng thời cấp nguồn riêng cho katot cua led đó,ở mạch này hiển thị bằng 8 led 7 đoạn,để điều khiển cho 8 led 7 đoạn, ta sử dụng 8 đờng dây điều khiển để cấp nguồn cho các led và 8
đờng dây dữ liệu chung cho tất cả các led( 7 đờng nếu không cần dấu chấm) Việc hiển thị đợc thực hiện bằng cách lần lợt cấp nguồn cho từng led
và đa số liệu tơng ứng của led đó ra 8 đờng dây dữ liệu Nh vậy thực chất thì tại 1 thời điểm chỉ có 1 led hoạt động, còn các led khác không hoạt động vì không đợc cấp nguồn Tuy nhiên do đặc tính lu ảnh trên võng mạc của mắt ngời mà ta nhìn thấy tất cả các led đang hoạt động.
Ngoài các linh kiện trên, ta còn dùng tới 4 nút nhấn,nguồn pin dự phòng, các
Trang 16-Kiểm tra phím MODE
Kiểm tra phím menu Bấm?
Khởi tạo cho các timer(Timer 0 cho tạo trễ, timer 1 cho đếm, cho phép ngắt bằng timer 1)
chỉnh sửagiờ phútgiây
chỉnh sửangày thángnăm
Trang 17void set_reg (void);
unsigned char date_mon (unsigned char month, unsigned char year ); void delay_ms (unsigned int time);
void clear (void);
void quet_gio (void);
void quet_phut (void);
void quet_giay (void);
void gio_phut_giay (void);
void quet_ngay (void);
void quet_thang (void);
void quet_nam (void);
void ngay_thang_nam (void);
void scan_mode (void);
void dat_gio (void);
void dat_phut (void);
void dat_giay(void);
void dat_ngay (void);
void dat_thang (void);
void dat_nam (void);
void scan_vitri (void);
void up_date (void);
void up_time (void);
Trang 19case 3: date_m = 31 ; break;
case 5: date_m = 31 ; break;
case 7: date_m = 31 ; break;
case 8: date_m = 31 ; break;
case 10: date_m = 31 ; break;
case 12: date_m = 31 ; break;
case 4: date_m = 30 ; break;
case 6: date_m = 30 ; break;
case 9: date_m = 30 ; break;
case 11: date_m = 30 ; break;
Trang 24if (ngay >(date_mon (thang, nam)))
{ ngay=1; thang = thang +1;
Trang 25Từ ứng dụng lập trỡnh cho đồng hồ số cùng với sự phát triển trong xã hội mà đồng hồ
số ngày càng có mặt ở khắp mọi nơi,đi đâu ta cũng sử dụng đợc ứng dụng của nó,từ
đồng hồ cá nhân đến sử dụng trong gia đình,và trên các phơng tiện đi lại,đến cả các bảng điện tử hiển thị ngoài trời … các bộ vi điều khiển, ở đâu cũng thấy đồng hồ,nó thật cần thiêt cho xã hội hiên đại đang phát triển và tận dụng thời gian.
Qua một quà trình hoc vi điều khiển do thầy Nguyễn Anh Dũng giảng dậy chúng em
sử dụng ứng dụng vi điều khiển để thiết kế đồng hồ điện tử song bên cạnh đó không tránh khỏi thiếu sót.Chúng em rất mong nhận đợc sự góp ý của thầy cô cùng các bạn
để đồ án cua chúng em đợc hoàn thiện hơn.
Chúng em xin chân thành cảm ơn.