2019-07-15 16:09发布
zjbhello 发表于 2015-9-7 18:02 STC89C52RC是12T单片机,STC12C5A60S2是1T单片机,移植程序过来,关于时间的函数肯定是要修改的哈 标准51单片机是12T的,就是说12个时钟周期(晶振周期,例如12M的,周期是1/12M,单位秒),机器做一个指令周期,刚好就是1/12M*12=1uS,常见指令例如_nop_就是一个周期,刚好1uS,其他的大多多于一个周期,乘除法更多。如果 ...
淡定的牙粉 发表于 2015-9-7 18:30 您那里,有用STC12c5a60s2编写LCD1602的程序吗,能够给我参考一下吗;我现在也被弄懵了
最多设置5个标签!
标准51单片机是12T的,就是说12个时钟周期(晶振周期,例如12M的,周期是1/12M,单位秒),机器做一个指令周期,刚好就是1/12M*12=1uS,常见指令例如_nop_就是一个周期,刚好1uS,其他的大多多于一个周期,乘除法更多。如果是单片机1T的话,那_nop_只需要1/12uS
另外,数字可以正常显示,字母不能正常显示……说到底都是显示的字符,不应该有不同……不明白
您那里,有用STC12c5a60s2编写LCD1602的程序吗,能够给我参考一下吗;我现在也被弄懵了
LCD1602的控制应该算是比较简单,笔者也是本科时代利用STC89控制过1602的
下面是网上找的一段代码 希望对你有用,请特别要注意线缆连线!
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit rs=P1^0;
sbit rw=P1^1;
sbit en=P1^2;
void delay(uint sum)
{
int i,j;
for(i=sum;i>0;i--)
for(j=110;j>0;j--);
}
void write_date(uchar date)
{
rs=1;
rw=0;
P0=date;
delay(5);
en=1;
delay(5);
en=0;
}
void write_com(uint com)
{
rs=0;
rw=0;
P0=com;
delay(5);
en=1;
delay(5);
en=0;
}
void init()
{
en=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x10);
}
void main()
{
init();
write_date('a');
delay(20);
write_date('b');
while(1);
}
一周热门 更多>