Разработка лабораторного модуля для изучения генератора сигналов на базе прямого цифрового синтеза

Автор: Пользователь скрыл имя, 11 Февраля 2013 в 23:08, дипломная работа

Описание работы

Целью дипломного проекта является разработка лабораторного модуля для изучения генератора сигналов на базе прямого цифрового синтеза.

Содержание

Введение……………………….……………………………………......….
Обзорная часть…………………………………………..……………...…
Основные понятия и виды генераторов сигналов …………………
Описание принципа работы генераторов на DDS………………….
Разработка лабораторного модуля для изучения генератора сигналов на базе прямого цифрового синтеза ……………………………………………...
2.1. Анализ технического задания на разработку……………………….
2.2. Описание структурной схемы устройства………………………….
Описание элементной базы……………………………………………….
Построение и описание схемы электрической принципиальной………
Разработка печатной платы устройства………………………………….
Выбор среды разработки печатной платы………………………….
5.2. Описание технологии производства печатной платы……………..
5.3. Конструкторский расчет печатной платы………………………….
Расчетная часть……………………………………………………………
6.1 Расчет потребляемой мощности……………………………………..
6.2 Расчет надежности……………………………………………………
Разработка программного обеспечение для МК……………………….
7.1. Описание среды разработки…………………………………………
7.2. Разработка алгоритма программы…………………………………..
Технико-экономическое обоснование проекта …………………………
8.1 Маркетинговое исследование рынка системы лабораторного модуля для изучения генератора сигналов на базе прямого цифрового
синтеза и актуальность ее разработки……………………………………………







8.2. Расчёт трудоемкости и цены разработки ………………………….
8.3. Расчёт затрат на создание устройства …………………………….
Вопросы охраны труда и экологии……………………………………..
9.1 Охрана труда и техника безопасности на предприятиях производства……………………………………………………………………
9.2 Опасные и вредные факторы при производстве РЭА и меры защиты от них……………………………………………………………………
9.3 Техника безопасности при электромонтажных работах……………
9.4 Экологическая политика предприятия……………………………….
9.5 Вопросы экологии при производстве печатных плат………………
Заключение…………………………………………………………….….
Список литературы……………………………………………………….
Приложение Г – Алгоритм программы микроконтроллера

Работа содержит 1 файл

ПЗ.doc

— 1.64 Мб (Скачать)

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ Г

 

Код программы для  программирования микроконтроллера PIC16F877.

 

 

// 400Hz sine-, triangle- and square-wawe generator

#include <pic.h>

#include <htc.h>

#define SCLK  PORTBbits.RB5

#define SDATA PORTBbits.RB6

#define FSYNC PORTBbits.RB7

__CONFIG (0x3FF2); //HS-on WDT-off PUT-on CP-off

 

void Send_16_bit(unsigned int Data)

{

unsigned char i,j;

SCLK=1;

    FSYNC=0;

    for(i=0;i<=15;i++)

{

SCLK=1;

SDATA=((Data & 0x8000)>>15);

SCLK=0;

Data=Data<<1;

}

    FSYNC=1;

SCLK=0;

}

 

void Wave(unsigned int Mode)

{

unsigned int Send_Word[5];

unsigned char k;

Send_Word[0]=0x2100+Mode;    // Control Reg

Send_Word[1]=0x50C7;     // Freq Reg0 LSB

Send_Word[2]=0x4000;     // Freq Reg0 MSB

Send_Word[3]=0xC000;     // Phase Reg0

Send_Word[4]=Send_Word[0]-0x0100;  // ExReset Reg

for(k=0;k<=4;k++){Send_16_bit (Send_Word[k]);}

}

 

void main(void)

{

unsigned int W_Mode;

TRISA=0b11111011; //Set keys is active

RA2=1;

 

while(1)

{  

FSYNC=1;

SCLK=0;

 

TRISB=0xFF;

PORTB=0;

scan:

if (PORTB == 0x01) W_Mode=0x08;    // 0x08 for sine-wave

else if (PORTB==0x02) W_Mode=0x0A;  // 0x0A for triangle-wave

else if (PORTB ==0x04) W_Mode=0x28; // 0x28 for square-wave

else goto scan;

TRISB=0;

Wave(W_Mode);

}

}

 

 

 

 

Код программы для  вывода информации на индикатор.

 

 

#include <pic.h>

#include <htc.h>

/*__CONFIG (WDTDIS & RC & UNPROTECT);

*/

// real time clock

 

void main()

{

const int dig_0=0b11111100;

const int dig_1=0b01100000;

const int dig_2=0b11011010;

const int dig_3=0b11110010;

const int dig_4=0b01100110;

const int dig_5=0b10110110;

const int dig_6=0b10111110;

const int dig_7=0b11100000;

const int dig_8=0b11111110;

const int dig_9=0b11110110;

 

int i,j,k,n,data,seconds;

TRISA=0;

TRISB=0;

data=0;

seconds=0;

while(1)

{

data++;

seconds++;

if (seconds==60)

{

data=data+40;

seconds=0;

}

for (n=1;n<=225;n++)

{

k=1;

for (j=1;j<=4;j++)

{

PORTA=k;

if (j==4) i=data/1000;

if (j==3) i=(data%1000)/100;

if (j==2) i=((data%1000)%100)/10; 

if (j==1) i=(((data%1000)%100)%10);

 

switch (i)

{

case 0: PORTB=dig_0;break;

case 1: PORTB=dig_1;break;

case 2: PORTB=dig_2;break;

case 3: PORTB=dig_3;break;

case 4: PORTB=dig_4;break;

case 5: PORTB=dig_5;break;

case 6: PORTB=dig_6;break;

case 7: PORTB=dig_7;break;

case 8: PORTB=dig_8;break;

case 9: PORTB=dig_9;break;

}

if (j==3) PORTB++;

_delay(500);

PORTB=0;

k=k*2;

}

}

if (data==6000) data=0;

}

}  //end program


Информация о работе Разработка лабораторного модуля для изучения генератора сигналов на базе прямого цифрового синтеза