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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


контрольная работа Отчет по лабораторным работам по курсу Организация ЭВМ

Информация:

Тип работы: контрольная работа. Добавлен: 30.05.2012. Сдан: 2010. Страниц: 9. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Федеральное агентство по образованию и науке  РФ
Южно-Уральский  Государственный Университет
Кафедра Систем управления 
 
 
 
 
 
 
 
 
 
 
 
 
 

Отчет по лабораторным работам
  по курсу Организация  ЭВМ  
 
 
 
 
 
 
 

                    Выполнил: студент ПС-219
                                         Меркулов А.
                    «____»____________ 2008 г. 

                    Руководитель:
                    _______________ Садов В.Б.
                    «____»____________ 2008 г. 

                    Работа  защищена
                    с оценкой _______________
                    «____»____________ 2008 г. 
                     
                     
                     
                     
                     
                     
                     
                     
                     

Челябинск
2008
Содержание 

Лабораторная  работа №1…………………………………………………………………3
Лабораторная работа №2…………………………………………………………………5
Лабораторная  работа №3…………………………………………………………………8 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Лабораторная  работа №1 

Тема: «Работа с лабораторной установкой. Использование  портов ввода-вывода микроконтроллера» 
 

Задание 

     Вариант №3: Написать программу вывода на светодиоды «нарастающей линейки» (8светодиодов). Шаг по времени задается с тумблера: 0.5 или 1 сек.   
 

Реализация программы 

     Все 8 светодиодов подключаются к выходам порта 7. Тумблер подсоединяется к выходу 0 порта 9. В бесконечном цикле в начале проверяется, в каком положении находится тумблер, в соответствии с этим определяется скорость нарастания «световой линейки» на светодиодах, то есть определяется величина программной паузы. 
 

Листинг программы с комментариями 

#include<io70f3707.h>
#include<intrinsics.h> 

