Professional Documents
Culture Documents
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
CHUYÊN NGÀNH: ĐIỆN TỬ - TRUYỀN THÔNG
HỆ ĐẠI HỌC CHÍNH QUY
NIÊN KHÓA: 2013-2018
Đề tài:
NGHIÊN CỨU VÀ THỰC HIỆN MÁY TỔNG HỢP TẦN
SỐ DẢI TẦN FM
Mã Số Đề Tài: 17 – N13DCVT119
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
CHUYÊN NGÀNH: ĐIỆN TỬ - TRUYỀN THÔNG
HỆ ĐẠI HỌC CHÍNH QUY
NIÊN KHÓA: 2013-2018
Đề tài:
NGHIÊN CỨU VÀ THỰC HIỆN MÁY TỔNG HỢP TẦN
SỐ DẢI TẦN FM
Mã Số Đề Tài: 17 – N13DCVT119
NỘI DUNG:
- CHƯƠNG I: Tổng Hợp Tần Số
- CHƯƠNG II: Tổng Hợp Tần số PLL
- CHƯƠNG III: Thiết Kế, Thực Hiện Và Đo Đạc
i
KẾT LUẬN .............................................................................................................. 40
PHỤ LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
TÀI LIỆU THAM KHẢO
ii
DANH MỤC HÌNH ẢNH
iii
LỜI MỞ ĐẦU
LỜI MỞ ĐẦU
Ngày nay cùng với sự phát triển mạnh mẽ của thông tin vô tuyến thì thiết bị vô
tuyến điện đã đóng một vai trò rất quan trọng trong việc truyền tải tin tức đi xa. Thiết
bị thu phát được sử dụng rất rộng rãi trong nhiều lĩnh vực thông tin như phát thanh
truyền hình, thông tin di động, thông tin quân sự…
Do chi phí thấp, tiêu thụ năng lượng thấp và ổn định PLL đã trở thành một thiết bị
phổ biến trong các hệ thống truyền thông hiện đại đặc biệt là trong truyền dẫn không
dây.
Để nghiên cứu kĩ hơn và thiết kế bộ tổng hợp tần số. Vì lí do này, em đã chọn
nghiên cứu đề tài “Nghiên cứu và thực hiện máy tổng hợp tần số dải tần FM”.
Nội dung bài báo cáo gồm có 3 chương:
Chương I. Tổng Hợp Tần Số
Chương II. Tổng Hợp Tần số PLL
Chương III. Thiết Kế, Thực Hiện Và Đo Đạc
Em xin gửi lời cảm ơn đến các thầy trong khoa Viễn Thông II đã tạo điều kiện giúp
đỡ em trong quá trình học tập. Và đăc biệt, em xin bày tỏ sự biết ơn sâu sắc đến thầy
Nguyễn Tấn Nhân, người đã tận tình hướng dẫn em trong quá trình nghiên cứu, xây
dựng và hoàn thành đồ án.
Dù đã có nhiều cố gắng nhưng đề tài không thể tránh khỏi nhiều thiếu xót. Vì vậy,
em mong nhận được sự phản hồi, đóng góp từ các Thầy. Em xin chân thành cảm ơn!
Bộ chia
cụ đến các ứng dụng như truyền thông vệ tinh, radar, hình ảnh y tế và điện thoại di
động Và đài phát thanh nghiệp dư.
Nó cung cấp tốc độ chuyển đổi nhanh, độ phân giải cao (bước nhảy của bộ tổng
hợp), kích thước nhỏ và điện năng thấp, kinh tế tốt, và độ tin cậy và producibilty thiết
kế kỹ thuật số. Cũng vì tín hiệu được điều khiển bằng phương pháp số, nên dễ dàng
thao tác và đạt được các tính không đạt được bằng các kỹ thuật tương tự và thường
giao tiếp với các máy tính để kiểm soát bộ tổng hợp.
Một hạn chế lớn trong phương pháp này là không có khả năng mở rộng phạm vi
tần số tổng hợp GHz; Hy vọng điều này sẽ đạt được trong tương lai. Fractional-N PLL
tương tự như DDS ở hầu hết các khía cạnh và hoạt động như một 'DDS' bên trong kiến
trúc PLL.
1.2. Thông số của bộ tổng hợp tần số
Giống như bất kỳ sản phẩm kỹ thuật nào khác, một bộ tổng hợp tần số (FS) cần đáp
ứng các thông số nhất định.
Tầm quan trọng của thông số kỹ thuật sẽ phụ thuộc vào khu vực mà bộ tổng hợp
được áp dụng như Đối với đài phát thanh thì phải chính xác vừa phải, cực kỳ đáng tin
cậy, rất nhỏ và không tốn kém, trong khi FS được sử dụng trong chụp cộng hưởng từ
(MRI) phải rất chính xác, phải có độ tinh khiết phổ rất cao, phải có khả năng nhảy tần
số rất nhanh và cần các khả năng điều chế khác nhau.
Cũng phải xem xét đến môi trường nơi sử dụng thiết bị. Tất cả điều này làm cho nó
cần một nhà thiết kế để so sánh các chi tiết kỹ thuật với giải pháp kinh tế và thực tiễn
tốt nhất.
Các đặc điểm chung bao gồm:
Phạm vi tần số
Nó chỉ định dải tần số đầu ra bao gồm tần số thấp nhất và cao nhất có thể thu được
từ FS.
Độ phân giải tần số.
Nó còn được gọi là bước nhảy; Nó chỉ định tần số tối thiểu của gia số tần số.
Nhiễu pha
Mỗi tín hiệu chúng ta tạo ra đều có nguồn gốc từ một bộ dao động mà thường là
các bộ khuếch đại hồi tiếp tích cực với một mạch cộng hưởng trong đường dẫn hồi
tiếp của chúng.
Vì nhiễu luôn tồn tại trong mạch, khi bật lên, nhiễu này được khuếch đại trong
dải cộng hưởng cho đến khi đạt được mức độ bão hòa. Do đó, chất lượng của tín
hiệu thường được xác định bởi cộng hưởng Q.
Tham số này xác định pha của đầu ra so với đầu ra lý tưởng. Nhiễu pha là một
tham số chính và có thể được biểu diễn bằng nhiều cách khác nhau: đo nhiễu FM
ở hertz, nhiễu trung bình của gốc (RMS) hoặc nhiễu pha theo độ RMS, đo tạp
nhiễu tích hợp trong một băng thông nhất định xung quanh sóng mang nhưng
không bao gồm ± Hz xung quanh.
Tốc độ chuyển đổi
Định nghĩa tốc độ mà FS có thể nhảy từ tần số này sang tần số khác. Chúng ta
có nhiều định nghĩa khác nhau cho tham số này, bao gồm thời gian cần thiết để giải
quyết trong một tần số xác định (± x Hz) từ tần số mong muốn mới, thời gian cần
pha pha đầu ra để giải quyết thành 0.1 radian của pha cuối.
Hài
Tham số này xác định mức độ hài của tần số đầu ra và phụ thuộc vào nhiều
thành phần bên trong FS. Nó được biểu diễn bằng dB tương đối so với công suất ra
của tần số đầu ra.
Tín hiệu giả.
Nó xác định mức độ của bất kỳ phổ đầu ra rời rạc không liên quan đến các sóng
mang. Hài hầu hết không được xem là giả mạo, nhưng vì phép nhân được xem là
giả mạo.
Tham số này được biểu diễn bằng decibel so với công suất đầu ra của sóng
mang. Không giống như nhiễu, các tín hiệu giả mạo chỉ phân biệt phổ không liên
quan đến sóng mang, có nghĩa là chúng biểu hiện tuần hoàn.
Điều khiển và giao tiếp
Phương pháp điều khiển và giao tiếp với FS. Việc điều khiển có thể theo mã
(BCD) hoặc nhị phân; Có thể được truyền song song hoặc thông qua một bus
(thường là 8-bit bus) hoặc nối tiếp.
Một số FSs sử dụng logic tích cực, một số khác sử dụng tiêu cực; Và trong
nhiều công cụ chung. GPIB hoặc IEEE-488 hiện là giao tiếp chuẩn. VXI là tiêu
chuẩn mới cho thiết bị.
Hầu hết các đơn chip tổng hợp, đặc biệt là PLL sử dụng rộng rãi của giao tiếp
nối tiếp để cho phép các gói nhỏ và chức năng tích hợp cao.
Công suất đầu ra
Mức công suất ra thường được biểu diễn bằng decibel. Công suất đầu ra có thể
là cố định +10dBm, hoặc có thể là một phạm vi -120 đến 15 dBm. Đặc điểm kỹ
thuật này cũng sẽ bao gồm độ phân giải đầu ra, ví dụ 1dB hoặc 0.1dB.
Độ phẳng đầu ra
Nó chỉ định độ phẳng của công suất ra và được đo bằng decibel. Ví dụ; Công
suất đầu ra được quy định 10dB ± 1dB, trong đó dB có nghĩa là decibel trên một
millwatt (mW).
Trở kháng đầu ra
Thông số này chỉ định trở kháng đầu ra của FS và thường là trở kháng tải được
đề nghị. Trong hầu hết các thiết bị tần số và tần số vô tuyến, đây là 50 ohms (Ώ).
Trong video thường là 75Ώ và trong thiết bị âm thanh 600Ώ.
Tiêu chuẩn tham khảo
Tất cả các bộ tổng hợp sử dụng đầu vào dựa trên thời gian tham chiếu, điều này
chỉ định tần số tham chiếu (thường là 5 hoặc 10MHz, nhưng có nhiều khác) và các
thông số như độ ổn định, nhiễu pha, tín hiệu giả và mức công suất.
Thông số phụ.
Bao gồm các thông số như kích thước, yêu cầu cung cấp điện, yếu tố môi
trường, chất lượng và độ tin cậy.
Các thông số quan trọng nhất là:
Nhiễu pha
Mức tín hiệu giả
Khoảng tần số và bước nhảy
Thời gian đáp ứng
Kích thước, chi phí và công suất
Dividers
Dò pha EXOR
Dải Giữ
Đây là dải tần số, trong đó một PLL có thể duy trì khóa. PLL khóa mãi mãi khi
tần số của tín hiệu đầu vào vượt quá phạm vi giữ. Tham số này quan tâm nhiều hơn
về mặt học thuật. Nó thu được bằng cách tính toán tần số mà lỗi pha ở mức tối đa.
Dải kéo
Đây là giới hạn động cho hoạt động ổn định của một PLL. Nếu tần số bị lệch
khỏi tần số khóa trong phạm vi này, PLL thường sẽ khóa lại, nhưng quá trình có
thể khá chậm.
Dải đẩy
Đây là phạm vi trong đó một PLL sẽ luôn luôn bị khóa, nhưng quá trình có thể
được khá chậm.
2.5. Tổng hợp N nguyên
Fr Loop N*Fr
PD VCO
Filter
Dividers
/N
Dividers
/N
Dividers Prescaler
/N /V
In
Control 2 Prescaler
Dividers Add + 1 V/V+1
/N1
Out
LOAD
Dividers
/N2
Với ÷ N2 truy cập do đó sẽ đếm xuống 0 khi VCO đã tạo ra xung N2 (V +1). Vào
thời điểm đó bộ đếm ÷ N1 đã giảm xuống theo số lượng N2, tức là nội dung của nó là
N1-N2. Các yếu tố tỷ lệ của chia trước kép bây giờ chuyển sang giá trị V. VCO sẽ
phải tạo thêm (N1-N2) xung V cho đến khi bộ đếm ÷ N1 sẽ bước đến 0. Khi nội dung
của N1 trở thành 0, cả hai N1 và các bộ đếm N2 được nạp lại các giá trị đặt trước, và
các chu kỳ được lặp lại.
Có một cách khác, mở rộng phạm vi tần số cao của bộ tổng hợp tần số nhưng vẫn
cho phép tổng hợp tần số thấp; Và là bộ chia trước 4 modulus . Nó cung cấp bốn yếu
tố điều chỉnh khác nhau, và hai tín hiệu điều khiển được yêu cầu để chọn một trong
bốn yếu tố chia có sẵn.
Điều này mở rộng dải tần số cao trong khi cho phép tần số thấp hơn so với những
gì có được từ một bộ tổng hợp với prescaler kép mô đun. Chúng ta có một mạch điện
bên trong sản xuất 100.101 và 110.111 điều khiển bởi hai tín hiệu điều khiển.
Đầu tiên chúng ta có cả hai 100 đang được sử dụng, khi tín hiệu điều khiển đầu tiên
ở trạng thái cao thay đổi sang 101, nó sẽ trở thành 110 khi một tín hiệu khác ở trạng
thái cao và cho tất cả ở trạng thái cao, chúng ta có 111. Bây giờ chúng ta có ba quầy
lập trình, trong hệ thống ÷ N1, ÷ N2 và ÷ N3.
Colpitts này sử dụng kết nối back-to-back của hai diode varicap 1SV101 để thay vì
một diode varicap duy nhất. Kết nối này cho phép điện dung thấp hơn ở điện áp cao,
trong khi duy trì tỷ lệ điều chỉnh của một diode varicap duy nhất. Kết nối diode
varicap back-to-back cũng giúp giảm sự biến dạng và ảnh hưởng của điện áp viền.
Các điện dung hồi tiếp Colpitts C1, C2 được tối ưu hóa để cung cấp phản ứng điện
phẳng trong phạm vi điều chỉnh rộng. Các giá trị này cũng có thể được tối ưu hóa lại
cho nhiễu pha nếu cần thiết.
Mạch rất nhạy cảm với sự lựa chọn bóng bán dẫn (phạm vi điều chỉnh và độ ổn
định) do yêu cầu băng thông rộng.
DC bias được cung cấp thông qua các điện trở R3 và R4, có thể ảnh hưởng đến
nhiễu pha, nhưng cho phép loại trừ các cuộn cảm RF. Điều này làm giảm chi phí và
khả năng cộng hưởng ký sinh trùng là nguyên nhân phổ biến của đáp ứng giả mạo và
sự mất ổn định tần số.
3.1.1.2. Lọc vòng
Hình 3.2: Tổng hợp tần số PLL MC145170 sử dụng lọc vòng opamp NE5532
Để minh hoạ thiết kế với bộ so pha, đầu ra φR và φV được sử dụng. Điều này đòi
sử dụng bộ lọc tích cực.
(3.1)
(3.2)
(3.3)
(3.4)
Và
(3.5)
Dải điện áp điều khiển trên đầu vào cho VCO được chọn là 1.4 đến 10.4 V.
Tần số trung bình = (88 + 108) / 2 = 98 MHz. Vì vậy, N = 980.
Chọn C1 là 47000 pF, R1 được tính như sau:
(3.6)
(3.7)
Giá trị của Cc được chọn sao cho tần số góc được thêm vào không ảnh hưởng đáng
kể đến băng thông ban đầu ωB.
Nguyên tắc của giá trị ban đầu là Cc = 4 / (R1 ωRC), trong đó ωRC là tần số cắt
của bộ lọc. Một giá trị tốt là chọn ωRC là 10 x ωB, để không ảnh hưởng đáng kể đến
bộ lọc ban đầu.
(3.8)
(3.9)
(3.10)
char C;
char Data[5],fs[5];
int cs,mode,y,tmpi,Index=0;
int1 Finish=0, aState, aLastState;
unsigned long long ft,f1,f2,tmp;
}
output_low(PLL_CK);
delay_ms(50);
output_low(PLL_DATA);
delay_ms(50);
output_high(PIN_D3);
delay_ms(200);
}
// Print frequency up LCD
void FtoLcd()
{
if(ft <= 99900) tmpi = 2;
if(ft > 99900) tmpi = 3;
if(tmpi == 2)
{
tmp = ft/10000;
fs[0] = tmp+'0';
tmp = (ft%10000)/1000;
fs[1] = tmp+'0';
fs[2] = '.';
tmp = ((ft%10000)%1000)/100;
fs[3] = tmp+'0';
lcd_gotoxy(6,2);
printf(lcd_putc,"%s",fs);
}
if(tmpi == 3)
{
tmp = ft/100000;
fs[0] = tmp+'0';
tmp = (ft%100000)/10000;
fs[1] = tmp+'0';
tmp = ((ft%100000)%10000)/1000;
fs[2] = tmp+'0';
fs[3] = '.';
tmp = (((ft%100000)%10000)%1000)/100;
fs[4] = tmp+'0';
lcd_gotoxy(5,2);
printf(lcd_putc,"%s",fs);
}
lcd_gotoxy(10,2);
printf(lcd_putc,"MHz ");
}
// scan encoder
void scanen()
{
aState = input(PIN_D5); // Reads the "current" state of the outputA
// If the previous and the current state of the outputA are different, that means a
Pulse has occured
if (aState != aLastState)
{
// If the outputB state is different to the outputA state, that means the encoder is
rotating clockwise
if (input(PIN_D6) != aState)
y = 1;
else
y = -1;
}
else y=0;
aLastState = aState; // Updates the previous state of the outputA with the current
state
}
void main()
{
output_high(PLL_EN);
output_low(PLL_CK);
output_low(PLL_DATA);
aLastState = input(PIN_D5);
y=0;
// Init lcd
lcd_init();
delay_ms(100);
lcd_gotoxy(2,1);
printf(lcd_putc,"PLL FREQUENCY");
lcd_gotoxy(3,2);
printf(lcd_putc,"SYNTHESIZER");
// Init PLL
// reset sequence
delay_ms(100);
for(tmp=0;tmp<=5;tmp++)
{
delay_ms(50);
output_high(PLL_CK);
delay_ms(50);
output_low(PLL_CK);
}
delay_ms(100);
sendframe(5,2);
delay_ms(300);
if(f1 == 255)
{
ft = 88000;
}
else
{
ft = (f1*1000)+(f2*100);
}
delay_ms(1000);
lcd_putc('\f');
lcd_gotoxy(3,1);
printf(lcd_putc,"WAITING...");
// C Register access and format
sendframe(8,51); //send to PLL
// Reference divider 6500 ~> 100Khz (6.5Mhz/100khz)
sendframe(24,65); //send to PLL
// send block programmable counter to PLL
// programmable counter
tmp = ft/100;
sendframe(16,tmp); //send to PLL
delay_ms(100);
while(input(PIN_D0) == 0);//waiting Looked (LD ~ H)
// print ft up LCD
lcd_putc('\f');
lcd_gotoxy(1,1);
printf(lcd_putc,"FREQUENCY:(LOCK)");
FtoLcd();
while(TRUE)
{
if(input(PIN_D7)==0) //press OK 2s
{
delay_ms(2000);
if(input(PIN_D7) == 0)
{
tmp=0;
if(ft <= 99900) cs = 2;
if(ft > 99900) cs = 1;
mode = 1;
do //only exit when press OK and Current mode is 1
{
if(tmp != ft) // if value ft change
{
lcd_putc('\f');
lcd_gotoxy(1,1);
printf(lcd_putc,"Select Frequency");
if(ft <= 99900) tmpi = 2;
if(ft > 99900) tmpi = 3;
FtoLcd();
lcd_gotoxy(cs+4,2);
while(input(PIN_D7)==0);
tmp=ft;
}
switch(mode) // ///////// /////////
{ // cs ~ 0123456 //
case 1: //mode 1 (select number) // 138.0Mhz
// gotoxy = cs+4
{ lcd_putc('\k'); // 12345678910 //
scanen(); // ///////// /////////
if(y==-1) //move cursor Left
{
cs--;
if(cs==1 && tmpi == 2) cs = 5;
if(cs==5) ft=ft+100;
if(cs==3) ft=ft+1000;
if(cs==2) ft=ft+10000;
delay_ms(10);
}
if(y==-1) //down value
{
if(cs==5) ft=ft-100;
if(cs==3) ft=ft-1000;
if(cs==2) ft=ft-10000;
delay_ms(10);
}
// Max/Min Frequency
if(ft>108000||ft<88000)
{
if(ft>108000) ft=108000;
if(ft<88000) ft=88000;
}
if(input(PIN_D7)==0) //press Enter
{ delay_ms(40);
if(input(PIN_D7)==0)
{
while(input(PIN_D7)==0);
mode = 1; // to mode 1
}
}
break;
}
}
}
while(exitset()==1||mode==2); //press Enter
lcd_putc('\o');
// save ft to EEPROM
f1 = ft/1000;
f2 = (ft%1000)/100;
write_eeprom(0x02, f1);
write_eeprom(0x50, f2);
// send block programmable counter to PLL
lcd_putc('\f');
lcd_gotoxy(3,1);
printf(lcd_putc,"WAITING...");
// programmable counter
tmp = ft/100;
sendframe(16,tmp); //send to PLL
delay_ms(100);
while(input(PIN_D0) == 0);//waiting Looked (LD ~ H)
// print ft up LCD
lcd_putc('\f');
lcd_gotoxy(1,1);
printf(lcd_putc,"FREQUENCY:(LOCK)");
FtoLcd();
}
}
}
}
Hình 3.8: Bên Trong sản phẩm sau khi lắp ráp
3.3. Đo Đạc
- Sử dụng máy đếm U2000A và Máy phân tích phổ R4131D
- Đo công suất ngõ ra.
- Dải tần số 88Mhz – 108Mhz
Thực hiện đo
KẾT LUẬN
Sau quá trình tìm hiểu và nghiên cứu, đồ án “Nghiên cứu và thực hiện máy
tổng hợp tần số dải tần FM” đã đạt được các kết quả sau:
Nắm vững được những kiến thức cơ bản về tổng hợp tần số
Lập trình một số chức năng của vi điều khiển
Lập trình cơ bản C# về giao diện trên windows
Học tập được một số kinh nghiệm trong việc thực hiện mạch cao tần
Ứng dụng lập trình vi điều khiển kết hợp IC chuyên dụng để tổng hợp tần số.
Tuy nhiên, bên cạnh đó đồ án cũng gặp khó khăn như:
Giảm thiểu nhiễu pha.
Cải thiện phẩm chất của VCO.
Giảm thiểu số lượng hài.
Tính ổn định của dao động tham chiếu.
Dựa trên những cơ sở thuận lợi và khó khăn trong quá trình hoàn thành đồ án, em xin
đưa ra hướng phát triển nhằm hoàn thiện đồ án:
Sử dụng thêm mạch khuếch đại và lọc thông thấp.
Sử dụng diode PIN để điều chỉnh và ổn định công suất ra.
Tiếp tục cải thiện phẩm chất của VCO.
PHỤ LỤC
Sử dụng phần mềm Visual Studio để lập trình ra giao diện windows bằng C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace UART
{
public partial class frmMain : Form
{
#region Quan ly Bien
SerialPort UART = new SerialPort();
#endregion
#region Quan ly ham
private void _KhoiTao()
{
try
{
cbxTenCongCom.DataSource = SerialPort.GetPortNames();
if (cbxTenCongCom.Items.Count > 0)
{
cbxTenCongCom.SelectedIndex = 0;
}
}
catch (Exception)
{
}
}
#endregion
#region Quan ly form
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
_KhoiTao();
this.UART.DataReceived += new
System.IO.Ports.SerialDataReceivedEventHandler(this.UART_DataReceived);
Control.CheckForIllegalCrossThreadCalls = false;
}
private void frmMain_Shown(object sender, EventArgs e)
{
}
private void frmMain_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Escape:
{
Close();
break;
}
case Keys.Enter:
{
if (gbxNhapTanSo.Focused == true)
{
btnSet_Click(null, null);
}
break;
}
}
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
if (UART.IsOpen == true)
{
UART.Write("F;");
UART.Close();
}
}
catch (Exception)
{
}
}
private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
{
}
#endregion
private void btnConnect_Click(object sender, EventArgs e)
{
try
{
if (cbxTenCongCom.Text.Trim().Length == 0)
{
}
private void btnSet_Click(object sender, EventArgs e)
{
try
{
UART.Write(gbxNhapTanSo.Text.Trim() + ";");
}
catch (Exception)
{
}
}
string Tam = "";
private void UART_DataReceived(object sender, SerialDataReceivedEventArgs
e)
{
try
{
Tam = UART.ReadTo(";");
gbxNhanDuLieu.Text += Tam + System.Environment.NewLine;
gbxNhanDuLieu.SelectionStart = gbxNhanDuLieu.TextLength;
gbxNhanDuLieu.ScrollToCaret();
if (Tam == "#Waiting....")
{
btnDisconnect.Enabled = false;
btnSet.Enabled = false;
}
if (Tam == "#Locked!!!")
{
btnDisconnect.Enabled = true;
btnSet.Enabled = true;
}
}
catch (Exception)
{
}
}
private void miXoaDuLieu_Click_1(object sender, EventArgs e)
{
gbxNhanDuLieu.ResetText();
}
}
}
Giao diện phần mềm kết nối với sản phẩm như sau:
Code biên dịch thêm vào code của 16F877A để nhận lệnh từ máy tính:
if(Finish==1)
{
Finish=0;
if(Data[0] == 'O')
{
printf("#OK!!!;");
lcd_putc('\f');
lcd_gotoxy(1,1);
ft = ft + tmp*100;
}
//save ft to EEPROM
f1 = ft/1000;
f2 = (ft%1000)/100;
write_eeprom(0x02, f1);
write_eeprom(0x50, f2);
// send block programmable counter to PLL
// programmable counter
tmp = ft/100;
sendframe(16,tmp); //send to PLL
delay_ms(100);
while(input(PIN_D0) == 0); //waiting Looked (LD ~ H)
printf("#Locked!!!;");
// print ft on PC
FtoPc();
rsdata();
}
}
if(input(PIN_D4)==0)
{
delay_ms(100);
if(input(PIN_D4)==0) break;
}
}
while(Data[0] != 'F');
}
rsdata();
lcd_putc('\f');
lcd_gotoxy(1,1);
printf(lcd_putc,"FREQUENCY:(LOCK)");
FtoLcd();
}
Sau khi kết nối với máy tính:
FS Frequency Synthesizer
EW Electronic Warfare
PD Phase Detector
DA Direct Analogue
LF Loop Filter
AM Amplitude Modulation
FM Frequency Modulation