Отговори на тема  [ 35 мнения ]  Отиди на страница Предишна  1, 2, 3
Поредната Глупава Идея :) 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение Re: Поредната Глупава Идея :)
Ми пусни кода де ... лично на мен боба който хвърлих не ми показа промените в кода , които си направил .

_________________
Код:
while(true);


Пет Яну 04, 2013 9:41 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Пет Май 18, 2012 9:14 pm
Мнения: 64
Мнение Re: Поредната Глупава Идея :)
Извинявам се мислех ,че съм го копирал... :oops:
Кода в пика :
Код:
#include <16F877.h>
#device *=16
#device adc=8
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=5)
#define LED PIN_A0
int Button1;
int Button2;
int Button3;
int Button4;
int Button5;
int Button6;
int Button7;
int Button8;
#int_RDA
void  RDA_isr(void)
{
char b;
   b = getc();
   switch(b) 
   {
      case '1':
       output_high(pin_a0); 
      break;
     
      case '2':
       output_low(pin_a0);   
      break;
  }

}
void main()
{
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DIV_BY_1,25,1);
   setup_ccp1(CCP_PWM);
   set_pwm1_duty(12);
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
   
   Button1=1;
   Button2=1;
   Button3=1;
   Button4=1;
   Button5=1;
   Button6=1;
   Button7=1;
   Button8=1;
   output_low(PIN_C1);   


setup_ccp1(CCP_PWM); 

setup_timer_2(T2_DIV_BY_1,25,1);       
    set_pwm1_duty(12);
   
    while(true){
       
        switch( Button1 )
        {
          case 1:
          if (!input(PIN_B0))
          {
            putc('2');
            Button1 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B0))
          {
            putc('3');
           Button1 = 1;
          }
          break;
        }
         
          switch( Button2 )
        {
          case 1:
          if (!input(PIN_B1))
          {
            putc('4');
            Button2 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B1))
          {
            putc('5');
           Button2 = 1;
          }
          break;
      }
        switch( Button3 )
        {
          case 1:
          if (!input(PIN_B2))
          {
            putc('6');
            Button3 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B2))
          {
            putc('7');
           Button3 = 1;
          }
          break;
          }
switch( Button4 )
        {
          case 1:
          if (!input(PIN_B3))
          {
            putc('8');
            Button4 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B3))
          {
            putc('9');
           Button4 = 1;
          }
          break;
          }
           switch( Button5 )
        {
          case 1:
          if (!input(PIN_B4))
          {
            putc('A');
            Button5 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B4))
          {
            putc('B');
           Button5 = 1;
          }
          break;
          }
           switch( Button6 )
        {
          case 1:
          if (!input(PIN_B5))
          {
            putc('C');
            Button6 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B5))
          {
            putc('D');
           Button6 = 1;
          }
          break;
          }
           switch( Button7 )
        {
          case 1:
          if (!input(PIN_B6))
          {
            putc('E');
            Button7 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B6))
          {
            putc('F');
           Button7 = 1;
          }
          break;
          }
           switch( Button8 )
        {
          case 1:
          if (!input(PIN_B7))
          {
            putc('J');
            Button8 = 0;
          }
          break;
     
          case 0:
          if (input(PIN_B7))
          {
            putc('H');
           Button8 = 1;
          }
          break;
          }
}
}

