Dựa vào kiến thức đã học về tín hiệu DSB, thực hiện tính toán và mô phỏng lại quá trình điều chế giải điều chế tín hiệu tín hiệu DSB có sóng mang là tín hiệu hình sin tần số 5000 Hz, tín hiệu cần điều chế là tín hiệu hình sin tần số 250 Hz, chon biên độ tín hiệu cần điều chế là 0.4. Việc tính toán và mô phỏng trên máy tính có thể thực hiện bằng phần mềm MATLAB và Simulink, thông qua việc nhập các lệnh tính toán và vẽ sơ đồ khối điều chế. Kết quả của quá trình mô phỏng này có thể dùng để kiểm tra với kết quả điều chế bằng Kit TMS320C5515 eZDSP USB Stick (viết tắt C5515).Bài báo cáo này gồm có bốn phần, phần tổng quan này sẽ trình bày sơ lược về tín hiệu DSB – SC và nêu ra mục tiêu đề tài hướng tới. Phần hai sẽ trình bày về cơ sở lý thuyết đã được học từ đó làm nền tảng cho việc thực hiện tính toán, mô phỏng điều chế và giải điều chế tín hiệu DSB bằng phần mềm MATLAB ở phần ba. Cuối cùng, phần bốn sẽ trình bày sơ đồ kết nối với kit C5515 cũng như lưu đồ giải thuật để tiến hành mô phỏng điều chế tín hiệu DSB trên kit C5515 và tiến hành kiểm tra lại bằng MATLAB để rút ra nhận xét.
MỤC LỤC LỜI MỞ ĐẦU BẢNG PHÂN CHIA CÔNG VIỆC DANH MỤC HÌNH ẢNH I TỔNG QUAN Điều chế tín hiệu DSB-SC Mục tiêu đề tài II CƠ SỞ LÝ THUYẾT Điều chế biên độ: AM – Amplitude Modulation Dãy phổ tín hiệu DSB Điều chế tín hiệu DSB Giải điều chế DSB 10 III TÍNH TOÁN VÀ MÔ PHỎNG ĐIỀU CHẾ – GIẢI ĐIỀU CHẾ TÍN HIỆU DSB 14 Tính toán lý thuyết 14 Mô phỏng điều chế giải điều chế tín hiệu DSB với SIMULINK 15 Mô phỏng điều chế giải điều chế tín hiệu DSB với code MATLAB 19 IV ĐIỀU CHẾ DSB VỚI KIT C5515 29 Kit TMS320C5515 eZDSP USB Stick 29 Sơ đồ điều chế DSB bằng C5515 30 Giải thuật điều chế DSB 32 Kết quả 33 Kiểm chứng bằng Matlab 35 KẾT LUẬN 38 TÀI LIỆU THAM KHẢO 39 PHỤ LỤC A: CÁC PHẦN MỀM PHỤ TRỢ 40 PHỤ LỤC B: CHI TIẾT TOÀN BỘ CODE C TRÊN KIT C5515 42 LỜI MỞ ĐẦU Điều chế tín hiệu là kỹ thuật quan trọng lĩnh vực truyền thông, viễn thông Một những kỹ thuật điều chế tín hiệu tương tự đầu tiên là kỹ thuật điều chế biên độ (AM – Amplitude Modulation) Kỹ thuật này được sử dụng nhiều lĩnh vực đàm thoại từ xa, truyền hình vô tuyến … DSB giải quyết khuyết điểm AM việc lãng phí công suất truyền tin Nhằm hoàn thành mục tiêu môn học cũng củng cố, bổ sung kiến thức về lĩnh vực điều chế tín hiệu, nhóm thực hiện đề tài “Điều chế tín hiệu DSB (Double Sideband Modulation) với tần sớ sóng mang 5kHz tần sớ tín hiệu điều chế là 250Hz” Nội dung báo cáo bao gờm phần tính tốn mơ phỏng điều chế tín hiệu DSB bằng Matlab với hai hình thức thơng qua code MATLAB SIMULINK Sau đó, thực hiện lập trình điều chế tín hiệu nhờ vào kit TMS320C5515 eZdsp USB Stick TI (Texas Instruments) sản xuất Cuối kiểm chứng lại kết quả điều chế từ kit bằng Matlab để rút kết luận Nhóm chân thành cảm ơn sự hỗ trợ giảng dạy thầy GS TS Lê Tiến Thường suốt thời gian qua Nhờ sự hỗ trợ về thiết bị cũng những kiến thức được thầy cung cấp, nhóm đã hoàn thành đề tài hạn và đạt được mục tiêu đề Nhưng thời gian có hạn, cũng kiến thức nhiều hạn chế, nhóm chắn khơng tránh khỏi những thiếu sót Nhóm rất mong nhận được sự góp ý từ thầy để bài báo cáo được hoàn thiện TP Hồ Chí Minh, ngày 10/12/2019 BẢNG PHÂN CHIA CƠNG VIỆC STT Sinh Viên Cơng việc Tìm hiểu lý thút về điều chế tín hiệu DSB Tiến hành mơ phỏng điều chế tín hiệu DSB LÂM MINH QUÂN MATLAB simulink Tìm hiểu về giải thuật code lập trình kit C5515 thơng qua phần mềm CCS Tìm hiểu lý thuyết tổng quan về tín hiệu DSB Tiến hành mơ phỏng giải điều chế tín hiệu NGUYỄN THỊ KIỀU TRINH DSB MATLAB simulink Tìm hiểu về giải thuật code lập trình kit C5515 thơng qua phần mềm CCS Tìm hiểu lý thuyết về giải điều chế tín hiệu DSB VÕ NGUYỄN GIA LUẬT Tiến hành mơ phỏng điều chế, giải điều chế tín hiệu DSB bằng code MATLAB Tìm hiểu về giải thuật code lập trình kit C5515 thơng qua phần mềm CCS DANH MỤC HÌNH ẢNH Hình 1: Mạch điều chế biên độ Hình 2: Sóng mang sóng tín hiệu DSB Hình 3a) Dãy phổ DSB Hình 3b) Dãy phổ AM Hình 4: Mạch điều chế DSB 10 Hình 5: Mạch điều chế DSB cân bằng 10 Hình 6: Coherent detection 11 Hình 7a: Sơ đờ điều chế và giải điều chế DSB 12 Hình 7b: Dạng sóng mô tả 12 Hình 7c: Phổ tín hiệu 12 Hình 8: Costas receiver 13 Hình 9: Sơ đồ mô phỏng điều chế DSB SIMULINK 15 Hình 10: Điều chỉnh thơng sớ khới tín hiệu carrier khới tín hiệu message 15 Hình 11: Kết quả mô phỏng điều chế DSB SIMULINK 16 Hình 12: Sơ đồ mô phỏng điều chế DSB bằng điều chế cân bằng SIMULINK 16 Hình 13: Kết quả mơ phỏng điều chế DSB bằng điều chế cân bằng SIMULINK 17 Hình 14: Sơ đồ mạch giải điều chế DSB mô phỏng bằng SIMULINK 18 Hình 15: Điều chỉnh thơng sớ tín hiệu từ dao động nội 18 Hình 16: Dạng sóng DSB dạng sóng thông tin sau được phục hồi lại 19 Hình 17: Mơ phỏng tín hiệu ngõ vào, tín hiệu sóng mang tín hiệu DSB-SC thực hiện bằng nhân 21 Hình 18: Phổ tần sớ tín hiệu ngõ vào, tín hiệu sóng mang tín hiệu DSB-SC thực hiện bằng nhân 22 Hình 19: Dạng sóng tín hiệu ngõ vào tín hiệu sóng mang 25 Hình 20: Dạng sóng tín hiệu điều chế AM ngõ tín hiệu DSB-SC thực hiện bằng điều chế cân bằng 25 Hình 21: Phổ tần sớ tín hiệu ngõ vào, tín hiệu sóng mang tín hiệu DSB-SC thực hiện bằng điều chế cân bằng 26 Hình 22: Phổ tần sớ tín hiệu V(f) mạch lọc thơng thấp 27 Hình 23: Phổ tần sớ tín hiệu sau lọc tín hiệu m(t) sau phục hời 28 Hình 24: Kit TMS320C5515 29 Hình 25: Sơ đồ kết nối kit C5515 với PC 30 Hình 26: Đầu chuyển cổng USB sang cổng Audio hãng UGREEN 31 Hình 27: Kết nới C5515 với máy tính 31 Hình 28: Giải thuật điều chế DSB bằng kit C5515 32 Hình 29: Tín hiệu cần điều chế sóng sin tần số 250 Hz 33 Hình 30: Kết quả hiển thị OLED lcd 34 Hình 31: Dạng sóng điều chế DSB 34 Hình 32: Phổ tần số tín hiệu DSB 35 Hình 33: Dạng sóng tín hiệu điều chế DSB kiểm chứng MATLAB 36 Hình 34: Phổ tần sớ tín hiệu điều chế DSB kiểm chứng MATLAB 37 Hình 35: Giao diện phần mềm CCSv4 40 Hình 36: Giao diện phần mềm Tone Generator 40 Hình 37a: Giao diện phần mềm Soundcard Oscilloscope 41 Hình 37b: Phần mềm MATLAB 41 Hình 38: Phần mềm Voice Recoder 42 I TỔNG QUAN Điều chế tín hiệu DSB-SC AM – Amplitude Modulation – là kỹ thuật điều chế tín hiệu được sử dụng phổ biến điện tử viễn thông, thường dùng để trùn tin qua sóng mang vơ tún Vì tín hiệu cần trùn có tần sớ thấp nên khơng thể truyền tải xa mà không bị tổn thất, nên phải dùng sóng mang có tần sớ cao nhiều lần để truyền tải tín hiệu Kỹ thuật này là thay đổi biên độ tín hiệu sóng mang theo biên độ tín hiệu thơng tin cần gửi đi, hay nói cách khác là điều chế sóng mang bằng biên độ theo tín hiệu mang tin Đây là những kỹ thuật điều chế đầu tiên được sử dụng để truyền giọng nói qua sóng vô tuyến DSB-SC – Double Sideband-Suppressed Carrier – là tín hiệu AM có thành phần sóng mang không mang thông tin bị loại bỏ Nhờ đó, việc truyền thông tin hiệu quả AM DSB-SC là dạng đặc biệt DSB-RC – Double Sideband-Reduced Carrier, đó thành phần sóng mang bị giảm xuống dưới mức xác định Tín hiệu DSB được sử dụng đàm, truyền hình vô tuyến … Mục tiêu đề tài Dựa vào kiến thức đã học về tín hiệu DSB, thực hiện tính tốn mơ phỏng lại q trình điều chế - giải điều chế tín hiệu tín hiệu DSB có sóng mang tín hiệu hình sin tần sớ 5000 Hz, tín hiệu cần điều chế tín hiệu hình sin tần sớ 250 Hz, chon biên độ tín hiệu cần điều chế 0.4 Việc tính toán và mô phỏng máy tính có thể thực hiện bằng phần mềm MATLAB và Simulink, thông qua việc nhập các lệnh tính toán và vẽ sơ đồ khối điều chế Kết quả quá trình mô phỏng này có thể dùng để kiểm tra với kết quả điều chế bằng Kit TMS320C5515 eZDSP USB Stick (viết tắt C5515) Bài báo cáo gờm có bớn phần, phần tổng quan sẽ trình bày sơ lược về tín hiệu DSB – SC nêu mục tiêu đề tài hướng tới Phần hai sẽ trình bày về sở lý thuyết đã được học từ đó làm nền tảng cho việc thực hiện tính tốn, mơ phỏng điều chế giải điều chế tín hiệu DSB bằng phần mềm MATLAB phần ba Ći cùng, phần bớn sẽ trình bày sơ đồ kết nối với kit C5515 cũng lưu đồ giải thuật để tiến hành mơ phỏng điều chế tín hiệu DSB kit C5515 tiến hành kiểm tra lại bằng MATLAB để rút nhận xét II CƠ SỞ LÝ THUYẾT: Điều chế biên độ: AM – Amplitude Modulation Khi điều chế biên độ, thành phần DC được thêm vào tín hiệu thơng tin x(t) trước nhân với sóng mang để tạo phần tín hiệu sóng mang sau điều chế nhằm đơn giản hóa q trình giải điều chế phía sau Hình 1: Mạch điều chế biên độ Tín hiệu đầu điều chế biên độ viết dưới dạng: [𝑐1 + 𝑐2 𝑥(𝑡)]𝐴𝑐 cos(𝜔𝑐 𝑡) Đặt p = max | 𝑥 (𝑡) | chuẩn hóa tín hiệu thơng tin ta có 𝑥𝑚 (𝑡) = 𝑥(𝑡)/𝑝 ≤ Viết lại dạng tín hiệu đầu ra: Hay [𝑐1 + 𝑐2 𝑝𝑥𝑚 (𝑡)]𝐴𝑐 cos(𝜔𝑐 𝑡) với 𝜇 = 𝑐2 𝑝/𝑐1 hệ số điều chế 𝑐1[1 + 𝜇𝑥𝑚 (𝑡)]𝐴𝑐 cos(𝜔𝑐 𝑡) Để đơn giản, khảo sát, ta thường bỏ qua số hạng 𝑐1 ta có tín hiệu AM: 𝑥𝑐 (𝑡) = 𝑥𝑐 (𝑡) = [1 + 𝜇𝑥𝑚 (𝑡)]𝐴𝑐 cos(𝜔𝑐 𝑡) 𝐴𝑐 cos(𝜔𝑐 𝑡) + phần tín hiệu sóng mang = 𝐴𝑐 cos(𝜔𝑐 𝑡) + 𝜇𝐴𝑐 𝐴𝑚 cos(𝜔𝑐 𝑡) cos(𝜔𝑚 𝑡) phần tín hiệu thơng tin cần trùn 𝜇𝐴𝑐 𝐴𝑚 𝜇𝐴𝑐 𝐴𝑚 cos[(𝜔𝑐 + 𝜔𝑚 )𝑡] + cos[(𝜔𝑐 − 𝜔𝑚 )𝑡] 2 Cơng śt trung bình tín hiệu AM là: 2( ) < 𝑥𝑐2 (𝑡) > =< 𝐴2𝑐 𝑐𝑜𝑠 (𝜔𝑡) > + < 𝜇2 𝐴2𝑐 𝑥𝑚 𝑡 𝑐𝑜𝑠 (𝜔𝑡 ) > Suy ra: 2 𝐴 + 𝐴 𝜇 𝑆𝑥 𝑐 𝑐 Ta thấy rằng thành phần tín hiệu sau điều chế chứa thành phần 𝐴𝑐 cos(𝜔𝑐 𝑡) 𝑆𝑇 = 𝑃𝐶 + 𝑃𝑠𝑏 = không mang thông tin cần truyền đi, nên gây phần cơng śt lãng phí là: 𝑃𝐶 = 𝐴2𝑐 gây tổn hao lương ít nhất 50%, gây lãng phí lượng việc truyền thông tin xa DSB – Double Sideband– là tín hiệu AM có thành phần sóng mang không mang thông tin bị loại bỏ Nhờ đó, việc truyền thông tin hiệu quả AM tốn ít lượng Tín hiệu DSB được sử dụng đàm, truyền hình vô tuyến … Việc công suất sóng mang lãng phí điều chế biên độ AM được loại bỏ bằng cách cho µ = công thức điều chế AM và triệt tiêu thành phần tần sớ sóng mang khơng điều chế Kết quả sóng điều chế trở thành: 𝑥𝑐 (𝑡) = 𝐴𝑐 𝑥𝑚 (𝑡) cos(𝜔𝑐 𝑡) Cơng śt trung bình tín hiệu DSB là: < 𝑥𝑐2 (𝑡) > =< 𝐴2𝑐 𝑥𝑚 (𝑡) 𝑐𝑜𝑠 (𝜔𝑐 𝑡) > Suy ra: 𝑆𝑇 = 2𝑃𝑠𝑏 = 𝐴 𝑆 𝑐 𝑥 Ta nhận thấy tín hiệu DSB tận dụng tốt tổng công suất truyền so với tín hiệu AM Kỹ thuật điều chế gọi là điều chế DSB - Double Sideband Modulation, là dạng điều chế AM thành phần sóng không mang thông tin đã bị loại bỏ, nhờ đó việc trùn thơng tin được hiệu quả Hình 2: Sóng mang sóng tín hiệu DSB Dãy phổ tín hiệu DSB Để tìm phổ tín hiệu xc(t) miền tần số, ta thực hiện phép biến đổi fourier: 𝑥𝑐 (𝑡) = 𝐴𝑐 𝑥𝑚 (𝑡) cos(𝜔𝑐 𝑡) 1 2 𝑋𝑐 (𝑓 ) = 𝐴𝑐 𝑋𝑚 (𝑓 − 𝑓𝑐 ) + 𝐴𝐶 𝑋𝑚 (𝑓 + 𝑓𝑐 ) Với 𝑥𝑚 (𝑡) = 𝐴𝑚 cos(𝜔𝑚 𝑡) (𝑓𝑐 ≫ 𝑓𝑚 ) 𝑋𝑚 (𝑓 ) = 1 𝐴𝑚 𝛿(𝑓 − 𝑓𝑚 ) + 𝐴𝑚 𝛿(𝑓 + 𝑓𝑚 ) 2 1 4 𝑋𝑐 (𝑓 ) = 𝐴𝑐 𝐴𝑚 𝛿 (𝑓 − 𝑓𝑐 − 𝑓𝑚 ) + 𝐴𝑐 𝐴𝑚 𝛿(𝑓 − 𝑓𝑐 + 𝑓𝑚 ) 1 + 𝐴𝑐 𝐴𝑚 𝛿(𝑓 + 𝑓𝑐 − 𝑓𝑚 ) + 𝐴𝑐 𝐴𝑚 𝛿(𝑓 + 𝑓𝑐 + 𝑓𝑚 ) 4 Từ đó có thể thấy phổ tín hiệu DSB gồm dải tần vùng tần số 𝑓𝑐 −𝑓𝑐 khơng có phổ tín hiệu sóng mang điều chế, đó nên băng thông giữ nguyên BW = 2fm Dãy phổ DSB được thể hiện hình 1.1a so với dãy phổ AM hình 1.1b với thành phần sóng mang fc đã bị triệt tiêu Hình 3: a) Dãy phở DSB b) Dãy phở AM Điều chế tín hiệu DSB Ngun tắc điều chế tín hiệu DSB loại bỏ phần sóng mang phổ bằng cách loại bỏ phần bù DC được thêm vào tín hiệu thơng tin trước nhân với tín hiệu sóng mang Hình 4: Mạch điều chế DSB Khi đó, tín hiệu đầu mạch điều chế còn: 𝑥𝑐 (𝑡) = 𝑚(𝑡)𝐴𝑐 cos(𝜔𝑐 𝑡) Cụ thể hơn, có thể điều chế tín hiệu DSB bằng mạch điều chế cân bằng hình 5, tạo nên từ hai điều chế AM, với mức độ triệt tiêu sóng mang cao Hình 5: Mạch điều chế DSB cân bằng Lưu ý rằng nếu tín hiệu được điều chế có thành phần DC thì thành phần này sẽ không bị loại bỏ mà nằm thành phần fc tín hiệu sau điều chế Giải điều chế DSB a Tách sóng tương tác cho DSB (Coherent Detection): Tín hiệu DSB được giải điều chế bằng cách nhân tín hiệu đã điều chế với tạo dao động cục sau đó được gửi đến lọc thông thấp Tần số pha dao động cục rất quan trọng Tần sớ pha phải phù hợp với tần sớ pha sóng mang 10 TÀI LIỆU THAM KHẢO [1] GS TS Lê Tiến Thường Giáo trình môn điều biến tương tự và điều biến số [2] A B Carlson, P B Crilly, J C Rutledge Communiacation Systems, pp 152-157 [3] MATLAB Tutorial #5 EE 460 – Introduction to Communication Systems: DSB Modulation and Demodulation [4] Sourangsu Banerji (2013) Analog Modulation Technique: DSB - SC MathWorks [5] Spectrum Digital (2010) TMS320C5515 eZdsp™ USB Stick [6] Texas Instruments (2017) TMS320C55x DSP Library Programmer’s Reference [7] Texas Instruments (2010) TMS320C5515 eZdsp™ USB Stick Development Tool [8] Texas Instruments (2010) Practical Audio Experiments using the TMS320C5505 USB Stick 39 PHỤ LỤC A: CÁC PHẦN MỀM PHỤ TRỢ Phần mềm CCS version 4: hãng Texas phát hành để phát triển ứng dụng cho xử lý nhúng Texas (TI) Hình 35: Giao diện phần mềm CCSv4 Phần mềm tạo sóng Tone Generator: phần mềm dùng để tạo dạng sóng với tần sớ đa dạng, công ty phần mềm NCH Software Úc phát triển Hình 36: Giao diện phần mềm Tone Generator 40 Phần mềm SoundCard Oscilloscope: phần mềm có bản quyền thuộc về Christian Zeitnitz Có thể dùng để tạo sóng cũng hiển thị sóng, nhận dữ liệu từ Soundcard PC với độ phân giải 44,1kHz 16 bit a) b) Hình 37: a) Giao diện phần mềm Soundcard Oscilloscope b)Phần mềm MẢTLAB Phần mêm MATLAB R2016a: phần mềm cung cấp mơi trường tính tốn sớ lập trình, cơng ty MathWorks thiết kế MATLAB cho phép tính tốn sớ với ma trận, vẽ đờ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo giao diện người dùng liên kết với những chương trình máy tính viết nhiều ngơn ngữ lập trình khác Phần mềm Voice Recorder: phần mềm dùng để ghi âm được tích hợp sẵn máy PC sử dụng hệ điều hành windows 10 41 Hình 38: Phần mềm Voice Recoder PHỤ LỤC B: Chi tiết toàn code C kit C5515: Nội dung chương trình chính main.c: #include "stdio.h" #include "usbstk5505.h" #include "aic3204.h" #include "PLL.h" #include "sinewaves.h" Int16 left_input; Int16 right_input; Int16 left_output; Int16 right_output; #define SAMPLES_PER_SECOND 48000 #define GAIN_IN_dB #define Amp 0.4 unsigned long int i = 0; static int DSB( int input1, int fc) { signed long result; Int16 carrierwave; carrierwave = generate_sinewave(fc, 32767); // fc sinewave of amplitude //1.000=32767 result = Amp * ( ( (long) input1 * carrierwave) >> 15); return ( (int) result); } /* * * * * main( ) * 42 * * * */ extern Int16 oled_test(); void main( void ) { /* Initialize BSL */ USBSTK5505_init( ); /* Initialize the Phase Locked Loop in EEPROM */ pll_frequency_setup(100); /* Initialise hardware interface and I2C for code */ aic3204_hardware_init(); /* Initialise the AIC3204 codec */ aic3204_init(); /* Set sampling frequency in Hz and ADC gain in dB */ set_sampling_frequency_and_gain(SAMPLES_PER_SECOND, GAIN_IN_dB); oled_test(); printf ("\n\tANALOG \\ DIGITAL MODULATION\n"); printf ("\n\tPROF DR THUONG LE - TIEN\n\n"); printf("\n\tGroup 5:\n\n"); printf("\n\tLAM MINH QUAN - 1612808\n\n"); printf("\n\tVO NGUYEN GIA LUAT - 1611944\n\n"); printf("\n\tNGUYEN THI KIEU TRINH - 1613703\n\n"); printf("\n\tDSB MODULATION\n\n"); printf( "Frequency of the carrier wave: fc = 5kHz, frequency of the sinusoidal message: fm = 250Hz.\n\n"); asm(" bclr XF"); for ( i = ; i < SAMPLES_PER_SECOND * 600L ;i++ ) { aic3204_codec_read(&left_input, &right_input); // Configured for one // interrupt per two channels left_output = DSB(left_input, 2500); right_output = DSB(right_input, 2500); aic3204_codec_write(left_output, right_output); } /* Disable I2S and put codec into reset */ aic3204_disable(); printf( "\n***THE END***\n" ); SW_BREAKPOINT; } 43 Nội dung chương trình sinewaves.c để tạo sóng mang hình sin: #include "tms320.h" #include "dsplib.h" signed int generate_sinewave(signed short int frequency, signed short int amplitude) { short int sinusoid; signed long result; static short int count = 0; /* Multiply frequency by scaling factor of 32767 / 48000 */ result = ( (long)frequency * 22368 ) >> 14 ; if ( result > 32767) { result = 32767; /* Maximum value for highest frequency */ } else if ( == result) { result = 1; /* Minimum value for lowest fequency */ } else if ( result < -32767) { result = -32767; } count += (short int) result; /* Obtain sine of input */ sine ( &count, &sinusoid, 1); if ( amplitude > 32767 ) { amplitude = 32767; /* Range limit amplitude */ } /* Scale sine wave to have maximum value set by amplitude */ result = ( (long) sinusoid * amplitude ) >> 15; return ( (signed int ) result ); } Nội dung chương trình oled_test.c để hiển thị tên nhóm lên OLED kit C5515: #include"usbstk5515.h" #include"usbstk5515_i2c.h" #include"usbstk5515_gpio.h" #include"lcd.h" 44 #define OSD9616_I2C_ADDR 0x3C // OSD9616 I2C address /* * * Int16 OSD9616_send( Uint16 comdat, Uint16 data ) * * Sends bytes of data to the OSD9616 * * */ Int16 OSD9616_send( Uint16 comdat, Uint16 data ) { Uint8 cmd[2]; cmd[0] = comdat & 0x00FF; // Specifies whether data is Command - or Data cmd[1] = data; // Command / Data return USBSTK5515_I2C_write( OSD9616_I2C_ADDR, cmd, ); } /* * * Int16 OSD9616_multiSend( Uint16 comdat, Uint16 data ) * * Sends multiple bytes of data to the OSD9616 * * */ Int16 OSD9616_multiSend( Uint8* data, Uint16 len ) { Uint16 x; Uint8 cmd[10]; for(x=0;x