Tải bản đầy đủ (.docx) (41 trang)

Mạch phát nhạc đơn âm sử dụng 8051 kèm file mô phỏng code

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (818.98 KB, 41 trang )

Đồ án vi xử lý Mạch phát nhạc đơn âm
LỜI NÓI ĐÂU
Ngày nay cùng với sự phát triển của nhân loại. Khoa học kĩ thuật phát triển rất
mạnh. Đánh dấu sự phát triển của một nền văn minh mới, nến văn minh của khoa học
trí tuệ nhân tạo ra đời và rất nhiều sản phẩm của công nghệ này được ứng dụng vào
thực tế cuộc sống hàng ngày. ngành điện tử đã tạo ra nhiều bước đột phá mới mẽ cho
các ngành kinh tế khác mà còn đảm bảo được yêu cầu của người dùng cả về chất
lượng và dịch vụ. Vì vậy, kiến thức về kỹ thuật số, vi điều khiển là không thể thiếu đối
với mỗi sinh viên, nhất là sinh viên ngành điện tử. Để đáp ứng nhóm em chọn đề tài “
Mạch phát nhạc đơn âm “ cho môn học.
Sau một thời gian tìm hiểu các tài liệu với đề tài đã chọn đã được hoàn thành với
nội dung gồm 3 chương như sau:
CHƯƠNG 1 : CÁC KIẾN THỨC CƠ BẢN VỀ ÂM THANH NỐT NHẠC
VÀ GIỚI THIỆU CÁC LINH KIỆN CƠ BẢN
CHƯƠNG 2 :GIỚI THIỆU VỀ IC 89C51
CHƯƠNG 3 :MẠCH PHÁT NHẠC ĐƠN ÂM
Em xin được gửi lời cảm ơn chân thành tới thầy Trần Trung Tín, người đã tận tình
hướng dẫn và giúp đỡ em rất nhiều trong thời gian em thực hiện đề tài này. Mặc dù đã
cố gằng rất nhiều trong thời gian hoàn thành đề tài này, nhưng do thời gian và trình độ
có hạn nên đề tài này chắc chắn sẽ không thể tránh khỏi những thiếu sót. Rất mong
nhận được những ý kiến đóng góp của thầy cô và bạn bè để đề tài này được hoàn
thiện hơn.
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 1
Đồ án vi xử lý Mạch phát nhạc đơn âm
MỤC LỤC
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 2
Đồ án vi xử lý Mạch phát nhạc đơn âm
DANH MỤC HÌNH
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 3
Đồ án vi xử lý Mạch phát nhạc đơn âm
CÁC KIẾN THỨC CƠ BẢN VỀ ÂM THANH NỐT NHẠC VÀ


GIỚI THIỆU CÁC LINH KIỆN CƠ BẢN
1.1 Khái niệm chung về âm thanh
Âm thanh là do vật thể rung động, phát ra tiếng và lan truyền đi trong không
khí.
1.2 Nguồn gốc âm thanh
Lấy tay bật vào dây đàn, dây đàn rung lên và phát ra tiếng. Tiếng đàn ngân dài,
cho đến khi dây đàn hết rung thì âm thanh cũng tắt. Nếu ta gõ trống, mặt trống rung
lên và cũng phát ra tiếng. Lấy tay sờ vào màng một cái loa đang kêu thì tay ta cảm
thấy màng loa đang rung động.
Như vậy ta có thể kết luận: Âm thanh là do vật thể rung động, phát ra tiếng và
lan truyền đi trong không khí. Sở dĩ tai ta nghe được âm thanh là nhờ ở màng nhĩ.
Màng nhĩ nối liền với hệ thống thần kinh.
Không khí là môi trường truyền dẫn âm thanh.
Âm thanh cũng truyền lan được trong các chất khí, chất lỏng, chất rắn, nhng
không truyền lan được trong khoảng chân không. Một số chất truyền dẫn âm rất kém.
Các chất dẫn âm kém thờng là loại mềm, xếp như bông, dạ, cỏ khô… gọi là chất hút
âm. Các chất này được dùng lót tường các rạp hát, các phòng cách âm … để hút âm,
giảm tiếng vang.
Vận tốc truyền lan của âm thanh phụ thuộc vào môi trường truyền âm. Thí dụ
trong không khí là 340m/s, trong nước là 1.480m/s, trong sắt là 5.000m/s. Trong hành
trình truyền lan, nếu gặp phải các vật chướng ngại như tường, núi đá, hàng cây … thì
phần lớn năng lượng của âm thanh sẽ bị phản xạ trở lại, một phần nhỏ tiếp tục truyền
lan về phía trước. Còn một phần nhỏ nữa của năng lượng âm thanh bị cọ sát với vật
chướng ngại, biến thành nhiệt năng tiêu tán đi.
1.3 Đặc tính của âm thanh
Tần số:
Khi ta gẩy nốt mi của đàn thì dây sẽ rung 330 lần trong một giây. Ta gọi tần số
của âm mi là 330 Héc (Hz).Tần số biểu thị độ cao của âm thanh: tiếng trầm có tần số
thấp tiếng bổng có tần số cao. Tai người có thể nghe thấy được các tần số thấp tới
16Hz và tần số cao tới 20.000Hz.Dải tần số 16Hz đến 20.000Hz gọi là siêu âm. Dòng

