Tải bản đầy đủ (.doc) (65 trang)

Thiết kế phần cứng mạch quản lý cuộc gọi đi, Hiển thị thông tin cuộc gọi trên màn hình LCD

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 (1.53 MB, 65 trang )

Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
TÓM TẮT NỘI DUNG
Sử dụng vi điều khiển PIC 16F877A để thiết kế một mạch quản lý cuộc gọi đi.
Việc thiết kế cần phải có kiến thức cơ sở về điện thoại và mã DTMF. Vì vậy trong
chương 1 của luận văn em trình bày cơ sở lý thuyết về điện thoại và mã DTMF. Tiếp
theo là vi điều khiển PIC 16F877A được em lựa chọn và lí do em lựa trọn được em
trình bày ở chương 3, đặc điểm kỹ thuật được trình bày ở phần phụ lục. Phần thực
nghiệm bao gồm các công việc: thiết kế mạch phần cứng của mạch quản lý cuộc gọi
đi bằng phần mềm Altium Designer 6.7.9346, lập trình các khối cho bản mạch.
Trong luận văn này tập trung vào các vấn đề sau:
 Thiết kế phần cứng của mạch quản lý số điện thoại gọi đi
 Hiển thị thông tin cuộc gọi lên LCD
- 1 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
BẢNG CHỮ CÁI VIẾT TẮT
DTMF : dual-tone multiFequency
I2C : Inter-intergrated Circuit
ICSP : In-Circuit Serial Programming
MCLR : Master Clear
PIC : Peripheral Interface Controller
: Programmable Intelligent Computer
LCD : Liquid crytal Display
SPI : Serial Pripheral Interface
- 2 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
LỜI CẢM ƠN
Lời đầu tiên trong khoá luận em xin bày tỏ lòng biết ơn tới toàn thể các
thầy cô, cán bộ trong khoa Điện tử - Viễn thông trường Đại học Công
nghệ - Đại học Quốc Gia Hà Nội, đặc biệt là các thầy cô trong bộ môn
điện tử đã nhiệt tình chỉ dạy dỗ em trong suốt bốn năm học vừa qua.
Em xin chân thành cảm ơn thầy giáo PGS.TS Ngô Diên Tập đã


hướng dẫn, quan tâm, chỉ bảo tận tình để em hoàn thành khoá luận tốt
nghiệp này.
Cảm ơn gia đình, bạn bè đã động viên, khích lệ, giúp đỡ về mọi
mặt trong quá trình em làm luận văn tốt nghiệp.
Hà Nội: ngày 07 tháng 5 năm
2008
Sinh viên thực
hiện
Vũ Tiến
Chương
- 3 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
LỜI NÓI ĐẦU
Ngày nay kĩ thuật vi điều khiển đã trở nên quen thuộc trong ngành kỹ thuật và
cả trong các ứng dụng đời thường. Hầu hết các dây truyền tự động lớn và các sản
phẩn dân dụng ta đều thấy sự suất hiện của vi điều khiển. Vi điểu khiển được nhà sản
xuất tích hợp rất nhiều các nhiều tính năng với các bộ ngoại vi được tích hợp ngay
trên vi điều khiển, cùng với khả năng xử lý nhiều hoạt động phức tạp, tất cả được tích
hợp trên một con chip nhỏ gọn, chính vì vậy sẽ gặp nhiều thuận lợi hơn trong thiết kế
board, khi đó board mạch sẽ nhỏ gọn và đẹp hơn dễ thiết kế hơn rất nhiều. Về mặt
tính năng và công năng thì có thề xem PIC vượt trội hơn rất nhiều so với 89 với nhiều
module được tích hợp sẵn như ADC10 BIT, PWM 10 BIT, PROM 256 BYTE,
COMPARATER, VERF COMPARATER, một đặc điểm nữa là tất cả các con PIC sử
dụng thì đều có chuẩn PI tức chuẩn công nghiệp thay vì chuẩn PC (chuẩn dân dụng).
Ngoài ra PIC còn được rất nhiều nhà sản xuất phần mềm tạo ra các ngôn ngữ hỗ trợ
cho việc lập trình ngoài ngôn ngữ Asembly ra còn có thể sử dụng ngôn ngữ C thì sử
dụng CCSC, HTPIC hay sử dụng Basic thì có MirkoBasic… và còn nhiều chương
trình khác nữa để hỗ trợ cho việc lập trình bên cạnh ngôn ngữ kinh điển là asmbler.
Cùng với sự phát triển của vi điều khiển là sự phát triển mạnh mẽ của các dịch vụ
điện thoại chính vì vậy nên việc quản lý các cuộc điện thoại trở nên cấp thiết. Từ yêu

