Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Широтно-импульсная модуляция на микроконтроллере MSP430 на языке Cи




Задание

 

1. Загрузить и выполнить тестовую программу. Тестовая программа управляет яркостью светодиода через задержку времени, задаваемую в цикле. Тестовая программа управления яркостью светодиодом на языке Си приведена в приложении Б.

2. Выполнить индивидуальное задание, приведенное в приложении А: разработать алгоритм и программу управления яркостью светодиода.

3. Оформить отчет по лабораторной работе.

 

Порядок выполнения работы

 

Выполнение лабораторной работы состоит из следующих шагов.

  1. Запустите программу IAR Kick Start Embedded Workbench IDE
  2. Создайте новый проект
  3. Сохраните проект в созданную папку
  4. Установите в настройках тип вашего микроконтроллера F2013G2553
  5. Выберите язык - Cи
  6. Сохраните программу с заданным именем
  7. Выполните компиляцию проекта, Rebuild All
  8. Сохраните проект с заданным именем
  9. Запустите программу в Debug
  10. Сохраните экранные формы с использованием PrintScreen

 


Приложение A

Варианты индивидуальных заданий

Red LED PWM Green LED PWM
0.2  
0.4  
0.5  
0.6  
0.7  
0.8  
  0.2
  0.4
  0.5
  0.6
  0.7
  0.8

Приложение Б

Пример программы на языке Си

 

;*******************************************************************

;

; ACLK = n/a, MCLK = SMCLK = default DCO

;

; MSP430x2xx

; -----------------

; /|\| XIN |-

; | | |

; --|RST XOUT|-

; | |

; | P1.0|àRed LED

; | P1.6|àGreen LED

;

; Mart 2013

; Built with IAR Embedded Workbench Version

;*******************************************************************

// use PWM

#include "msp430.h"

#define LED1 BIT0

#define LED2 BIT6

#define LED_DIR P1DIR

#define LED_OUT P1OUT

int main(void)

{

// Stop watchdog timer to prevent time out reset

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

unsigned int i,j,k;

LED_DIR |= LED1 + LED2;

LED_OUT &= ~(LED1 + LED2);

for(;;)

{

i=5; // PWM = 5 %

P1OUT = 0x41;

j=i; // SW Delay

do j--;

while (j!= 0);

P1OUT = 0;

k = 100-i; // SW Delay

do k--;

while (k!= 0);

}

}


Практическое занятие № 3

Циклические программы для управления портами вывода микроконтроллера MSP430 на языке Cи

 

Задание

 

1. Загрузить и выполнить тестовую программу. Тестовая программа производит переключение светодиодов и изменение яркости их свечения через задержку времени, задаваемую в цикле. Тестовая программа управления светодиодом на ассемблере приведена в приложении Б.

2. Выполнить индивидуальное задание, приведенное в приложении А: разработать алгоритм и программу управления переключением светодиодов и изменение яркости их свечения.

3. Оформить отчет по лабораторной работе.

 

Порядок выполнения работы

 

Выполнение лабораторной работы состоит из следующих шагов.

  1. Запустите программу IAR Kick Start Embedded Workbench IDE
  2. Создайте новый проект
  3. Сохраните проект в созданную папку
  4. Установите в настройках тип вашего микроконтроллера F2013G2553
  5. Выберите язык - Cи
  6. Сохраните программу с заданным именем
  7. Выполните компиляцию проекта, Rebuild All
  8. Сохраните проект с заданным именем
  9. Запустите программу в Debug
  10. Сохраните экранные формы с использованием PrintScreen

 


Приложение A

Варианты индивидуальных заданий

Red LED 0.1 0.3 0.5  
Green LED        

 

Red LED        
Green LED   0.3 0.6  

 

Red LED        
Green LED   0.5 0.3  

 

Red LED   0.5 0.3  
Green LED        

 

Red LED   0.3 0.5  
Green LED 0.5      

 

Red LED   0.6 0.3  
Green LED 0.5      

 

Red LED   0.3 0.6  
Green LED        

 

Red LED        
Green LED   0.3 0.6  

 

Red LED        
Green LED   0.6 0.3  

 

Red LED   0.6 0.3  
Green LED        

 

Red LED   0.3    
Green LED     0.5  

 

Red LED   0.7    
Green LED 0.8   0.7  

 

 


Приложение Б

Пример программы на языке Си

 

;*******************************************************************

;

; ACLK = n/a, MCLK = SMCLK = default DCO

;

; MSP430x2xx

; -----------------

; /|\| XIN |-

; | | |

; --|RST XOUT|-

; | |

; | P1.0|-->Red LED

; | P1.6|-->Green LED

;

; Mart 2013

;*******************************************************************

// use PWM

#include "msp430.h"

#define LED1 BIT0

#define LED2 BIT6

#define LED_DIR P1DIR

#define LED_OUT P1OUT

int main(void)

 

// Stop watchdog timer to prevent time out reset

WDTCTL = WDTPW + WDTHOLD;

// Stop WDT

unsigned int i,j,k;

LED_DIR |= LED1 + LED2;

LED_OUT &= ~(LED1 + LED2);

for(;;)

{

for(z=0;z<10000;z++)

{

i=40; // PWM = 40 %

P1OUT = 0x40; // Green LED

j=i; // SW Delay

do j--;

while (j!= 0);

P1OUT = 0;

k = 100-i; // SW Delay

do k--;

while (k!= 0);

}

for(z=0;z<10000;z++)

{

i=30; // PWM = 30 %

P1OUT = 0x1; // Red LED

j=i; // SW Delay

do j--;

while (j!= 0);

P1OUT = 0;

k = 100-i; // SW Delay

do k--;

while (k!= 0);

}

for(z=0;z<10000;z++)

{

i=100; // PWM = 100 %

P1OUT = 0x1; // Red LED

j=i; // SW Delay

do j--;

while (j!= 0);

P1OUT = 1;

k = 100-i; // SW Delay

do k--;

while (k!= 0);

}

for(z=0;z<10000;z++)

{

i=50; // PWM = 50 %

P1OUT = 0x40; // Green LED

j=i; // SW Delay

do j--;

while (j!= 0);

P1OUT = 0;

k = 100-i; // SW Delay

do k--;

while (k!= 0);

}

for(z=0;z<10000;z++)

{

i=1; // PWM = 1 %

P1OUT = 0x40; // Green LED

j=i; // SW Delay

do j--;

while (j!= 0);

P1OUT = 0;

k = 100-i; // SW Delay

do k--;

while (k!= 0);

}

}

 


Практическое занятие № 4





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 522 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Два самых важных дня в твоей жизни: день, когда ты появился на свет, и день, когда понял, зачем. © Марк Твен
==> читать все изречения...

2283 - | 2108 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.