điện có tần số trong khoảng 16Hz đến 20.000 Hz gọi là dòng điện âm tần.
Trong dải âm tần, người ta chia ra:
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 4
Đồ án vi xử lý Mạch phát nhạc đơn âm
• Tiếng trầm từ 16 đến 300Hz,
• Tiếng vừa (tiếng trung) từ 300 đến 3000Hz,
• Tiếng bổng (hay tiếng thanh) 3000Hz đến 20.000Hz.
• Tiếng nói của người thường có tần số từ 80Hz đến 8000Hz.
Các nốt nhạc ở bát độ thứ ba có tần số: đồ: 262 Hz, rê: 294 Hz, mi: 300 Hz,
pha: 349 Hz, son: 392 Hz, la: 440Hz, si: 494 Hz.
1.4 Loa
Hình 1.1 Hình dáng bên ngoài của loa Hình 1.2 Cấu tạo bên trong của loa
Loa là dụng cụ điện thanh có tác dụng biến đổi năng lượng điện âm tần thành
năng lượng âm thanh.
Loa hoạt động dựa trên nguyên tắc một cuộn dây đặt trong một từ trường mạnh
của nam châm. Khi có dòng điện âm tần chạy qua, cuộn dây sẽ dao động. Do cuộn dây
được nối với màng loa nên các dao động này được truyền ra không khí, tác động vào
người nghe.
Dù thuộc thể loại nào thì loa cũng phải có một bộ phận quan trọng gọi là màng
rung (hoặc màng loa). Màng rung là nơi âm thanh được phát ra để đến với tai người
nghe. Tuỳ từng loại loa khác nhau mà nguyên lý làm rung màng rung là khác nhau.
Đa số các loa màng rung được gắn với một cuộn dây, cuộn dây này được định vị trong
khe hẹp có từ trường mạnh được sinh ra giữa hai cực của một nam châm vĩnh cửu. Khi
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 5
Đồ án vi xử lý Mạch phát nhạc đơn âm
cho dòng điện tín hiệu đi qua cuộn dây thì cuộn dây xuất hiện lực từ làm rung nó, sự
rung động của cuộn dây sẽ làm chuyển động màng loa.
1.5 Điện trở
Điện trở là một linh kiện điện tử thụ động trong mạch điện, được ký hiệu với
chữ R .Nó là đại lượng vật lý đặc trưng cho tính chất cản trở dòng điện của một vật