cầu trên và những kiến thức em đã được học trên trường em đã được chọn đề tài quản
lý số điện thoại gọi đi với mục tiêu đặt ra: sử dụng PIC 16F887A và đồng hồ thời
gian thực để xác định thời gian gọi, ghép nối với LCD để hiển thông tin về cuộc gọi .
Giới hạn đề tài : việc thiết kế các ứng dụng của PIC với đường dây điện thoại
rất phong phú và phức tạp, do vậy trong luận văn này em tập trung giải quyết các vấn
đề chính:
 Thiết kế phần cứng mạch quản lý cuộc gọi đi
 Hiển thị thông tin cuộc gọi trên màn hình LCD
- 4 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
PHẦN 1: LÝ THUYẾT
CHƯƠNG 1
Ý TƯỞNG VÀ CƠ SỞ LÝ THUYẾT
1.1 Ý tưởng
Nhiều khi em mở hoá đơn điện thoại ra và nghĩ rằng: “Mình không thể gọi
nhiều như thế được”. Hầu hết các hoá đơn điện thoại ghi lại các cuộc gọi đường dài
và đưa ra chi tiết các số đã gọi. Nhưng các cuộc gọi địa phương (như kiểu nội hạt)
chỉ được cộng tổng lại vì vậy sẽ không thể biết được chi tiết về các cuộc gọi đi.
Chính vì vậy mà em thiết kế mạnh điện này để lưu lại chi tiết cuộc gọi mà mình đã
gọi đi (số điện thoại và thời gian gọi). Với mạch điện này thì tất cả những cuộc gọi đi
được ghi lại và vì vậy em có thể biết đựơc chi phí cước gọi hàng tháng.
Mạch điện ghi lại thời gian bắt đầu và kết thúc của tất cả các cuộc gọi đi cùng
với các số đã gọi. Nó hoạt động một cách độc lập với PC. Dữ liệu cuộc gọi điện thoại
là đầu ra trong một fomat mà có thể dễ dàng nhập vào Microsoft Excel. Các chức
năng đa dạng của Excel sau đó có thể được dùng để phân tích và phân loại dữ liệu và
tạo ra các bản in từ máy tính đã được định dạnh. Dữ liệu được lưu trữ trong bộ nhớ
EEPROM, do đó sẽ không mất dữ liệu trong các trường hợp bị mất điện. Mạch điện
được cung cấp với bộ nhớ 256K.
1.2 Cơ sở lý thuyết
1.2.1 Cấu tạo cơ bản và nguyên lý hoạt động của điện thoại

Một chiếc máy điện thoại cơ bản là gồm ba phần chính sau:
 Phần chuyển đổi mạch điện: Phần này gồm hệ thống lá mạ tiếp điểm và có
nhiệm vụ đóng mở mạch điện khi có yêu cầu.
 Phần thu và phát tín hiệu gọi: Phần này gồm hai phần chính là máy điện
quay tay có nhiệm vụ phát tín hiệu gọi lên đường chuyền và phần chuông
máy có nhiệm vụ biến dòng tín hiệu gọi thành tín hiệu gọi.
- 5 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
 Phần thu phát thoại: Gồm có loa và mic. Loa có nhiệm vụ biến đổi tín hiệu
