ArmandoCircuitos
Inicio
Electronica
Programacion
Resultado
Codigo
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; namespace MAX7219_UART_01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } byte[] buffer = { 4 }; private void Form1_Load(object sender, EventArgs e) { serialPort1.Open(); serialPort1.Write(buffer, 0, 1); } private void btnEnviar_Click(object sender, EventArgs e) { int dir, data; dir = Convert.ToInt32(txtDir.Text); data = Convert.ToInt32(txtData.Text); write_max72((byte)dir, (byte)data); } private void write_max72(byte address, byte dato) { int num, a, i; double b = 0; int com; buffer[0] = 0; serialPort1.Write(buffer, 0, 1); //cs 0 num = (address << 8) + dato; for (i = 15; i > 0; i--) { a = (num & 0x0001); b = b + (Math.Pow(2, i) * a); num = num >> 1; } for (i = 0; i < 16; i++) { com = ((int)b & 0x01); buffer[0] = (byte)com; serialPort1.Write(buffer, 0, 1); //data com += 2; buffer[0] = (byte)com; serialPort1.Write(buffer, 0, 1); //sck High com -= 2; buffer[0] = (byte)com; serialPort1.Write(buffer, 0, 1); //sck low b = (int)((int)b >> 1); } buffer[0] = 4; serialPort1.Write(buffer, 0, 1); //cs 1 Thread.Sleep(1); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { serialPort1.Close(); } } }
Descarga del archivo
Descargar archivo