int main( void )
{
  int i, k;    /*Переменные цикла для создания программной паузы*/
 
  WDTM2 = 0x1f;   /*Запрет сторожевого таймера*/
  PM7L = 0;    /*Определение всех битов порта 7L как выходов*/
  PM9L = 0xff;   /*Определение 0 бита порта 9L как входа*/
  PU9L = 0x1;    /*Подключение подтягивающего резистра к 0 биту порта 9L*/
  for(;;)    /*Общий цикл программы*/
  {
    if (P9L_bit.no0)  /*Если тумблер в положении 1*/
      k = 10000;   /*Величина программной паузы*/
    else    /*Если тумблер в положении 0*/
      k = 50000;   /*Величина программной паузы*/
 
    P7L_bit.no0 = 1;  /*Зажигаем 1 светодиод*/
    for (i = 0; i < k; i++); /*Программная пауза*/
    P7L_bit.no1 = 1;
    for (i = 0; i < k; i++);
    P7L_bit.no2 = 1;
    for (i = 0; i < k; i++);
    P7L_bit.no3 = 1;
    for (i = 0; i < k; i++);
    P7L_bit.no4 = 1;
    for (i = 0; i < k; i++);
    P7L_bit.no5 = 1;
    for (i = 0; i < k; i++);
    P7L_bit.no6 = 1;
    for (i = 0; i < k; i++);
    P7L_bit.no7 = 1;
    for (i = 0; i < k; i++);
   
    for (i = 0; i < k; i++);  /*Программная пауза*/ 

    P7L_bit.no7=0;   /*Выключаем 8 из 8 светодиод*/
    for (i = 0; i < k; i++);  /*Программная пауза*/
    P7L_bit.no6 = 0;
    for (i = 0; i < k; i++);
    P7L_bit.no5 = 0;
    for (i = 0; i < k; i++);
    P7L_bit.no4 = 0;
    for (i = 0; i < k; i++);
    P7L_bit.no3 = 0;
    for (i = 0; i < k; i++);
    P7L_bit.no2 = 0;
    for (i = 0; i < k; i++);
    P7L_bit.no1 = 0;
    for (i = 0; i < k; i++);
    P7L_bit.no0 = 0;
    for (i = 0; i < k; i++);
  }
 
 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Лабораторная работа №2 

Тема: «Управление светодиодным индикатором от микроконтроллера» 
 

Задание 

Вариант №3: Написать программу вывода на семисегментный индикатор времени между нажатием одной кнопки (до 99). Время вычислять с помощью программных пауз. 
 

Реализация программы 

     Все сегменты индикатора подключаются к порту 7L. 2 первых бита порта 7H используются для подсоединения индикаторов. Кнопка подсоединяется к выходу 0 порта 9. В бесконечном цикле проверяется нажатие кнопки, замеряется интервал времени до повторного нажатия. Полученное значение выводится на индикаторы. 
 

Листинг программы с комментариями 

#include <io70f3707.h>
#include <intrinsics.h> 

unsigned char c1, c2, c3;  /*Выводимые на индикатор значения*/
unsigned char n_ind;   /*Номер текущего индикатора*/ 

char num_to_disp (char c)  /*Функция вывода числа на индикатор*/
{
  switch (c)    /*Определение кода числа от его значения*/
 {
    case 0: return 0x3f;
    case 1: return 0x6; 
    case 2: return 0x5b;
    case 3: return 0x4f;
    case 4: return 0x66;
    case 5: return 0x6d;
    case 6: return 0x7d;
    case 7: return 0x7; 
    case 8: return 0x7f;
    case 9: return 0x6f;
  }
} 

/*Подпрограмма обработки прерывания от таймера TMP0*/
#pragma vector = INTTP0OV_vector
__interrupt void indic(void)
{
  P7H = 0;    /*Выключаем все индикаторы HG1 – HG3 */
  if (n_ind == 0)   /*Вывод на индикатор HG1*/
  {
    P7L = c1;    /*Код выводимого числа*/
    P7H = 1;    /*Номер индикатора*/
  }
  if (n_ind == 1)   /*Вывод на индикатор HG2*/
  {
    P7L = c2;    /*Код выводимого числа*/
    P7H = 2;    /*Номер индикатора*/
  }
  if (n_ind == 2)   /*Вывод на индикатор HG3*/
  {
    P7L = c3;    /*Код выводимого числа*/
    P7H = 4;    /*Номер индикатора*/
  }
  n_ind++;    /*Смена номера индикатора*/
  if (n_ind > 2)    /*Условие перехода к индикатору HG1*/
    n_ind = 0;
} 

/*Основная программа*/
int main(void)    
{
  int timer;    /*Счетчик времени*/
  int i;     /*Переменная цикла для программной паузы*/
  short c_1, c_2, c_3;   /*Цифры выводимого числа*/
 
  WDTM2 = 0x1f;   /*Запрет сторожевого таймера*/
  PM9L = 0xff;   /*Определение всех битов порта 9L как входов*/
  PU9L = 0x1;    /*Подтягивающий резистор к битам порта 9L*/
  /*Установка коэффициента деления частоты тактового генератора в 1*/
  PRCMD = 0;    
  PCC = 0;
  __asm("nop");
  __asm("nop");
  __asm("nop");
  __asm("nop");
  __asm("nop");
  /*Установка коэффициента умножения частоты в 4*/
  PLLCTL_bit.no0 = 1;
  while (LOCKR_bit.no0);
  PLLCTL_bit.no1 = 1;
  __asm("nop");
  __asm("nop");
  __asm("nop");
  __asm("nop");
  __asm("nop");
  PM7L = 0;    /*Определение битов 0-7 порта 7 как выходов*/
  PM7H = 0xf8;   /*Определение битов 8-10 порта 7 как выходов*/
  P7L = 0;    /*Сегменты не светятся*/
  P7H = 0;    /*Индикаторы не выбраны*/
  c1 = 0x3f;    /*Коды индицируемых символов*/
  c2 = 0x3f;
  n_ind = 0;    /*Текущий номер индикатора – HG1*/
/*Разрешение прерывания по переполнению счетчика таймера TMP0*/ 
TP0OVIC_bit.no6 = 0;
  __EI();    /*Общее разрешение прерывания*/
  TP0CTL1 = 5;   /*Режим таймера со свободным пуском*/
  TP0CTL0 = 0;   /*Коэффициент пересчета = 244 Гц*/
  TP0CTL0_bit.no7 = 1;  /*Таймер запущен*/
 
  while(P9L_bit.no0);   /*Ожидание, если кнопка находится в положении 1*/
  while(!P9L_bit.no0);  /*Ожидание, если кнопка находится в положении 0*/
  timer = 0;    /*Обнуление счетчика времени*/
  while(P9L_bit.no0)   /*Выполнение, пока кнопка  - в положении 1*/
  {
    for (i = 0; i < 10000; i++);  /*Программная пауза*/
    timer+=1;    /*Увеличение счетчика на 1 единицу времени*/
    if (timer==999) break;  /*При переполнении – выход из цикла*/
  }
  
  c_1 = timer/10;   /*Определение 1 цифры*/
  c_2 = timer%10;  /*Определение 2 цифры*/
   
  c1 = num_to_disp (c_1);  
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.