âm thanh thành tín hiệu điện và mic thì có nhiệm vụ ngược lại biến tín hiệu
điện thành tín hiệu âm thanh.
Hình 1.1: Sơ đồ khối của điện thoại
Nguyên lý hoạt động:
Khi ta thực hiện cuộc gọi dao động âm thanh của tiếng nói sẽ tác động vào
màng rung của mic làm suất hiện dòng điện biến đổi tương ứng trong mạch. Dòng
điện biến đổi này được truyền trên đường dây điện thoại và được chuyển mạch đến
máy điện thoại được gọi, làm cho màng rung của loa dao động, lớp không khí trước
màng sẽ dao động theo phát ra âm thanh tác động đến tai người nghe và quá trình
chuyền dẫn ngược lại cũng tương tự.
1.3 phân loại các kiểu điện thoại
- 6 -
Nút gạt tổ
hợp
Thiết bị
gửi số
Triệu tiếng
lickic
Bù trừ chiều
dài đường dây
Chuông

Ống nói
Cuộn cảm
ứng
Ống nghe
Mạch cân
bằng
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
1.3.1 Phân loại theo phương thức tiếp dây
+Máy điện thoại nhân công: các loại máy liên lạc với nhau qua tổng đài nhân công
gồm hai loại
 Máy điện thoại từ thạch: Nguồn cung cấp để đàm thoại và gọi chuông đều
được trang bị tại từng máy lẻ, nguồn đàm thoại thường dùng pin, nguồn gọi
chuông là máy phát điện magneto.
 Máy điện thoại công điện: Nguồn cung cấp để đàm thoại và để gọi chuông
được đặt tại tổng đài, sử dụng nguồn một chiều 48V.
+Máy điện thoại tự động
 Liên lạc với nhau qua tổng đài tự động bằng cách quay số hay bằng ấn phím.
 Nguồn cung cấp điện để đàm thoại là nguồn một chiều 48V hoặc 60V, nguồn
để gọi chuông từ 90 – 100 V, tần số 16 – 25 Hz.
1.4 Sơ lược về tín hiệu DTMF
1.4.1 Định nghĩa
DTMF(dual tone multi-frequency): là tín hiệu gồm có hai tần số xếp trồng lên
nhau. Mỗi tần số được lựa chọn sao cho có lợi cho việc thiết kế bộ lọc và dễ dàng
truyền đi trên đường dây điện thoại có băng thông khoảng chừng 3,5KHz. DTMF
phát ra là 1 tín hiệu âm thanh ghép của 2 tín hiệu trong dải tần số từ 697Hz đến
1633Hz
Phiên bản của DTMF sử dụng cho tín hiệu điện thoại được biết đến như hãng
Touch-Tone, và được tiêu chuẩn hoá bởi ITU-T là Q.23. Tín hiệu DTMF có thể được
phát hoặc thu bằng một IC chuyên dụng (VD: MTD887X)
Hệ thống DTMF đang phát triển và trở thành phổ biến trong hệ thống điện thoại