Кода на програмата за компютъра:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (!serialPort1.IsOpen)
            {
                serialPort1.PortName = comboBox1.Text;
                //serialPort1.
                try
                {
                    serialPort1.Open();
                }
                catch (InvalidCastException error)
                {
                    MessageBox.Show("Не може да се свържете с избрания порт");
                }
            }

            if (serialPort1.IsOpen)
            {
                label1.BackColor = Color.Red;
                label1.Text = "Включен";
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {         
            label1.BackColor = Color.Gray;
            label1.Text = "Изключен";
            serialPort1.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string[] ports = SerialPort.GetPortNames();
            serialPort1.Encoding = Encoding.GetEncoding(28591);
            foreach (string port in ports)
            {
                comboBox1.Items.Add(port);
            }

            try
            {
                comboBox1.SelectedIndex = 0;
            }
            catch
            {
                MessageBox.Show("Няма Намерени портове за връзка");
            }
        }

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            this.Invoke(new EventHandler(ProcessarRX));
        }


        private void ProcessarRX(object s, EventArgs e)
        {

            string receive;
            receive = serialPort1.ReadExisting();

            if (receive[0] == '2')
            {
                pictureBox1.Visible = true;
                pictureBox2.Visible = false;
            }

            if (receive[0] == '3')
            {
                pictureBox2.Visible = true;
                pictureBox1.Visible = false;
            }
            if (receive[0] == '4')
            {
                pictureBox3.Visible = true;
                pictureBox4.Visible = false;
            }
            if (receive[0] == '5')
            {
                pictureBox4.Visible = true;
                pictureBox3.Visible = false;
            }
            if (receive[0] == '6')
            {
                pictureBox5.Visible = true;
                pictureBox6.Visible = false;

            }
            if (receive[0] == '7')
            {
                pictureBox6.Visible = true;
                pictureBox5.Visible = false;
            }
            if (receive[0] == '8')
            {
                pictureBox7.Visible = true;
                pictureBox8.Visible = false;

            }
            if (receive[0] == '9')
            {
                pictureBox8.Visible = true;
                pictureBox7.Visible = false;
            }
            if (receive[0] == 'A')
            {
                pictureBox9.Visible = true;
                pictureBox10.Visible = false;

            }
            if (receive[0] == 'B')
            {
                pictureBox10.Visible = true;
                pictureBox9.Visible = false;
            }
            if (receive[0] == 'C')
            {
                pictureBox11.Visible = true;
                pictureBox12.Visible = false;

            }
            if (receive[0] == 'D')
            {
                pictureBox12.Visible = true;
                pictureBox11.Visible = false;
            }
            if (receive[0] == 'E')
            {
                pictureBox13.Visible = true;
                pictureBox14.Visible = false;

            }
            if (receive[0] == 'F')
            {
                pictureBox14.Visible = true;
                pictureBox13.Visible = false;
            }
            if (receive[0] == 'J')
            {
                pictureBox15.Visible = true;
                pictureBox16.Visible = false;

            }
            if (receive[0] == 'H')
            {
                pictureBox16.Visible = true;
                pictureBox15.Visible = false;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Write("1");
            };
        }

        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Write("2");
            };
        }

        private void pictureBox2_Click(object sender, EventArgs e)
        {

        }

        private void pictureBox4_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }       
    }
}

това е и програмата:
Изображение
Добавих и един бутон в програмата "ДИОД" с който да пускам едно диодче вързано на 2 ри крак на пика просто за проба :)

_________________
Инж.Тодор Димитров  гр./Ямбол / 24г.
Последен Проект...http://www.vbox7.com/play:c1e9997504


Пет Яну 04, 2013 2:31 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение Re: Поредната Глупава Идея :)
След всеки !input(PIN_BХ) сложи по един delay_ms(300); че на тези 40 мендрахерца щракане ......
Не разбрах защо в директивата use rs232 си сложил bits=5.
Съвет .. макар и проста комуникация ... обкновенно е добре да е на принципа на протокол т.е. начален байт ... данни ... чексума евентуално и краен байт така ще си сигурен в данните ... ама това на второ четене :)

_________________
Код:
while(true);


Пет Яну 04, 2013 2:49 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Пет Май 18, 2012 9:14 pm
Мнения: 64
Мнение Re: Поредната Глупава Идея :)
кварца който съм сложил е 4мегахерца :) сега ще променя битовете на 8 явно грешка съм допуснал :) и ще сложа това време мерси :)

_________________
Инж.Тодор Димитров  гр./Ямбол / 24г.
Последен Проект...http://www.vbox7.com/play:c1e9997504


Пет Яну 04, 2013 3:01 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Авг 15, 2011 5:37 pm
Мнения: 12
Мнение Re: Поредната Глупава Идея :)
Здравей!


Пон Фев 25, 2013 10:20 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 35 мнения ]  Отиди на страница Предишна  1, 2, 3

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


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

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни