帮我用应广单片机用Minic写一个对TM1628发送数据的程序
时间: 2023-08-28 15:05:06 浏览: 104
好的,下面是使用应广单片机和Minic编写的对TM1628发送数据的程序:
```
#include <REG52.H>
#define uchar unsigned char
#define uint unsigned int
sbit STB = P1^4; // 定义STB引脚
sbit CLK = P1^5; // 定义CLK引脚
sbit DIO = P1^6; // 定义DIO引脚
void delay(uint x) // 延时函数
{
uint i, j;
for(i=0;i<x;i++)
{
for(j=0;j<10;j++);
}
}
void send_byte(uchar dat) // 发送一个字节
{
uchar i;
for(i=0;i<8;i++)
{
CLK = 0; // 拉低CLK
if(dat & 0x01)
{
DIO = 1; // 如果dat的最低位是1,则DIO拉高
}
else
{
DIO = 0; // 如果dat的最低位是0,则DIO拉低
}
dat >>= 1; // dat右移一位
CLK = 1; // 拉高CLK
}
}
void send_cmd(uchar cmd) // 发送命令
{
STB = 0; // 拉低STB
send_byte(0x8A); // 发送控制命令
send_byte(cmd); // 发送具体命令
STB = 1; // 拉高STB
}
void send_data(uchar addr, uchar dat) // 发送数据
{
STB = 0; // 拉低STB
send_byte(0xC0 | addr); // 发送数据命令
send_byte(dat); // 发送具体数据
STB = 1; // 拉高STB
}
void main()
{
uchar i;
send_cmd(0x44); // 开启自动地址递增模式
for(i=0;i<16;i++)
{
send_data(i, i+1); // 发送数据
}
while(1);
}
```
以上是一个简单的对TM1628发送数据的程序,其中使用了延时函数和send_byte、send_cmd、send_data三个函数来发送控制命令和具体数据。请根据实际情况进行调试和修改。
阅读全文