hiện nay. Hệ thống này được hình thành vào năm 1960 nhưng mãi đến năm 1970 mới
được phát triển rộng rãi.
1.4.2 KEYPAD
Trong DTMF mỗi chữ số chọn lựa có tín hiệu dưới dạng tổ hợp của hai tần số
xoay chiều :
- 7 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Hình 1.2: Dạng tín hiệu DTMF
Khi một nút được bấm, hai tần số mô tả chữ số được phát ra và được gửi một cách
đồng thời. Đặc biệt là hai âm thanh này không cùng âm, tức là tần số của âm thanh này
không có cùng ước số chung với âm thanh kia, điều này để tránh sự nhầm lẫn vô tình với âm
hiệu nói, sự phân tánh rõ ràng giữa hai loại này là rất cần thiết. Ví dụ như hai tần số 750 và
500 là hai tần số không thể kết hợp thành tín hiệu DTMF vì có cùng ước số chung là 250,
hai tần số này là hai thanh cùng âm.
Keypad chuẩn là một ma trận chữ nhật gồm ba cột và bốn hàng (3x4) tạo nên tổng
cộng là 12 phím nhấn: trong đó có 10 phím cho chữ số (từ 0 đến 9), hai phím đặc biệt là ‘*’
và ‘#’. Mỗi hàng trên bàn phím bấm được gán cho một tần số tín hiệu thấp, mỗi cột được
gán cho tần số tín hiệu cao. Mỗi một phím sẽ có một tín hiệu DTMF riêng được tổng hợp
bởi hai tần số tương ứng với hàng và cột mà phín đó đang đứng . Những tần số này đã được
lựa chọn cẩn thận sao cho có lợi cho việc thiết kế bộ lọc và dễ dàng truyền đi trên
đường dây điện thoại.
Hình 1.3: Bàn phím chuẩn 12 nút
Ngày nay người ta còn cho thêm một vài phím để tạo nên bảng mã được nằm
trong một ma trận (4x4) với mỗi hàng miêu tả bằng một tần số thấp và mỗi cột miêu
tả bằng một tần số cao.
- 8 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Hình 1.4: Bàn phín mở rộng 16 phím
-----------------------------------------------------------------------------------
- 9 -

Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
PHẦN 2: THỰC NGHIỆM
CHƯƠNG 2
SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG
2.1 Sơ đồ khối của mạch
Hình 2.1: Sơ đồ khối của mạch.
2.2 Nguyên lý hoạt động
2.2.1 Khối xử lý trung tâm
Khối xử lý trung tâm điều khiển toàn bộ hoạt động của mạch: nhận dữ liệu giải
mã DTMF từ bộ giải mã DTMF, nhận tín hiệu thời gian từ khối đồng hồ thời gian
thực, ghi dữ liệu (số điện thoại, ngày giờ gọi, thời gian gọi) vào EEPROM và hiển thị
tất cả thông tin lên màn hình tinh thể lỏng.
2.2.2 Khối thu và giải mã DTMF
- 10 -
PHONE
Mạch giao tiếp
đường dây
Khối thu và
giải mã DTMF
Khối đồng hồ
thời gian
Khối hiển thị
Khối ghép nối máy
tính
EEPROM
Khối cảm biến tín
hiệu nhấc điện thoại
Khối xử lý
trung tâm
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

Khối này có nhiệm vụ nhận tín hiệu DTMF từ mạch giao tiếp với đường dây
điện thoại và sau đó giải mã thành mã nhi phân 4 bit đưa vào khối xử lý trung tâm.
2.2.3 Khối đồng hồ thời gian thực
Khối này cung cấp dữ liệu về: ngày, tháng, năm, giờ, phút, giây một cách chính
xác cho khối điều khiển để tính thời gian gọi đến và thời gian gọi. Chính vì vậy mà
nó cần phải chạy ngay cả khi mất điện nên yêu cầu có nguồn pin để nuôi trong trường
hợp mất điện.
2.2.4 Khối hiển thị
Là màn hình tinh thể lỏng LCD (2 dòng, mỗi dòng 16 kí tự) để hiển thị thông
tin cuộc gọi như: số điện thoại, thời gian thực hiện cuộc gọi, thời gian gọi
2.2.5 Khối EEPROM
Khối này để lưu trữ toàn bộ thông tin về cuộc gọi (số điện thoại, thời gian thực
hiện cuộc gọi, thời gian gọi). Khối này có dung lượng là 256kB.
2.2.6 Khối ghép nối máy tính theo chuẩn RS-232
Khối này có nhiệm vụ giao tiếp với máy tính theo chuẩn RS-232. Khối này có
nhiệm vụ chính là đọc dữ liệu cuộc gọi từ EEPROM.
2.2.7 Khối nguồn nuôi
Là khối cơ bản nhất nó cung cấp dòng nuôi cho toàn bộ linh kiện trong mạch.
Nó tạo ra điện áp ổn định thoả mãn các chỉ số về điện áp và dòng .
2.2.8 Hoạt động của mạch
Mạch được ghép nối song song với đường dây điện thoại để đảm bảo cho thuê
bao luôn hoạt động bình thường. mạch có chức năng hiển thị các thông tin chi tiết về
cuộc gọi đi: ngày, giờ gọi, thời gian gọi, số gọi đi.
Mạch có phần phát hiện cuộc gọi, tức là nếu người dùng nhấc máy thực hiện
cuộc gọi thì mạch sẽ hiển thị số gọi đi và khi kết thúc cuộc gọi sẽ hiển thị thời gian
đã thực hiện cuộc gọi.
Cuối tháng người dùng có thể lấy thông tin chi tiết từ tất cả các cuộc gọi đi
trong tháng bằng cách kết nối mạch với máy tính từ cổng COM.
- 11 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