thể dẫn điện
Điện trở có 2 loại chính :
Điện trở thường : Điện trở thường là các điện trở có công xuất nhỏ từ 0,125W
đến 0,5W
Điện trở công xuất : Là các điện trở có công xuất lớn hơn từ 1W, 2W, 5W, 10W.
Hình 1.3 Điện trở thường
Cách đọc giá trị các điện trở
Đối với các điện trở có giá trị được định nghĩa theo vạch màu thì chúng ta có 3
loại điện trở: Điện trở 4 vạch màu,điện trở 5 vạch màu và 6 vạch màu. Cách đọc điện
trở màu đều dựa trên các giá trị màu sắc được ghi trên điện trở 1 cách tuần tự:
Đối với điện trở 4 vạch màu
- Vạch màu thứ nhất: Chỉ giá trị hàng chục trong giá trị điện trở
- Vạch màu thứ hai: Chỉ giá trị hàng đơn vị trong giá trị điện trở
- Vạch màu thứ ba: Chỉ hệ số nhân với giá trị số mũ của 10 dùng nhân với giá
trị điện trở
- Vạch màu thứ 4: Chỉ giá trị sai số của điện trở
Đối với điện trở 5 vạch màu
- Vạch màu thứ nhất: Chỉ giá trị hàng trăm trong giá trị điện trở
- Vạch màu thứ hai: Chỉ giá trị hàng chục trong giá trị điện trở
- Vạch màu thứ ba: Chỉ giá trị hàng đơn vị trong giá trị điện trở
- Vạch màu thứ 4: Chỉ hệ số nhân với giá trị số mũ của 10 dùng nhân với giá trị
điện trở
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 6
Đồ án vi xử lý Mạch phát nhạc đơn âm
- Vạch màu thứ 5: Chỉ giá trị sai số của điện trở
Lưu ý: Để tránh lẫn lộn trong khi đọc giá trị của các điện trở, đối với các điện
trở có tổng số vòng màu từ 5 trở xuống thì có thể không bị nhầm lẫn vì vị trí bị trống
không có vòng màu sẽ được đặt về phía tay phải trước khi đọc giá trị. Còn đối với các
điện trở có độ chính xác cao và có thêm tham số thay đổi theo nhiệt độ thì vòng màu
tham số nhiệt sẽ được nhìn thấy có chiều rộng lớn hơn và phải được xếp về bên tay

phải trước khi đọc giá trị.
1.6 Tụ điện:
Là một linh kiện điện tử thụ động tạo bởi hai bề mặt dẫn điện được ngăn cách bởi
chất điện môi.khi có chênh lệch điện thế tại hai bề mặt tại đây sẽ xuất hiện điên tích
cùng cường độ nhưng trái dấu
Sự tích tụ của điện tích trên bề mặt tạo ra khả năng tích trữ năng lượng điện
trường của tụ điện
Cấu tạo chung gồm hai bản cực làm bằng kim loại đặt song song và cách điện bằng
một lớp điện môi
Hình 1.4 Tụ gốm
Tụ gốm:
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 7
Đồ án vi xử lý Mạch phát nhạc đơn âm
_Cấu tạo :gồm một miếng gốm nhỏ hình trụ hoặc có hình giống khuy áo hai
mặt được tráng bạc cách điện với nhau tạo thành hai má của tụ điện
_Đặc tính :kích thước nhỏ điện áp làm việc cao ,tụ gốm kích thước nhỏ dùng
trong các mạch thông thường hiện nay có điện áp làm việc cực đại cho phép là 50V.
_Cách đọc tụ gốm, tụ giấy : tụ giấy và tụ gốm (hình dẹp) trị số được ký hiệu
trên thanh bằng ba số .
VD :103J,223K,…Trong đó ba số đầu tiên ký hiệu cho giá trị ,chữ J và K ở
cuối là kí hiệu cho sai số.Hai số đầu giữ nguyên, số thứ 3 tương ứng với số con số 0
thêm vào sau và lấy đơn vị là “Pico”
• Tụ hóa:
Hình 1.5 Tụ hóa
_Cấu tạo :các điện cực làm bằng nhôm tinh khiết độ dày của điện cực khoảng
0,075: 0,13mm .giữa hai bản cực là chất điện phân có nhiệm vụ tiếp tục tạo lớp nhôm
oxit trong quá trình làm việc
_Đặc tính :tụ hóa có trị số điện dung rất lớn so với các tụ khác .chất điện môi
dùng trong tụ hóa thường là hợp chất hóa học như ôxit nhôm .Đặc điểm của chất điện
môi này là có tính chất dẫn điện không đổi ,nghĩa là khi đặt điện áp một chiều lên tụ

thì tụ có một chiều điện trở rất cao và một chiều điện trở rất nhỏ do đó phải phân cực
+ và cực – .
1.7 Thạch anh:
_Cấu tạo: là một loại linh kiện lằm bằng tinh thể đá thạch anh được mài phẳng
và chính xác.
_Đặc tính :linh kiện thạch anh àm việc dựa trên hiệu ứng áp điện.Hiệu ứng này
có tính thuận nghịch.Khi áp một điện áp vào 2 mặt của thạch anh, nó sẽ bị biến
dạng.Ngược lại ,khi tạo sức ép vào 2 bề mặt đó,nó sẽ phát ra điện áp.Một đặc tính
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 8
Đồ án vi xử lý Mạch phát nhạc đơn âm
quan trọng của tinh thể thạch anh là nếu tác động bằng các dạng cơ học đến chúng (âm
thanh, sóng nước ) vào tinh thể thạch anh thì chúng sẽ tạo ra một điện áp dao động có
tần số tương đương với mức độ tác động vào chúng.
Hình 1.6 thạch anh điện tử
1.8 IC LM 386N
IC LM 386 IC là bộ khuyếch đại công suất được thiết kế áp dụng cho điện áp
thấp.
Hình 1.7 IC LM386
1.8.1 Sơ đồ chân của LM386
Hình 1.8 Sơ đồ chân của LM386
Chức năng các chân như sau:
• Chân 1: Gain
• Chân 2: - Input
• Chân 3: +Input
• Chân 4: GND
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 9
Đồ án vi xử lý Mạch phát nhạc đơn âm
• Chân 5: Output
• Chân 6: VCC
• Chân 7: Bypass

