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

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

 

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

 

Логин:

Пароль:

 

Запомнить

 

 

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

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

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «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


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


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


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