-----------------------------------------------------------
CHƯƠNG 3
THIẾT KẾ MẠCH ĐIỆN VÀ THỰC NGHIỆM
3.1 Thiết kế mạch nguyên lý
3.1.1 Khối xử lý trung tâm
Khối xử lý trung tâm là vi điều khiển PIC16F877A, là IC có 40 chân, với 5
cổng vào ra là Port A(RA0÷RA5), Port B(RB0÷RB7), Port C(RC0÷RC7), Port
D(RD0÷RD7), Port E(RE0÷RE2). Nó có 8k Flash ROM và 368 Byte RAM. Sơ đồ
chi tiết là:
Hình 3.1: Sơ đồ nguyên lý của PIC16F877A trong mạch
- 12 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Chân RESET là chân số 1 của PIC (chân MCLR) PIC sẽ reset khi chân này ở
mức thấp. Bộ dao động thạch anh (20MHz) được nối với chân 13 và 14 của vi điều
khiển, bộ dao động có thêm tụ C12 và C14 để tăng sự ổn định cho nguồn xung nhịp
của hệ thống. PIC được cấp nguồn qua hai cặp chân VSS và VDD. Hai cặp chân VSS
là chân 12 và 31 nối đất còn hai cặp chân VDD là chân 11 và 32 nối lên nguồn +5V
do bộ nguồn nuôi cung cấp.
Các cổng của PortB (từ RB0 đến RB7, RB3 không dùng) nối đến LCD. Các
cổng của PortD (từ RD0 đến RD3) là lối vào của tín hiệu DTMF đã được mã hoá
thành mã nhị phân 4 bit. Các cổng của PortC (từ RC2 đến RC4 ) được nối đến đồng
hồ thời gian thực, từ RC6 đến RC7 kết nối tới máy tính theo chuẩn RS-232.
3.1.2 Khối thu và giải mã DTMF
Giải mã DTMF được thực hiện bằng vi mạch chuyên dụng IC MT8870 nhờ thế
mà việc giải mã trở nên đơn giản hơn. Sơ đồ nguyên lý kết nối của IC MT8870 trong
mạch được trình bày như hình dưới:
Hình 3.2: Sơ đồ nguyên lý kết nối trong mạch của IC MT8870
IC nhận tín hiệu DTMF từ đường điện thoại qua chân 2 (IN -), sau khi thực hiện
giải mã nó đưa dữ liệu qua ra 4 chân (từ chân 11 đến chân 14) dưới dạng 4 bit nhị
phân. IC sử dụng dao động thạch anh 3, 579545 MHz .

MT8870 hoạt động theo nguyên lý:
- 13 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Digit TOE INH Est Q4 Q3 Q2 Q1
ANY L X H Z Z Z Z
1 H X H 0 0 0 1
2 H X H 0 0 1 0
3 H X H 0 0 1 1
4 H X H 0 1 0 0
5 H X H 0 1 0 1
6 H X H 0 1 1 0
7 H X H 0 1 1 1
8 H X H 1 0 0 0
9 H X H 1 0 0 1
0 H X H 1 0 1 0
* H X H 1 0 1 1
# H X H 1 1 0 0
A H L H 1 1 0 1
B H L H 1 1 1 0
C H L H 1 1 1 1
D H L H 0 0 0 0
A H H H
B H H H
C H H H
D H H H
undetected, the output code will
remain the same as the previous
detected code
3.1.3 Khối đồng hồ thời gian thực
IC DS1307 đồng hồ thời gian thực nối tiếp (DS1307) của hãng Dallas