• Chân 8: Gain
1.8.2 Cấu tạo bên trong
Hình 1.9 Cấu tạo bên trongcủa LM386
1.8.3 Sơ đồ nguyên lí
Hình 1.10 Sơ đồ nguyên lí của LM386
1.8.4 Ứng dụng
• PM-FM radio.
• Khuếch đại cho máy nghe nhạc cassette cầm tay.
• Khuếch đại loa
• Intercom.
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 10
Đồ án vi xử lý Mạch phát nhạc đơn âm
• Dụng cụ của vô tuyến truyền hình
CHƯƠNG 2 GIỚI THIỆU VỀ IC 89C51
2.1 Giới thiệu
Vi điều khiển 8051 được Intel cho ra đời vào năm 1980 thuộc vi điều khiển đầu
tiên của họ MCS-5. Hiện tại rất nhiều nhà sản xuất như Siemens, Advanced, Fusisu và
Philips tập trung phát triển các sản phẩm trên cơ sở 8051.
Atmel là hãng đã cho ra đời các chip 89Cxx, và sau đó cải thiện thêm, hãng cho ra
đời 89c51, 89c52….
Mỗi vi điều khiển trong họ 8051bao gồm tất cả các đặc tính chính của vi điều
khiển và cộng thêm một số đặc tính khác.
2.2 Cấu trúc bên trong của IC 89C51
2.2.1 Đặc điểm
• Có 4/8/12/20 Kbyte bộ nhớ FLASH ROM bên trong để lưu trữ chương trình. Nhờ vậy
vi điều khiển có khả năng nạp xóa chương trình bằng điện đến 10000 lần
• 4 Port xuất/nhập 8 bit
• Từ 2 đến 3 bộ định thời 16 bit
• Có khả năng giao tiếp truyền dữ liệu nối tiếp
• Có thể mở rộng không gian nhớ chương trình ngoài 64Kbyte (bộ nhớ ROM ngoại): khi

chương trình do người lập trình viết ra có dung lượng lớn hơn dung lượng bộ nhớ
ROM nội, để lưu trữ được chương trình này cần bộ nhớ ROM lớn hơn cách giải quyết
la kết nối Vi điều khiển với bộ nhớ ROM từ bên ngoài ( hay còn gọi là ROM ngoại).
Dung lượng bộ nhớ ROM ngoại lớn nhất mà Vi điều khiển có thể kết nối là 64 Kbyte.
• Có thể mở rộng không gian nhớ dữ liệu ngoài 64Kbyte (bộ nhớ RAM ngoại)
• Bộ xử lý bit (thao tác trên các bit riêng rẽ ), 210 bit có thể truy xuất đến từng bit
• Dao động bên ngoài với thạch anh<24Mhz. Thông thường, vi điều khiển 89S52 chạy
với thạch anh 12Mhz.
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 11
Đồ án vi xử lý Mạch phát nhạc đơn âm
2.2.2 Sơ đồ khối
Sơ đồ khối của IC 89c51 được mô tả như hình 1.1

