Tài liệu tham khảo chuyên ngành viễn thông 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
Trang 1TÓ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ậytrong 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ựatrọ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ạchquả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 chobả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
Trang 2BẢNG CHỮ CÁI VIẾT TẮT
Trang 3LỜ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ọcCông nghệ - Đại học Quốc Gia Hà Nội, đặc biệt là các thầy cô trongbộ môn điện tử đã nhiệt tình chỉ dạy dỗ em trong suốt bốn năm họcvừ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ốtnghiệp này
Cảm ơn gia đình, bạn bè đã động viên, khích lệ, giúp đỡ về mọi mặttrong 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 2008Sinh viên thực hiện
Vũ Tiến Chương
Trang 4LỜ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ậtvà 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ảnphẩ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ợpngay 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ơntrong thiết kế board, khi đó board mạch sẽ nhỏ gọn và đẹp hơn dễ thiết kế hơn rấtnhiề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 sovới 89 với nhiều module được tích hợp sẵn như ADC10 BIT, PWM 10 BIT, PROM256 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 racá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êncạ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áccuộ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 đã đượchọ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 đặtra: sử dụng PIC 16F887A và đồng hồ thời gian thực để xác định thời gian gọi, ghépnố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ạirấ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ácvấ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
Trang 51.2.1 Cấu tạo cơ bản và nguyên lý hoạt động của điện thoại 7
1.3 phân loại các kiểu điện thoại 8
1.3.1 Phân loại theo phương thức tiếp dây 8
1.4 Sơ lược về tín hiệu DTMF 9
1.4.1 Định nghĩa 9
1.4.2 KEYPAD 9
PHẦN 2: THỰC NGHIỆM 12
CHƯƠNG 2 SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG 12
2.1 Sơ đồ khối của mạch 12
2.2 Nguyên lý hoạt động 12
2.2.1 Khối xử lý trung tâm 12
2.2.2 Khối thu và giải mã DTMF 12
2.2.3 Khối đồng hồ thời gian thực 13
2.2.4 Khối hiển thị 13
2.2.5 Khối EEPROM 13
2.2.6 Khối ghép nối máy tính theo chuẩn RS-232 13
Trang 62.2.7 Khối nguồn nuôi 13
2.2.8 Hoạt động của mạch 13
CHƯƠNG 3 THIẾT KẾ MẠCH ĐIỆN VÀ THỰC NGHIỆM 14
3.1 Thiết kế mạch nguyên lý 14
3.1.1 Khối xử lý trung tâm 14
3.1.2 Khối thu và giải mã DTMF 15
3.1.3 Khối đồng hồ thời gian thực 16
3.1.4 Khối hiển thị thông tin 17
3.1.5 Khối EEPROM 19
3.1.6 Khối ghép nối máy tính theo chuẩn RS-232 19
3.1.7 Khối nguồn nuôi 20
3.2 THỰC NGHIỆM 21
3.2.1 Thiết kế mạch in 21
3.2.2 Lập trình 22
3.2.3 Lý do chọn PIC 16F877A 24
3.2.4 Sơ đồ thực nghiệm với MT8870 26
3.2.5 Kết quả thực nghiệm và hướng phát triển 28
Trang 7PHẦN 1: LÝ THUYẾTCHƯƠNG 1
Ý TƯỞNG VÀ CƠ SỞ LÝ THUYẾT1.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ọinhiề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àivà đư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ùngvớ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ệnthoại là đầu ra trong một fomat mà có thể dễ dàng nhập vào Microsoft Excel Cácchứ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ữ trongbộ 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ệnquay tay có nhiệm vụ phát tín hiệu gọi lên đường chuyền và phần chuôngmáy có nhiệm vụ biến dòng tín hiệu gọi thành tín hiệu gọ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
Trang 8Hì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àomà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ìnhchuyề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
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
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âyChuông
Mạch cân bằng
Trang 9 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ọichuô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
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ãngTouch-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ệnthoạ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ăm1970 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 :
Hình 1.2: Dạng tín hiệu DTMF
Trang 10Khi 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ổngcộ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 đượcgá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ợpbở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 đitrê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ằmtrong 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êutả bằng một tần số cao.
Trang 11Hình 1.4: Bàn phín mở rộng 16 phím
Trang 12-PHẦN 2: THỰC NGHIỆMCHƯƠNG 2
SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG2.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ệugiải mã DTMF từ bộ giải mã DTMF, nhận tín hiệu thời gian từ khối đồng hồ thờigian 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
PHONE Mạch giao tiếp
đường dây giải mã DTMFKhối thu và
Khối đồng hồ thời gian
Khối hiển thịKhối ghép nối máy
EEPROMKhối cảm biến tín
hiệu nhấc điện thoại
Khối xử lý trung tâm
Trang 13Khố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áchchí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ôitrong trường hợp mất điện.
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
Trang 14-CHƯƠNG 3
THIẾT KẾ MẠCH ĐIỆN VÀ THỰC NGHIỆM3.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 5cổng vào ra là Port A(RA0÷RA5), Port B(RB0÷RB7), Port C(RC0÷RC7), PortD(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
Trang 15Châ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ềukhiển, bộ dao động có thêm tụ C12 và C14 để tăng sự ổn định cho nguồn xung nhịpcủa hệ thống PIC được cấp nguồn qua hai cặp chân VSS và VDD Hai cặp chânVSS 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áccổ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 đồnghồ 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 MT8870trong 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ý:
Trang 16Digit TOE INH Est Q4 Q3 Q2 Q1
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 DallasSemiconductor 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à
Trang 17năm cho đế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ệnlỗ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
Trang 18Sử 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
Trang 19LCD1602 đượ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ânR/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ệnghi 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 trongcá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:
Trang 20Hì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 haichâ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
Trang 21-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 +5Vcho 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ềukhiển PIC16F877A, nguồn dự phòng cho đồng hồ thời gian thực trong trường hợpmất điện và jack cắm dùng để nạp vi điều khiển ngay trên mạch (ICSP)
Trang 22Bả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 CCSPIC C Compiler phiên bản 3.249 Phần mềm CCS hỗ trợ một thư viện với khá nhiềuhà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á đẹpvà 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:
Trang 23Hì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
Trang 24sẽ gử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.
Bắt đầu
Đọc thời gian
Hiển thị thời gian lên LCD
Lưu vào EEPROM
Hiển thị số điện thoai lênLCD
Sai
Trang 25VERF COMPARATER…Nhưng về mặt giá cả thì có đôi chút chênh lệch như giá 1con 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 emphả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 raem 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 đếnlú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áccon 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ổ sungthê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 sovớ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ữ Cthì sử dụng CCSC, HTPIC hay sử dụng Basic thì có MirkoBasic… và còn nhiềuchươ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òngsả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 ứngmọ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ênem chọn là PIC16F877A PIC 16F877A là loại có 40 chân, với 5 cổng vào ra là PortA(RA0÷RA5), Port B(RB0÷RB7), Port C(RC0÷RC7), Port D(RD0÷RD7), PortE(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.
Trang 26+ 1 bộ định thời timer1 16 bit có thể hoạt động trong chế độ sleep với nguồn 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:
Trang 27TOE: Logic 0Q3: Logic 0Q2: Logic 0Q1: Logic 0
Khi bấm và giữ nút ‘1’:
TOE: Logic 1Q4: Logic 0Q3: Logic 0Q2: Logic 0Q1: Logic 1
Thả nút ‘1’:
TOE: Logic 0Q4: Logic 0Q3: Logic 0Q2: Logic 0Q1: Logic 1
Khi bấm và giữ nút ‘2’:
TOE: Logic 1Q4: Logic 0Q3: Logic 0Q2: Logic 1Q1: Logic 0
Thả nút ‘2’:
TOE: Logic 0Q4: Logic 0
Trang 28Q3: Logic 0Q2: Logic 1Q1: Logic 0
Khi bấm số điện thoại thì StD có mức logic là ‘1’, còn khi ta không bấm thìStD có mức logic là ‘0’ Còn các chân Q1, Q2, Q3, Q4 là mã BCD của số điệnthoại.
3.2.5 Kết quả thực nghiệm và hướng phát triển
Trong quá trình thực hiện đồ án em đã tìm hiểu sơ lược về điện thoại và tínhiệu DTMF Một chiếc điện thoại để bàn thông thường sử dụng mười sáu cặp tínhiệu DTMF để biểu diễn các số bấm trên bàn phím bấm, nghĩa là một phím bấmđược miêu tả bởi hai tín hiệu có tần số khác nhau Do vậy em đã tìm hiểu khá kĩ vềtín hiệu DTMF vì nó là cơ sở lý thuyết khá quan trọng trong đề tài này Về việc giảimã DTMF em sử dụng vi mạch MT8870, đây là vi mạch chuyên dụng để giải mãtín hiệu DTMF Vi mạch MT8870 lấy tín hiệu DTMF từ đường điện thoại vào chânhai (IN-) còn tín hiệu được giải mã thành mã BCD 4 bit thì suất ra bốn chânQ1,Q2,Q3,Q4, chân StD là chân báo khi có nhấn phím Em cũng đã tìm hiểu và làmchủ được vi điều khiển PIC 16F877A của hãng microchip Vi điều khiển PIC16F887A được tích hợp khá nhiều module, thêm vào đó là có thể sử dụng khá nhiềungôn ngữ lập trình Khối hiển thị thông tin em sử dụng LCD 1602 (2 dòng, 16 kítự) Em đã thực hiện được việc hiển thị lên màn hình LCD, lập trình hiển thị lênLCD khá đơn giản vì đã có hàm con trong thư viện của CCS Màn hình LCD đượcchia làm hai dòng, dòng đầu tiên có địa chỉ bắt đầu là 0x80 và địa chỉ kết thúc là0x8f, còn dòng thứ hai có địa chỉ bắt đầu là 0xc0 và địa chỉ kết thúc là 0xcf Emthiết kế và vẽ mạch in bằng phần mềm Altium Designer Lập trình cho PIC em 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 Em sử dụng phần mềm WinPic800 để nạp chương trình vàovi điều khiển PIC
Tuy nhiên vẫn còn một số mặt em chưa hoàn thiện và em có dự định pháttriển theo hướng sau:
Trang 291.Cải tiến khối giao tiếp với máy tính để đọc dữ liệu bằng cách ghép nối với máytính qua cổng nối tiếp RS-232 bằng cách ghép nối với thẻ nhớ MMC.
2.Chính vì sử dụng kết nối với thẻ MMC nên cần sử dụng rất nhiều bộ nhớ RAMcủa vi điều khiển nên cần thay thế PIC 16F877A bằng một vi điều khiển có bộ nhớRAM có dung lượng lớn hơn như PIC 18FX.
Trang 30
-PHỤ LỤC
Để thực hiện luận văn trên em đã phải tìm hiểu một số linh kiện bằng cáchđọc một datasheet của các linh kiện đó Dưới đây là datasheet của các linh kiện.
1 Tổng quan về vi điều khiển PIC 16F877A
1.1 Sơ đồ khối của PIC16F877A và bảng mô tả chức năng các chân củaPIC16F877A
Hình 1: PIC 16F877A
Trang 31Hình 2: Sơ đồ khối của PIC16F877A
Trang 32Bảng mô tả chức năng các chân của PIC16F877A
Pin NameDIPPin#
-Đầu ra của xung dao động thạch anh Nối với thạch anh hay cộng hưởng trong chếđộ dao động của thạch anh.Trong chế độ RC, ngõ ra của chân OSC2.
Ngõ vào của Master Clear(Reset) hoặc ngõ vào điện thế được lập trình Chân này cho phép tín hiệu Reset thiết bị tác động ở mức thấp.
PORTA là port vào rahai chiều RA0 có thểlàm ngõ vào tuơng tự thứ 0.
vào tuơng tự thứ 1
Trang 33RA2/AN2/VREF –21 vào tuơng tự 2 hoặc điện áp chuẩn tương tự âm.
RA3 có thể làm ngõ vào tuơng tự 3 hoặc điện áp chuẩn tương tự dương.
RA4 có thể làm ngõ vào xung clock cho bộ định thời Timer0.
vào tương tự thứ 4
PORTB là port hai chiều.
RB0 có thể làm chân ngắt ngoà
RB3 có thể làm ngõ vào của điện thế đượclập trình ở mức thấp.
Interrupt-on-change pin.
Interrupt-on-change pin.
Interrupt-on-change pin hoặc