thiết kế ổ cắm hẹn giờ dùng vi xử lý 8951
Trang 1Cuối cùng em xin cảm ơn toàn thể các thành viên lớp 099011A đã tận tình chia sẽ giúp đỡ tôi trong suốt thời gian thực hiện đề tài
Sinh viên thực hiện Bùi Thanh Thuận
Trang 2Chương 1: Dẫn nhập
1.1 Lý do chọn đề tài:
Ngày nay kỹ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật
và trong dân dụng.Các bộ vi điều khiển có khả năng xử lý nhiều hoạt động phức tạp
mà chỉ cần một chip vi mạch nhỏ ,nó đã thay thế các tủ điều khiển lớn và phức tạp bằng những mạch điện gọn nhẹ ,dễ dàng thao tác và sử dụng
Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà còn góp phần to lớn vào việc phát triển thông tin Chính vì những lý do trên ,việc khảo sát,tìm hiểu vi điều khiển là điều mà các sinh viên ngành điện và đặc biệt là sinh viên chuyên ngành điện-điện tử hết sức quan tâm Đó chính là một nhu cầu cần thiết và cấp bách đối với bản thân em nói riêng và mỗi bạn sinh viên nói chung,đề tài này đươc thực hiện nhằm đáp ứng yêu cầu đó
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử dụng được lại là một điểu rất phức tạp Phân công việc xử lý chính vẫn phụ thuộc vào con người ,đó chính là chương trình Nếu không có sự can thiệp tham gia của con người thì hệ thống vi điều khiển cũng chỉ là những “cái xác không hồn”
Vậy làm thế nào để thổi” hồn” vào những cái xác đó?cách thức thiết kế xây dựng phần cứng như thế nào? thủ thuật lập trình để điều khiển phần cứng đó ra sao?
Em quyết định chọn đề tài thiết kế ổ cắm hẹn giờ dùng vi xử lý 8951 để tìm ra câu trả lời cho những câu hỏi trên
1.2 giới hạn đề tài
Đề tài sử dụng các IC số và các họ vi xử lý 89 và PIC
Giao tiếp quang dùng opto triac MOC 3020 tải AC
Hiển thị trên 4 led 7 đoạn,
2 led tương ứng với mỗi ổ cắm
4 nút nhấn
Tối đa 99 phút đếm xuống
Dùng real time
Trang 32.1 Giới thiệu linh kiện sử dụng trong mạch
Chức năng chính : là thành phần điều khiển trung tâm của mạch
Các đặc điểm của 8951 được tóm tắt như sau :
8 KB EPROM bên trong
128 Byte RAM nội
4 Port xuất /nhập I/O 8 bit
Giao tiếp nối tiếp
Trang 4Sơ đồ khối
Trang 5Chức năng các chân của 8951:
8951 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ỉ
a.Các Port:
Port 0 :
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
Trang 6nhậ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
Port 3:
- 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: Bit
Tên Chức năng chuyển đổi
P3.0 RXT Ngõ vào dữ liệu nối tiếp
P3.1 TXD Ngõ xuất dữ liệu nối tiếp
P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
INT0\
INT1\
T0 T1 WR\
Ngõ tín hiệu PSEN (Program store enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phé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
Ngõ tín hiệu điều khiển 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
Ngõ tín hiệu 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
Trang 7nhấ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
Các ngõ vào bộ dao động 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
Chân 40 (Vcc) được nối lên nguồn 5V
Chức năng chi tiết vi điều khiển 8951
Port P3.0 ,p3.1, p3.2, p3.3 kết nối với 4 nút nhấn lần lược tương ứng MODE,UP,DOWN và ENTER,nhằm tiếp nhận thông tin từ 4 nút nhấn này
Port p1.0, p1.1,p1.2,p1.3 kết nối với 4 ngõ vào ic giải mã 74247, để gửi mã số cho ic giải mã
Port p0.2,p0.3,p0.4,p0.5 kết nối với 4 transistor để điều khiển quét led
Port p2.0,p2.1 điều khiển kích dẫn optotriac MOC3020
Trang 8+ Chân 3 ( Chân điện áp đầu ra) : Chân này cho chúng ta lấy điện áp đầu ra ổn định 5V Đảm bảo đầu ra ổn định luôn nằm trong giải từ (4.75V đến 5.25V)
* Đảm bảo thông số : Vi - V0 > 3V Thông số này phải luôn đảm bảo khi cấp nguồn cho 7805 Tức là điện áp cấp vào cho 7805 phải nằm trong 8V đến 40V Nếu dưới 8V thì mạch ổn áp không còn tác dụng Thông thường người ta không bao giờ cấp nguồn 8V vào cả mà người ta phải cấp nguồn lớn hơn ít nhất là gấp đôi nguồn đầu ra để tránh trường hợp sụt áp đầu vào sinh ra nguồn đầu ra không ổn định trong thời gian ngắn
* Đảm bảo tản nhiệt tốt cho 7805 khi chạy với tải Khi công suất tăng lên thì do 7805
là linh kiện bán dẫn công suất nên rất nóng khi tải lớn Để tránh hỏng linh kiện và cho linh kiện hoạt động trong nhiệt độ bình thường thì cần phải tản nhiệt tốt
Led 7 đoạn (anode chung)
Chức năng hiện thị
Cấu tạo:
Trang 9đơn giản LED 7 được cấu tạo từ các LED đơn sắp xếp theo các thanh nét để có thể iểu diễn các chữ số hoặc các kí tự đơn giản như từ số 0 đến 9 và A đến F LED 7 thanh dùng để hiện số thì rất đẹp và dễ nhìn Tùy vào kích thước của số và kí tự mà mỗi thanh được cấu tạo bởi một hay nhiều LED đơn Các LED đơn đó được ghép và được đặt tên bằng các chữ cái a g và có một dấu chấm dot ( dấu chấm này có thể sáng và tắt tùy theo yêu cầu) được cấu tạo bởi 1 LED đơn
Cấu tạo của LED chỉ gồm các LED đơn được xếp lại với nhau thành hình như trên hình vẽ Các LED đơn này chỉ chung nhau Anot hoặc Katot và riêng nhau các chân còn lại Anot hoặc Katot
Để ghép nối với LED7 có thể có nhiều cách, nhưng phải đảm bảo sao có thể điều khiển tắt mở riêng từng LED đơn trong đó để tạo ra các số và các ký tự mong muốn
Ic 74247
Chức năng giải mã BCD ra mã Led 7 đoạn
Sơ đồ chân:
IC 74247 là IC giải mã cho led 7 đoạn Anode chung
Chân TEST(3) là chân dùng để thử các ngõ ra xem IC có còn dùng được hay không Các chân P0-P3 là các mã hóa từ mã BCD sang mã led 7 đoạn
Chân RBI và RBO là 2 chân dùng để xóa số 0 vô nghĩa
Trang 10- Giao tiếp I2C
- Có thể xuất ra xung vuông với các tần số 1Hz, 4kHz, 8 kHz, 32 kHz
- Hoạt động với khoảng nhiệt độ : -40 độ C - 85 độ C
Trang 11- VBAT : được đề nghị sử dụng pin lithium 3V Theo nhà sản xuất, 1 pin lithium 3V 48mAhr hoặc hơn sẽ giữ được DS1307 hoạt động hơn 10 năm trong điều kiện 25ºC
- SCL (Serial Clock Input) : ng vào xung clock để đồng bộ dữ liệu truyền nhận
- SDA ( Serial Data Input/Output): đường truyền nhận dữ liệu
- SQW/OUT (Square Wave/ Output Driver) : khi được kích hoạt, chân SQW/OUT
xuất
ra xung vuông với các tần số 1Hz, 4kHz, 8kHz và 32kHz
- X1, X2 (Crystal): được kết nối với thạch anh 32.768kHz
Trang 12Transistor a1015
Transistor A1015 là transistor thuộc loại transistor PNP có chức năng điều khiển kích dẫn quét led
Thứ tự các chân từ trái qua phải: E C B
A1015 có Uc cực đại = -50V dòng Ic cực đại = -150mA
Hệ số khuếch đại hFE của transistor A1015 trong khoảng 70 đến 400
Trang 13Chương 3: Thiết kế và mô phỏng (hay thi công)
3.1 Thiết kế phần cứng
3.1.1 Sơ đồ khối hệ thống (Chức năng từng khối)
SƠ ĐỒ KHỐI
GIỚI THIỆU NHIỆM VỤ CHỨC NĂNG TỪNG KHỐI
Nhiệm vụ và chức năng khối vi xử lý: xử lý điều khiển trung tâm
Nhiệm vụ và chức năng khối thời gian thực :cài đặt thời gian thực
Nhiệm vụ và chức năng khối giải mã : khi nhận mã từ khối vi xử lý, khối giải
mã sẽ làm nhiệm vụ giải mã BCD cung cấp cho led hiển thị
Nhiệm vụ và chức năng khối hiển thị : hiển thị từ 0 đến 99 tương ứng với
thời gian hẹn
Nhiệm vụ và chức năng khối nguồn : chuyển đổi từ nguồn xoay chiều 220v
thành nguồn 1 chiều cung cấp cho mạch hoạt động
Nhiệm vụ và chức năng khối nút nhấn : cài đặt thời gian
Nhiệm vụ và chức năng khối ổ cắm : cấp nguồn cho tải AC
KHỐI NGUỒN
KHỐI THỜI
GIAN THỰC
Trang 143.1.2 Thiết kế chi tiết từng khối
KHỐI VI XỬ LÝ
1 Yêu cầu của khối:Có thể lập trình được,gửi mã cho khối giải mã,điều
khiển quét led,điều khiển kích dẫn optotriac MOC 3020 theo thời gian thực,giao tiếp nút nhấn
Để vi xử lý 8951 hoạt động phải có các yêu cầu sau:
Chân 40 (Vcc) được nối lên nguồn 5V
Chân reset kết nối mạch auto reset tích cực mức cao
Chân EA nối với nguồn 5v để 8951 thực hiện chương trình từ bộ nhớ rom nội
Để chạy các câu lệnh trong ic vi điều khiển, ta cần tạo ra xung nhịp Tần
số xung nhịp phụ thuộc vào thạch anh gắn trên chân 18, 19 Với thạch anh 12MHz, ta sẽ có xung nhịp 1MHz, như vậy chu kỳ lệnh sẽ là 1us
Để tăng độ ổn định tần số, ta cần dùng thêm 2 tụ nhỏ C6, C7 (33pF x2),
tụ bù nhiệt ổn tần
Trang 15
Mạch nguyên lý kết nối 8951 trong khối vi xử lý
khối hiển thị
1 yêu cầu của khối : Hiển thị được giá trị thời gian hẹn giờ ,ở đây là thời gian
cho 2 ổ cắm mỗi ổ cắm hiển thị giá trị tối đa là 99 phút trên 2 led 7 đoạn, nên 2
ổ sẽ cần 4 led 7 đoạn
2 Tính toán thiết kế
Điều khiển led bằng phương pháp trực tiếp thì 4 led bảy đoạn cần 32 chân của
vi xử lý,trong khi đó nếu dùng phương pháp quét led,kết hợp với mạch giải mã BCD sang led 7 đoạn ta chỉ sử dụng 8 chân của vi điều khiển,trong đó 4 chân giao tiếp với khối giải mã,4 chân còn lại điều khiển quét 4 led 7 đoạn.Vì vậy để tiết kiệm số chân giao tiếp của vi xử lý với khối hiển thị ta dùng phương pháp quét lét
Vì các port của vi xử lý hút dòng lớn nhưng đẩy dòng thì nhỏ nên thường dùng led 7 đoạn Anode chung để giao tiếp
Sử dụng transis tor PNP để điều khiển quét led
Trang 16Điện trở hạn dòng mỗi led tính theo công thức :
𝑅 =𝑉𝑐𝑐 − 𝑉𝑙𝑒𝑑 − 𝑉𝑜𝑙
𝐼𝐿𝐸𝐷_𝑄𝑈𝐸𝑇trong đó R : điện trở hạn dòng của led
Vcc : điện áp cúng cấp cho led =5v
Vled :điện áp định mức của mỗi led đơn=1,8v
Vol : điện áp ngỏ ra mức thấp của vi xử lý = 0,45v
ILED :dòng điện tức thời của led (mỗi led=5mA )
20𝑚𝐴 =137,5(Ω)
Trang 20Để giới hạn cho mạch chỉ đếm lên 15 và chỉ đếm xuống 0 ta làm như sau: như ta đã đọc datasheet của 74193 thì thấy nó đếm lên hoặc đếm xuống khi chân up hoặc chân
DN có sự thay đổi từ LOW to HIGH Vậy ta muốn nó nhận biết được đến trạng thái
số 15 ( 1111 ) thì nó sẽ không đếm được nữa thì ta làm sao cho chân up lúc này luôn
ở trạng thái HIGH để làm được điều này ta thiết kế như sau vì trạng thái 15 có mã nhị phân là 1111 nên ta lấy ở 4 chân ngõ ra của 74193 nối vào 4 chân ngõ vào của 2 cổng AND rồi 2 ngõ ra của 2 AND này ta lại làm 2 chân vào của 1 cổng AND khác
để khi 74193 đếm đến trạng thái 1111 các cổng AND này sẽ nhận biết và cho ra luôn
ở mức HIGH Từ ngõ ra này ta nối vào cổng OR vì ở trạng thái HIGH nên bất chấp ngõ vào còn lại ( chính là ngõ ra của khối cấp xung đơn ổn ) là HIGH hay LOW thì ngõ ra của cổng OR cấp vào chân UP sẽ luôn ở mức HIGH như vậy ở trạng thái này
74193 sẽ không đếm được nữa
Tương tự khi 74193 đếm xuống tới 0 (0000) ta muốn nó không đếm được nữa ta thiết kế 4 ngõ vào của 2 cổng OR nối với 4 ngõ ra của 74193 khi 74193 đếm ở trạng
A B
C D
A C
A1 10 S1 9A2
8 S2 6 A3
3 S3 2 A4
1 S4 15 B1 11 B2 7 B3 4 B4 16 C0
13 C4 14
U3
74LS83
D0 15 Q0 3D1
1 Q1 2 D2
10 Q2 6 D3
9 Q3 7 UP
5 TCU 12 DN
4 TCD 13 PL 11 MR 14
U4
74193
R 4
U6
555
1 2 3
U10:A
7400
4 5 6
U2:A
7408
4 5 6
U2:B
7408
9 10 8
Trang 21thái 0000 thì 2 ngõ ra của 2 cổng OR này sẽ cho ra ở mức thấp ta cho 2 ngõ ra này tiếp tục vào 1 cổng OR nữa để ngõ ra của nó luôn ở mức thấp , nhưng chú ý ta cần chân DN khi ở trạng thái này luôn ở mức cao để nó không đếm được nữa nên ta cần nối vào cổng đảo, như vậy ngõ ra của cổng đảo ở trạng thái này sẽ ở mức cao , cũng như ở phần trên ta nối chân này vào 1 chân vào của cổng OR để chân cấp xung từ khối câp xung đơn ổn cho 74193 dù ở trạng thái nào thì chân DN lúc này cũng sẽ luôn ở mức HIGH
D B
A2 8
A3 3
A4 1
B1 11 B2 7 B3 4 B4 16
D1 1
D2 10
U4
74193
R 4
U7
555
4 5 6
U10:C
7400
13 12 11
LT 3 BI 4 LE/STB 5
Trang 22SƠ ĐỒ CHO KHỐI ĐẾM
A B
C D
U4
74193
R 4
U6
555
R 4
U7
555
1 2
3
U8:A
7432
4 5
3
U10:A
7400
4 5
6
U10:B
7400
10 9
8
U10:C
7400
13 12
3
U2:A
7408
4 5
6
U2:B
7408
9 10
Trang 23a.Chức năng và nhiệm vụ:
Chức năng: Giải mã tín hiệu BCD cho hiển thị ra led 7 đoạn
Nhiệm vụ: Nhận tín hiệu ra từ khối đếm với mã BCD, sau đó giải mã cho hiển thị ra led 7 đoạn
b.Tính toán và lựa chọn phương án:
Ý tưởng ban đầu: Dùng hai con IC giải mã IC74LS247 để giải mã BCD
hiển thị ra led 7 đoạn,nhưng vì lý do kinh tế em sử dụng 1 IC CD4511 để giải mã led 7 đoạn hiển thị cho hàng đơn vị, còn dùng transistor C1815 để
kích cho led 7 đoạn hiển thị hàng chục
Lựa chọn phương án:Vì khối đếm ( IC 74LS193) cho ra số nhị phân 4 bit
Với đặc tính của IC CD4511 không thể chuyển trực tiếp ra để LED 7 đoạn hiển thị được Nên cần dùng 1 mạch cộng trung gian để giúp IC CD4511giải
mã BCD ra LED 7 đoạn hiện thị Và em chọn IC 74LS83 làm IC cộng đồng thời em thấy nếu dùng 2 IC CD4511 là không cần thiết , nên em chỉ sử dụng
1 con IC CD4511 làm nhiệm vụ giải mã con led 7 đoạn đếm hàng đơn vị còn hàng chục ta chỉ cần hiển thị số 1 nên em dùng C1815 như 1 cái khóa điện tử hay còn gọi là chế độ đóng cắt bão hòa mắc theo CE được điều khiển bởi ngõ ra S4 của IC 7483, khi nhận xung transistor đóng thì led sẽ hiển thị số 1 còn khi cắt led không hiển thị ,như vậy em còn xóa được số 0 vô nghĩa nữa.chú ý CD4511giải mã led 7đoạn cathode chung cùng transistor C1815
dùng anode chung
Trang 24Đây là IC thuộc họ CMOS có chức năng giải mã BCD sang Led 7 đoạn có
cathode chung
Chức năng của C1815
Làm khóa đóng cắt bão hòa ta thiết kế sao cho khi đóng và ngắt đều nằm trong vùng bão hòa và sơ đồ này luôn dùng theo kiểu mắc E chung khi đóng thì led hiển thị còn khi ngắt thì led tắt Phương trình của nó
là: Itải(Ic)=(Vcc-Vce)/Rtải
-khi ở ngắt bão hoà, lúc này dòng qua trans (dòng tải Ic) xấp xỉ bằng 0,
áp rơi trên trans (VCE) xấp xỉ bằng Vcc (hay áp rơi trên tải xấp xỉ bằng 0)
- khi ở đóng (thông) bão hoà, lúc này dòng qua trans (dòng tải Ic) xấp xỉ