Hình 2.1 Sơ đồ khối IC 89c51
2.2.3 Bộ nhớ chương trình_Bộ nhớ ROM
Bộ nhớ ROM dùng để lưu chương trình do người viết chương trình viết ra.
Chương trình là tập hợp các câu lệnh thể hiện các thuật toán để giải quyết các công
việc cụ thể, chương trình do người thiết kế viết trên máy vi tính, sau đó được đưa vào
lưu trong ROM của vi điều khiển, khi hoạt động, vi điều khiển truy xuất từng câu lệnh
trong ROM để thực hiện chương trình. ROM còn dùng để chứa số liệu các bảng, các
tham số hệ thống, các số liệu cố định của hệ thống. Trong quá trình hoạt động nội
dung ROM là cố định, không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở chế
độ xóa hoặc nạp chương trình (do các mạch điện riêng biệt thực hiện).
Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng tùy vào
chủng loại cần dùng, chẳng hạn đối với 89S51 là 8KByte, với 89S52 là 12KByte.
Bộ nhớ bên trong Vi điều khiển 89c51 là bộ nhớ Flash ROM cho phép xóa bộ
nhớ ROM bằng điện và nạp vào chương trình mới cũng bằng điện và có thể nạp xóa
nhiều lần
Bộ nhớ ROM được định địa chỉ theo từng Byte, các byte được đánh địa chỉ theo
số hex-số thập lục phân, bắt đầu từ địa chỉ 0000H, khi viết chương trình cần chú ý đến

địa chỉ lớn nhất trên ROM, chương trình được lưu sẽ bị mất khi địa chỉ lưu vượt qua
vùng này. Ví dụ: AT89S52 có 8KByte bộ nhớ ROM nội, địa chỉ lớn nhất là 1FFFH,
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 12
Đồ án vi xử lý Mạch phát nhạc đơn âm
nếu chương trình viết ra có dung lượng lớn hơn 8KByte các byte trong các địa chỉ lớn
hơn 1FFFH sẽ bị mất.
Ngoài ra Vi điều khiển còn có khả năng mở rộng bộ nhớ ROM với việc giao tiếp
với bộ nhớ ROM bên ngoài lên đến 64KByte(địa chỉ từ 0000H đến FFFFH).
2.2.4.Bộ nhớ dữ liệu_Bộ nhớ RAM
Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian
và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các
vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.
RAM nội trong Vi điều khiển được tổ chức như sau:
• Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số.
• Các bank thanh ghi có địa chỉ 00H đến 1FH .
• 210 vị trí được định địa chỉ bit.
• Các vị trí RAM bình thường .
• Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH.
Các byte RAM 8 bit của vi điều khiển được gọi là "ô nhớ", nếu các ô nhớ có chức
năng đặc biệt thường được gọi là "thanh ghi", nếu là bit thì được gọi là "bit nhớ".
2.2.5. Các bank thanh ghi
Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trong mỗi
bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặc định trong
bank 1. Có 4 bank thanh ghi và tại mỗi thời điểm chỉ có một bank thanh ghi được truy
xuất với các thanh ghi từ R0 đến R7, để thay đổi việc truy xuất các thanh ghi trên các
bank thanh ghi, người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghi
trạng thái PSW bằng các câu lệnh trong chương trình.
Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ ít hơn
và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAM khác, ngoài ra
các thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì lí do này các dữ liệu

sử dụng thường thường được người viết chương trình đưa vào lưu trong các thanh ghi
này.
Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh ghi như với các ô nhớ
bình thường khác. Ví dụ: nguời dùng có thể truy xuất đến thanh ghi R7 bằng ô nhớ
07H.
2.2.6 Vùng RAM truy xuất từng bit
Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đến từng bit,
các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số Hex. Trong đó có
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 13
Đồ án vi xử lý Mạch phát nhạc đơn âm
128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH, các bit nhớ còn lại chứa
trong nhóm thanh ghi có chức năng đặc biệt.
Mặc dù các bit nhớ và ô nhớ (byte) cùng được định bằng số Hex, tuy nhiên chúng
sẽ được nhận dạng là địa chỉ bit hay địa chỉ byte thông qua các câu lệnh tương ứng
dành cho các bit nhớ hoặc các ô nhớ này.
Ví dụ: mov 05H,#10111111B: lệnh này thiết lập giá trị cho ô nhớ có địa chỉ là 05H
JB 05H,nhan01 : lệnh này liên quan đến trạng thái của bit nhớ có địa
chỉ 05H .
2.2.7 Vùng RAM bình thường
Vùng RAM này có địa chỉ byte từ 30H đến 7FH, dùng để lưu trữ dữ liệu, được truy
xuất theo từng byte.
2.2.8 Các thanh ghi có chức năng đặc biệt
Các thanh ghi này được định địa chỉ byte, một số được định thêm địa chỉ bit, có địa
chỉ của các thanh ghi này nằm trong khoảng 80H đến FFH. Các thanh ghi đặc biệt này
này được dùng để xác lập trạng thái hoạt động cần thiết cho Vi điều khiển.
2.2.9.Tìm hiểu một số ô nhớ có chức năng đặc biệt
a. Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H
Đây là các thanh ghi kiểm tra và điều khiển mức logic của các Port, có thể
truy xuất và xác lập các thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt là P0,
P1, P2, P3 tương ứng với các Port xuất. Chẳng hạn để tất cả các chân của Port 0 lên

