📄 dm621.c
字号:
#include"reg52.h"
sbit clk=P1^0;
sbit sin=P1^2;
char i,j,cmd,command_data;
unsigned int ndot,send_data;
unsigned int dr,dg,db;
void led()
{
command_data=0xcb; /***输入命令数据:14位灰度级别,正逻辑,时钟频率为gck***/
clk=0;
sin=0;
clk=1;
clk=0;
clk=1;
;
sin=1;
sin=0;
sin=1;
sin=0;
clk=0;
cmd=1;
for(j=0;j<7;j++)
{
if(cmd&command_data)sin=1;
else sin=0;
clk=1;clk=0;
cmd<<=1;
}
sin=1;clk=1;sin=0;sin=1;clk=0;
/**************发送灰度数据******************/
for(i=0;i<4;i++)
{
send_data=0x2000;
for(j=0;j<14;j++)
{
if(send_data&dr)sin=1;
else sin=0;
clk=1;clk=0;
send_data>>=1;
}
send_data=0x2000;
for(j=0;j<14;j++)
{
if(send_data&dg)sin=1;
else sin=0;
clk=1;clk=0;
send_data>>=1;
}
send_data=0x2000;
for(j=0;j<14;j++)
{
if(send_data&db)sin=1;
else sin=0;
if((j==13)&&(i==3))
{clk=1;;sin=0;sin=1;clk=0;}
else
{clk=1;clk=0;}
send_data>>=1;
}
}
}
/*************延时*****************/
void delay()
{
unsigned int n=30000;
while(n--);
}
void delay1()
{
for(j=0;j<20;j++){
unsigned int m=65535;
while(m--);
}
}
/**********主调用程序***************/
void main()
{
ndot=512;
dr=1;
dg=1;
db=1;
led();
delay1();
for(db;db<=0x2000;db=db+100)
{
led();
delay();
}
db=0;
for(dg;dg<=0x2000;dg=dg+100)
{
led();
delay();
}
dg=0;
for(dr;dr<=0x2000;dr=dr+100)
{
led();
delay();
}
dr=0x2000;
dg=0x2000;
db=0x2000;
led();
delay1();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -