Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2012, 19:05   #1
Катюшка89
Новичок
Джуниор
 
Регистрация: 27.12.2012
Сообщений: 1
По умолчанию Keil, aduc842

Помогите пожалуйста.. у меня есть программка на C++. мне нужно знать что каждая строка означает.. помогите пожалуйста, кто может. Программку то нашла, а что строки значат не знаю ^__^

задание:
В данном расчетно-графическом задании необходимо разработать электромузыкальный инструмент. При нажатии на кнопку должна звучать нота, соответствующая данной кнопке.


Текст программы

sfr TMOD=0x89; //TMOD - регистр конфигурации Таймера 1 и Таймера 0
sfr TCON=0x88; //TCON - регистр управления Таймера 1 и Таймера 0.
sfr TH1=0x8D; //TH1- старший байт Таймера 1.
sfr TL1=0x8B; //TL1 -младший байт Таймера 1.
sbit TF1=0x8F; //Флаг переполнения Таймера 1.
sbit TR1=0x8E; //Бит запуска Таймера 1. При TR1 = 1 счет разрешен.
sfr P0=0x80;
sbit P04=0x84;
sbit P05=0x85;
sbit P06=0x86;
sfr P1=0x90;
sbit P10=0x90;
sbit P11=0x91;
sbit P12=0x92;
sbit P13=0x93;
sbit P3_3=0xB3; //адрес звукового датчика
sfr PLLCON=0xD7;
int ss,str,b,s,k,f;
void not (f)
{
PLLCON=0x51;
TF1=0; //Обнуляем флаг переполнения таймера1
TMOD=0x10;
TH1 = 65536-4194304/f >> 8;
TL1 = 65536-4194304/f;
TR1 = 1; //запускаем таймер
P3_3=0;
while(!TF1);
TF1=0;
TMOD=0x10;
TH1 = 65536-4194304/f >> 8;
TL1 = 65536-4194304/f;
TR1 = 1;
P3_3=1;
while(!TF1);
}
void find (k)
{
if (P10=!P10) {str=1; b=k;}
if (P11=!P11) {str=2; b=k;}

if (P12=!P12) {str=3; b=k;}
if (P1=!P13) {str=4; b=k;}
if (str>0,b==k) {s=k;}
}
main()
{
while(1)
{
P04=1;
P05=1;
P06=1;
str=0;
b=0;
s=0;
P04=0;
find (1);
P04=1;
P05=0;
find (2);
P05=1;
P06=0;
find (3);
P06=1;
ss=0;
if (str==1) ss=s;
if (str==2) ss=s+3;
if (str==3) ss=s+6;
if (str==4) ss=s+9;
P0=ss;
if (ss==1) f=262;
if (ss==2) f=294;
if (ss==3) f=330;
if (ss==4) f=349;
if (ss==5) f=392;
if (ss==6) f=440;
if (ss==7) f=494;
if (ss==8) f=2*262;
if (ss==9) f=2*294;
if (ss==10) f=2*330;
if (ss==11) f=2*349;
if (ss==12) f=2*392;
if (ss>0) not(f);
}
}
Катюшка89 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проги на Keil lolwhat Помощь студентам 6 07.06.2012 22:22
задачи на keil werturo Фриланс 0 22.05.2012 23:15