mức logic 1, cần làm cho các bit của thanh ghi có địa chỉ 80H lên mức 1.
b. Thanh ghi A
Thanh ghi A là thanh ghi quan trọng, dùng để lưu trữ các toán hạng và kết quả
của phép tính.
Thanh ghi A có độ dài 8 bits, có địa chỉ là E0H.
c. Thanh ghi B
Thanh ghi B ở địa chỉ F0H, được dùng với thanh ghi A để thực hiện các phép
toán số học. Khi thực hiện lệnh chia với thanh ghi A, số dư được lưu trữ ở thanh ghi B.
Ngoài ra thanh ghi B còn được dùng như một thanh ghi đệm có nhiều chức năng.
d. Con trỏ sắp xếp SP: Địa chỉ 81H
Con trỏ ngăn xếp SP là một thanh ghi có địa chỉ 81H, giá trị của nó được
tăng,giảm tự động khi thực hiện các lệnh PUSH, CALL,POP con trỏ SP dùng quản lí
và xử lí các nhóm dữ liệu liên tục.Giá trị mặc định của SP là 07H.
e.Con trỏ dữ liệu DPTR
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 14
Đồ án vi xử lý Mạch phát nhạc đơn âm
Con trỏ dữ liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển được tạo
thành từ hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa chỉ byte
83H). Hai thanh ghi DPL và DPT có thể truy xuất độc lập bởi người sử dụng. Con trỏ
dữ liệu DPTR thường được sử dụng khi truy xuất dữ liệu từ bộ nhớ ROM hoặc bộ nhớ
từ bên ngoài
2.3 Sơ đồ chân của IC 89c51

Hình 2.2 Sơ đồ chân IC 89c51
Chức năng của các chân trong 89S52:
• Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển, nguồn
điện cấp là +5V±0.5.
• Chân GND: Chân số 20 nối GND(hay nối Mass). Khi thiết kế cần sử dụng một
mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp
7805

