|
视频字符叠加技术问题,51单片机控制问题,请高手进入多多指点.
[复制链接]
此程序是看到网上关于M6237芯片论文中步骤写的,或许是过程中我的理解不对,无法显示字符.郁闷啊~~~~~
请了解M6237芯片的高手帮忙指教!
#include "stdio.h"
#include "reg52.h"
#include "math.h"
#include "intrins.h"
//下两行是载入50ms初始值
#define TH 0x38 //高8位
#define TL 0x38 //低8位
//引脚定义
//定义M6237引脚
sbit CP=P3^5;
sbit DA=P1^1;
sbit LDI=P1^0;//0时写入地址,1时写入数据
sbit Blink=P0^0;
//子函数定义
void initial(void);
void SendToM6237(unsigned char WriteValue);
void Delay(int n);
//主函数定义
main()
{unsigned char u=0x00;
initial();
Delay(100);
while(1)
{//initial();
LDI=0;
SendToM6237(0xB4);
SendToM6237(0x18);
SendToM6237(0xB5);
SendToM6237(0x18);
SendToM6237(0xB6);
SendToM6237(0x32);
SendToM6237(0xB7);
SendToM6237(0x04);
LDI=1;
for(u;u<0xB3;u++)
{SendToM6237(u);
Delay(1);
}
}
}
//子函数初始化定时器
void initial(void)
{
IE=0x82;
TCON=0x00;
TMOD=0x02;
TH0=TH;
TR0=TL;
TR0=1;
}
//启动定时器
void TIMER(void) interrupt 1
{
TH0=TH;
TR0=TL;
Blink=~Blink;
Delay(1);
}
void SendToM6237(unsigned char WriteValue)
{unsigned char TempValue;
int i;
CP=0;
for(i=0;i<8;i++)//
{
TempValue=(WriteValue<
if(TempValue>=0x80)
{
DA=1;
}
else
{
DA=0;
}
//_nop_();
}
CP=1;
}
void Delay(int n)
{
int i,j;
for(i=0;i<255;i++)
for(j=0;j<=n;j++);
}
|
|