Semiconductor. Nó sử dụng một giao diện nối tiếp I2C 2 dây để giao tiếp với vi điều
khiển. Nó đếm giây, phút, giờ, ngày trong tháng, tháng, ngày trong tuần và năm cho
- 14 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
đến năm 2100. Nó có một đầu xung vuông (pin 7), đã được lập trình để đưa ra một
tín hiệu một giây. Ngoài ra DS1307 chuyển mạch tự động khi phát hiện lỗi nguồn. Bộ
pin lithium 3V cung cấp nguồn dự phòng trong trường hợp mất điện.
Cách nối chân trong mạch:
Vcc: nối với nguồn
X1, X2: nối với thạch anh 32, 768 kHz
Vbat: đầu vào pin 3V
GND: đất
SDA: chuỗi data
SCL: dãy xung clock
SQW/OUT: xung vuông/đầu ra driver
Sơ đồ nguyên lý kết nối trong mạch:
Hình 3.3: Sơ đồ nguyên lý kết nối trong mạch điện
3.1.4 Khối hiển thị thông tin
- 15 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Sử dụng màn hình tinh thể lỏng LCD (Liquid Crytal Display) loại 2 dòng, 16 kí
tự LCD1602. Màn hình LCD đã rất phổ biến trên thị trường và việc lập trình cho nó
rất đơn giản thêm vào đó là nó có mặt thẩm mĩ rất cao. Sử dụng nguồn nuôi thấp (từ
2, 5 đến 5V). Có thể hoạt động ở hai chế độ 4 bit hoặc 8 bit (trong đề tài này em sử
dụng chế độ 4 bit). Có thể điều chỉnh độ tương phản qua biến trở R6. Có thể ghi lên
LCD và đọc dữ liệu từ LC
Sơ đồ nguyên lý kết nối của LCD1602 trong mạch điện:
Hình 3.4: Sơ đồ nguyên lý kết nối của LCD1602 trong mạch điện
- 16 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

LCD1602 được ghép nối với vi điều khiển thông qua PortB (RB0 đến RB7
Không sử dụng RB3). RB0 nối với chân E, RB1 nối với chân RS, RB2 nối với chân
R/W là chân đọc ghi dữ liệu và chân RB4 đến RB7 là chân dữ liệu vào.
3.1.5 Khối EEPROM
Mạch điện được cung cấp với bộ nhớ 256K sử dụng IC AT24C526. Mạch điện
ghi lại thời gian bắt đầu và kết thúc của tất cả các cuộc gọi đi cùng với các số đã gọi.
Dữ liệu được lưu trữ trong bộ nhớ EEPROM, do đó sẽ không mất dữ liệu trong các
trường hợp bị mất điện.
IC AT24C256 ghép nối với PIC qua PortC theo chuẩn I2C (RC3 và RC4). Sơ
đồ ghép nối như hình dưới:
Hình 3.5: Sơ đồ nguyên lý kết nối AT24C256 trong mạch điện
3.1.6 Khối ghép nối máy tính theo chuẩn RS-232
Sơ đồ ghép nối:
- 17 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Hình 3.6: Sơ đồ nguyên lý kết nối MAX232 trong mạch điện
Mạch điện được ghép nối với máy tính thông qua vi mạch MAX232 qua hai
chân 25 và 26 của PIC (RC6 và RC7). Qua ghép nối này ta có thể lấy dữ liệu về
thông tin cuộc gọi từ EEPROM qua máy tính.
3.1.7 Khối nguồn nuôi
Dùng IC 7805 để tạo nguồn +5V ổn định cấp toàn mạch cho mạch. Tụ C2 và
C3 để lọc nhiễu, diode D3 có nhiệm vụ báo nguồn. Sơ đồ nguyên lý như hình dưới:
Hình 3.6: Sơ đồ nguyên lý nguồn nuôi của mạch
-----------------------------------------------
- 18 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
3.2 THỰC NGHIỆM
3.2.1 Thiết kế mạch in
Trong phần này em đã sử dụng công cụ phần mềm Altium Designer 6.7.9346
để thực hiện, nó là một phần mềm phát triển của protel. Hình dưới là bản mạch in sau