• Port 0 (P0): Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng: Chức
năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoài vào để
xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều
khiển led đơn sáng tắt.
Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0)
còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ
nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.
• Port 1 (P1): Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm
các đường xuất/nhập, không có chức năng khác.
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 15
Đồ án vi xử lý Mạch phát nhạc đơn âm
• Port 2 (P2): Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
Chức năng xuất/nhập.
Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có dung
lượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận,
byte cao do P2 này đảm nhận.
• Port 3 (P3): Port 3 gồm 8 chân (từ chân 10 đến 17): Chức năng xuất/nhập.
Với mỗi chân có một chức năng riêng thứ hai như trong bảng sau :
Bit Tên Chức năng
P3.0 RxD Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD Ngõ xuất dữ liệu nối tiếp
P3.2 INT0 Ngõ vào ngắt cứng thứ 0
P3.3 INT1 Ngõ vào ngắt cứng thứ 1
P3.4 T0 Ngõ vào của Timer/Counter thứ 0
P3.5 T1 Ngõ vào của Timer/Counter thứ 1
P3.6 WR Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài
P1.0 T2 Ngõ vào của Timer/Counter thứ 2
P1.1 T2X Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2
• Chân RESET (RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập

trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị
ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy.
• Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 18 và 19 được sử dụng
để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với
thạch anh và các tụ để tạo nguồn xung clock ổn định.
Hình 2.3 Sơ đồ chân XTAL1 và XTAL2
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 16
Đồ án vi xử lý Mạch phát nhạc đơn âm
• Chân cho phép bộ nhớ chương trình PSEN: PSEN ( program store enable) tín
hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài. Chân
này thường được nối với chân OE (output enable) của ROM ngoài.
Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín
hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy.
Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic
không tích cực (logic 1).
• Chân ALE (chân cho phép chốt địa chỉ-chân 30): Khi Vi điều khiển truy xuất bộ
nhớ từ bên ngoài, port 0 vừa có chức năng là bus địa chỉ, vừa có chức năng là
bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ở chân ALE
dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các đường dữ
liệu khi kết nối chúng với IC chốt.
• Chân EA: Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa
vào Vi điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock
cung cấp cho các phần khác của hệ thống.
• Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội hay
ROM ngoại.
Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy từ bộ
nhớ nội.
Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy từ bộ
nhớ ngoại.
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 17

Đồ án vi xử lý Mạch phát nhạc đơn âm
CHƯƠNG 3
MẠCH PHÁT NHẠC ĐƠN ÂM
3.1. Dạng sóng của nốt nhạc
Hình 3.1 Dạng sóng nốt nhạc
• Mỗi nốt nhạc có một tần số riêng, do đó chu kỳ T cũng khác nhau.
• Dựa vào chu kỳ T, ta sẽ viết chương trình tạo ra các dạng xung có T tương ứng.
• Bảng giá trị tần số các nốt nhạc
STT Tên nốt Tần số
1 A 440,00
2 B 493,88
3 C# 554,37
4 D 587,33
5 E 659,26
6 F# 739,99
7 G# 830,61
8 A’ 880,00
3.2 Mục đích yêu cầu của mạch phát nhạc :
Thực hiện phát ra nhạc đơn âm . Khi hát hết một bài sẽ tự đông chuyển sang
bài khác như đã lập trình sẵn . Quay lại ban đầu bằng nút ấn reset.
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 18
T
xung
Đồ án vi xử lý Mạch phát nhạc đơn âm
3.3 Sơ đồ nguyên lý
EE
Hình 3.2 Sơ đồ nguyên lí
3.4 Sơ đồ mạch in
Hinh 3.3 Sơ đồ mạch in
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 19

Đồ án vi xử lý Mạch phát nhạc đơn âm
3.5 Mã chương trình :
org 00h
bienlap equ 20h
hieuchinhtruongdo equ 21h
btd equ 22h ;bien truong do
bl equ 23h ;bien lang
mov btd,#01h
mov bl,#01h
_32 equ 1
_16 equ 2
_8 equ 4
_4 equ 8
_2 equ 16
_1 equ 32
;***********
main:
;***CAU VONG KHUYET***
call x4;4d2 da
call d_2
call c_2;4c2 khuya
call x2;2#a1 roi
call a_1t
call x8;8c2 van
call a_1;8a1 ko
call x4;4g1 con
call g_1
call c_2
call x4;4#a1 ngoi
call a_1t

call f_2;4f2 dem
call x2;2d2 sao
call d_2
call x4;4d2 suong
call d_2
call c_2;4c2 roi
call x2;2#a1 lanh
call a_1t
call x8;8c2 uot
call c_2
call x4;4#a1 doi
call a_1t
call d_1;4d1 bo
call x2;2f1 vai
call f_1
call x8;8#a1 anh
call a_1t
call a_1;8a1 trang
call a_1t;8#a1 da
call d_2
call c_2;4c2 bao
call x2;2#a1 gio
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 20
Đồ án vi xử lý Mạch phát nhạc đơn âm
call a_1t;4#a1 nua
call x8;8a1 chi
call a_1
call g_1;8g1 con
call a_1;8a1 chiec
call g_1;8g1 cau

call x4;4f1 vong
call f_1
call x2
call a_1;4a1 khuyet
call g_1;4g1 de
call x8;8#a1 minh
call a_1t
call c_2;8c2 anh
call a_1t;8#a1
don
call x2;4a1
coi
call a_1
call x4;4d2 den
call x8;8#a1 anh
call a_1t
call a_1;8a1 trang
call a_1t;8#a1 da
call a_1;8a1 ko
call a_1t
call x8;8c2 moi
call c_2
call x4;4#a1 dc
call a_1t
call f_2;4f2 co
call x2;2d2 em
call d_2
call x4;4d2 den
call d_2
call c_2;4c2 bao

call x2;2#a1 gio
call a_1t
call x8;8c2 thay
call c_2
call x4;4#a1 dc
call a_1t
call d_1;4d1 cau
call x2;2f1 vong
call f_1
call a_1
;===============
;***gia vo yeu***
mov btd,#_4 ;4a2 do lan
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 21
Đồ án vi xử lý Mạch phát nhạc đơn âm
call x4;4g1 con
call g_1
call a_1t;4#a1 nua
call x8;8a1 chi
call a_1
call g_1;8g1 con
call a_1;8a1 chiec
call g_1;8g1 cau
call x4;4f1 vong
call f_1
call x2
call a_1;4a1 khuyet
call g_1;4g1 de
call x8;8#a1 minh
call a_1t

call c_2;8c2 anh
call a_1t;8#a1
don
call x2;4a1 ;;;;;;;;;;
coi
mov btd,#_8;8e3 nhung
call e_3
call d_3;8d3 nam
call e_3;8e3 thang
call d_3;8d3 yeu
mov btd,#_4;4c3 nhau
call c_3
call a_2
mov btd,#_8 ;8f3 fa cuoi
call f_3
call e_3 ;8e3 mi ta
call f_3 ;8f3 fa nam
call e_3 ;8e3 mi tay
mov btd,#_4; 4d3 re nhau
call d_3
call a_2 ;4a2 la thi
mov btd,#_8 ;8e3 mi hay
call e_3
call d_3 ;8d3 re noi
call e_3 ;8e3 mi het
call d_3 ;8d3 re di
mov btd,#_2 ;2c3 do em
call c_3
mov btd,#_8;8e3 phuc
call e_3

call d_3 ;8d3 vun
call e_3;8e3 dap
call d_3;8d3 ai
mov btd,#_2;2c3
kia
call c_3
mov btd,#_8;8e3 loi
call e_3
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 22
Đồ án vi xử lý Mạch phát nhạc đơn âm
call e_3;4e3 gia
mov btd,#_2;2a2 vo
call a_2
mov btd,#_4;4a2 minh
call a_2
mov btd,#_8;8f3 cu
call f_3
call e_3;8e3 co
call f_3;8f3 gang
call e_3;8e3 ben
mov btd,#_4;4d3
nhau
call d_3
call a_2;4a2 hanh
;***tay du ky***
call x4;4e2
call e_2
call x16;16e2
call e_2
call e_2;16e2

call x8;8b2
call b_2
call d_3;8d3
call x16;16b2
call d_3;8d3 di
call e_3;8e3 den
call d_3;8d3 noi
call c_3;8c3 nao
call d_3;8d3 cho
mov btd,#_4;4e3
chung
call e_3
mov btd,#_2;2d3
ta
call d_3
;======
ljmp main
;*******
call l32;32-
call x8;8b2
call b_2
call b_2;8b2
call x16;16b2
call b_2
call a_2;16a2
call b_2;16b2
call g_2;16g2
call x8;8e2
call e_2
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 23

Đồ án vi xử lý Mạch phát nhạc đơn âm
call b_2
call d_3;16d3
call x8;8e2
call e_2
call x4;4g2
call g_2
call x16;16e2
call e_2
call g_2;16g2
call e_2;16e2
call x32;32g2
call g_2
call d_3
call x16;16b2
call b_2
call d_3;16d3
call b_2;16b2
call d_3;16d3
call x8;8e3
call e_3
call e_3;8e3
call e_3;8e3
call b_2;8b2
call x4;4d3
call d_3
call l8;8-
call x8;8b2
call b_2
call x16;16b2

call b_2
call d_3;16d3
call x8;8e3
call e_3
call e_3;8e3
call e_3;8e3
call b_2;8b2
call x4;4d3
call a_2;4a2
call a_2;4a2
call x8;8a2
call a_2
call x16;16g2
call g_2
;**CHUONG TRINH CON CAC NOT**
c_1: ;not do ;1911us bienlap=191
mov r3,btd
lc_1:
mov hieuchinhtruongdo,#16
loopc_1:
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 24
Đồ án vi xử lý Mạch phát nhạc đơn âm
call x8;8d3
call d_3
call e_2;8e2
call d_3;8d3
call e_2;8e2
call b_2;8b2
call b_2;8b2
call x4;4g2

call g_2
c_1t: ;not do thang ;1804us
bienlap=180
mov r3,btd
lc_1t:
mov hieuchinhtruongdo,#17
loopc_1t:
mov bienlap,#180
setb p1.4
call delay
clr p1.4
call delay
djnz hieuchinhtruongdo,loopc_1t
djnz r3,lc_1t
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
d_1: ;not re ;1703us
mov bienlap,#191
setb p1.4
call delay
clr p1.4
call delay
djnz hieuchinhtruongdo,loopc_1
djnz r3,lc_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
setb p1.4
call delay
clr p1.4
call delay

djnz hieuchinhtruongdo,loopd_1
djnz r3,ld_1
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
d_1t: ;not re thang ;1607us
bienlap=161
mov r3,btd
ld_1t:
mov hieuchinhtruongdo,#19
loopd_1t:
mov bienlap,#161
setb p1.4
call delay
SVTH: Dương Xuân Lai_Hồ Sỹ Hoài Trang 25

×