khi đã vẽ hoàn chỉnh :
Hình 3.7: Bản mạch in
Bản mạch in được trình bày: các jack cắm (2 jack RJ11, 1 jack cắm nguồn,
cổng kết nối với máy tính DB9), đèn báo nguồn và khối nguồn nuôi cấp nguồn +5V
cho toàn mạch được sếp trên cùng để thuận tiện cho việc ghép nối. Tiếp theo đó là
khối giải mã DTMF, đồng hồ thời gian thực và EEPRROM. Cuối cùng là vi điều
khiển PIC16F877A, nguồn dự phòng cho đồng hồ thời gian thực trong trường hợp
mất điện và jack cắm dùng để nạp vi điều khiển ngay trên mạch (ICSP)
- 19 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Bản mạch sau khi đã hàn linh kiện đầy đủ:
Hình 3.8: Bản mạch khi đã hàn linh kiện
3.2.2 Lập trình
Việc lập trình cho PIC sử dụng ngôn ngữ C chuẩn, viết bằng phần mền CCS
PIC C Compiler phiên bản 3.249. Phần mềm CCS hỗ trợ một thư viện với khá nhiều
hàm con nên việc lập trình trở nên dễ dàng hơn. Giao diện của phần mềm khá đẹp và
có thể sử dụng một cách dễ dàng. Thêm vào đó CCS cung cấp một trang web có code
chuẩn để tham khảo: ccsinfo.com/forum .
Giao diện của PIC C Compiler:
- 20 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Hình 3.9: Giao diện của PIC C Compiler
Giao diện phần mềm nạp cho PIC WinPic800:
Hình 3.9: Giao diện phần mềm nạp WinPic800
Em sử dụng phần mềm WinPic800 để nạp cho PIC ngay trên mạch theo chuẩn
ICSP. Khi trình dịch CCS đã dịnh dữ liệu thành file *.hex, sau đó WinPic800 sẽ gửi
- 21 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
từ máy tính tới vi điều khiển, vi điều khiển sẽ nhận dữ liệu thông qua cổng truyền
thông nối tiếp và ghi lên bộ nhớ chương trình.

Lưu đồ lập trình:
Hình 3.8: Lưu đồ lập trình
3.2.3 Lý do chọn PIC 16F877A
Ngày nay vi điều khiển được sử dụng rất nhiều trong lĩnh vực điều khiển tự
động mà vi điều khiển có rất nhiều loại như: dòng 89 hay AVR, PIC, PSOC…Em
chọn PIC mà ko chọn AVR hay 89, bởi nếu so với 89 về mặt tính năng và công năng
thì có thề xem PIC vượt trội hơn rất nhiều so với 89 với nhiều module được tích hợp
sẵn như ADC10 BIT, PWM 10 BIT, PROM 256 BYTE, COMPARATER, VERF
- 22 -
Bắt đầu
Đọc thời gian
Hiển thị thời
gian lên LCD
Lưu vào
EEPROM
STD=
1
Hiển thị số
điện thoai
lênLCD
Sai
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
COMPARATER…Nhưng về mặt giá cả thì có đôi chút chênh lệch như giá 1 con
89S52 khoảng 20.000 thì PIC16F877A là 60.000 nhưng khi so sánh như thề thì em
lại phần linh kiện cho việc thiết kế mạch nếu như dùng 89 muốn có ADC em phải
mua con ADC chẳng hạn như ADC0808 hay 0809 với giá vài chục nghìn và bộ
opamp thì khi sử dụng PIC nó đã tích hợp cho em sẵn các module đó, có nghĩa là em
không cần mua ADC, opam, EPPROM vì PIC đã có sẵn trong nó rồi ngoài ra em sẽ
gặp nhiều thuận lợi hơn trong thiết kế board, khi đó board mạch của em sẽ nhỏ gọn
và đẹp hơn dễ thi công hơn rất nhiều, nên tính về giá cả tổng cộng cho đến lúc thành

phẩm thì PIC có thể xem như rẻ hơn 89, một đặc điểm nữa là tất cả các con PIC sử
dụng thì đều có chuẩn PI tức chuẩn công nghiệp thay vì chuẩn PC (chuẩn dân dụng)
nếu mua một con 89PI thì lúc đó giá cả giữa PIC và 89PI thì đã chênh lệch rất nhiều
rồi. Và gần đây Philip cũng đã ra 1 dòng 89VRD mới bổ sung thêm chức năng PWM
nhưng giá cả còn rất đắt mà vẫn còn thiếu nhiều tính năng so với PIC.
Ngoài ra PIC còn được rất nhiều nhà sản xuất phần mềm tạo ra các ngôn ngữ hỗ
trợ cho việc lập trình ngoài ngôn ngữ Asembly ra còn có thể sử dụng ngôn ngữ C thì
sử dụng CCSC, HTPIC hay sử dụng Basic thì có MirkoBasic… và còn nhiều chương
trình khác nữa để hỗ trợ cho việc lập trình bên cạnh ngôn ngữ kinh điển là asmbler.
Tóm lại em chọn PIC bởi nó được phát triển lâu đời và có rất nhiều dòng sản phầm
cho em lựa chọn như dòng basic PIC 12 midrange là PIC16, hi end là PIC18, gần đây
là DS PIC, vói những ai quan tâm đến lập trình điều khiển từ xa thì có IF PIC… và
trong mỗi dòng sản phẩm ấy lại có rất nhiều loại chip để đáp ứng mọi nhu cầu của
em.
Có thề nói 1 dòng phổ thông và đáp ứng gần như hầu hết các công dụng nên em
chọn là PIC16F877A. PIC 16F877A là loại có 40 chân, với 5 cổng vào ra là Port
A(RA0÷RA5), Port B(RB0÷RB7), Port C(RC0÷RC7), Port D(RD0÷RD7), Port
E(RE0÷RE2).
+ Tập lệnh để lập trình chỉ có 35 lệnh rất dễ nhớ và dễ học.
+8K Flash Rom.
+368 Byte Ram.
+ 5 Port điều khiển vào ra với tín hiệu điề khiển độc lập, với dòng ra cao có thề
kích trực tiếp các transirtor mà không cần qua bộ buffer.
+ 2 bộ đinh thời timer0 va timer2 8 bit có thể lập trình được.
+ 1 bộ định thời timer1 16 bit có thể hoạt động trong chế độ sleep với nguồn
- 23 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
xung clock ngoài.
+ 2 bộ module CCP (bao gồm Capture bắt giữ, Compare so sánh, PWM điều
chế xung 10 bit).

+ 1 Bộ ADC với 8 kênh ADC 10 bit .
+ 2 bộ so sánh tương tự hoạt động độc lập.
+ Bộ giám sát định thời Watchdogtimer.
+ 1 cồng song song 8 bit với các tín hiệu điều khiển.
+ 1 cổng nối tiếp.
+ Hỗ trợ giao tiếp I2C.
+ 15 nguồn ngắt.
+ Chế độ sleep tiết kiệm năng lượng.
+ Nạp chương trình bằng cổng nối tiếp ICSP.
+ Tần số hoạt động tối đa là 20MHz
3.2.4 Sơ đồ thực nghiệm với MT8870
Hình 3.9: Sơ đồ thực nghiệm với IC MT8870
Khi không bấm nút:
TOE: Logic 0
- 24 -
Khoa ĐTVT - Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Q3: Logic 0
Q2: Logic 0
Q1: Logic 0
Khi bấm và giữ nút ‘1’:
TOE: Logic 1
Q4: Logic 0
Q3: Logic 0
Q2: Logic 0
Q1: Logic 1
Thả nút ‘1’:
TOE: Logic 0
Q4: Logic 0
Q3: Logic 0
Q2: Logic 0

Q1: Logic 1
Khi bấm và giữ nút ‘2’:
TOE: Logic 1
Q4: Logic 0
Q3: Logic 0
Q2: Logic 1
Q1: Logic 0
Thả nút ‘2’:
TOE: Logic 0
Q4: Logic 0
Q3: Logic 0
- 25 -

×