• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

c51子程序集,有了它,写程序真方便!!!

全部回复(18)
正序查看
倒序查看
maychang
LV.6
2
2004-06-18 16:01
不错.改天我也贴两个小程序,补充补充.
加分.
0
回复
dfk523
LV.1
3
2004-06-22 13:49
还行,不过C语言是发展的趋势,最后也弄个C语言的程序集
0
回复
2004-06-22 15:02
@dfk523
还行,不过C语言是发展的趋势,最后也弄个C语言的程序集
好,等找到马上发上来!1111
0
回复
2004-08-02 08:46
你这是什么格式的啊,能直接贴到51程序软件里面去吗!!!!????还是自己复制和粘贴啊???我不怎么会用,请赐教!
0
回复
2004-08-02 09:14
@chengkai422
你这是什么格式的啊,能直接贴到51程序软件里面去吗!!!!????还是自己复制和粘贴啊???我不怎么会用,请赐教!
呵呵,东西都是要灵活运用的,我给的,都是最基本的.用时,你只需灵活变一下就可以!!!!!!
0
回复
ahai0306
LV.4
7
2004-08-07 18:57
这些东西太老了, 弄些新的出来啊,这些还不如自己编的好用呢
0
回复
李绍波
LV.9
8
2006-10-16 14:18
@ahai0306
这些东西太老了,弄些新的出来啊,这些还不如自己编的好用呢
啊,是汇编的啊,,,看不懂.........
0
回复
powerxia
LV.6
9
2006-12-09 17:26
好東東,頂!
0
回复
mymcu
LV.2
10
2006-12-09 19:27
什么玩意?
0
回复
henan123
LV.6
11
2006-12-09 21:29
@mymcu
什么玩意?
收下了,多谢
0
回复
hqy1968
LV.2
12
2007-02-10 23:53
@henan123
收下了,多谢
好,顶
0
回复
huang301817
LV.1
13
2007-02-21 14:02
希望各位大师,多发些对刚学单片机者,有帮助的心得与经验,在此谢了,因为我们这些初学者有时想请教,连提问都不知该如何问?
0
回复
sdjufeng
LV.6
14
2007-02-23 23:17
这是汇编语言的,如果要变换成C51,还有一定的工作量.
0
回复
雨太小
LV.8
15
2007-02-25 21:18
对初学的,提供一种思路,很有参考价值
0
回复
330849420
LV.1
16
2007-08-06 16:12
@雨太小
对初学的,提供一种思路,很有参考价值
我正用汇编,多谢,方便啊!顶!
0
回复
xing1234
LV.6
17
2008-03-11 08:55
@330849420
我正用汇编,多谢,方便啊!顶!
我来给个1602液晶的C函数库,可以一次显示5位数字和小数点,只需
0
回复
xing1234
LV.6
18
2008-03-11 09:01
@xing1234
我来给个1602液晶的C函数库,可以一次显示5位数字和小数点,只需
initialize_LCD();//初始化
LCD1602_numeral(11,1,3,0,n);   //显示位
不好意思,文件好像传不上来
0
回复
hcfatjh
LV.3
19
2008-04-27 21:04
我也来一4位数据 1602液晶驱动,可以显示一行和一个字符

#include
#define uchar unsigned char
#define  uint  unsigned int


sbit rs=P0^1;
sbit rw=P0^2;
sbit en=P0^3;




void delay_x_ms(uchar x)
{

uchar i,j;
for(j=0;j {
for(i=0;i<110;i++){;}
}
}

/* 写数据 */

void write_data(uchar lcd_data)
{

P0=lcd_data&0xf0;
rs=1;
rw=0;
en=0;
en=0;
en=1;
en=1;
en=0;
en=0;
lcd_data=lcd_data<<4;
P0=lcd_data&0xf0;
rs=1;
rw=0;
en=0;
en=0;
en=1;
en=1;
en=0;
en=0;

}
/* 写命令 */

void write_command(uchar lcd_command)
{
rs=0;
rw=0;
P0=lcd_command&0xf0;
en=0;
en=0;
en=1;
en=1;
en=0;
en=0;
lcd_command=lcd_command<<4;
P0=lcd_command&0xf0;
en=1;
en=1;
en=0;
en=0;

}
/*             初始化LCD                                         */
void init_lcd(void)
{

delay_x_ms(50);
write_command(0x01); //清屏
delay_x_ms(50);
write_command(0x28); //设置4位数据线,2行显示
delay_x_ms(50);
write_command(0x28);

delay_x_ms(50);
write_command(0x06); //显示开,光标开,闪烁关

delay_x_ms(50);
write_command(0x0c); //设置AC为增量方式显示,不移位
}

///////////////////////////////////////////////////////
/* 液晶显示程序 */
//显示一行程序
void lcd_disp_string(uchar *s,uchar str_x,uchar str_y)//液晶显示程序
{

uchar lcd_addr;

if(str_y==0)
lcd_addr=0x00+str_x;
if(str_y==1)
lcd_addr=0x40;
lcd_addr=lcd_addr|0x80+str_x;
delay_x_ms(10);
write_command(lcd_addr);

while(*s)
{

delay_x_ms(10);
write_data(*s);
s++;
}
}
void lcd_disp_char(uchar x,uchar y, uchar disp_char)
{
uchar lcd_addr;
if(y==0)
   lcd_addr=0x00+x;
if(y==1)
lcd_addr=0x40+x;
lcd_addr=lcd_addr|0x80;
delay_x_ms(10);
write_command(lcd_addr);
delay_x_ms(10);
write_data(disp_char);
}

/*
main()
{
uint i;
init_lcd();
delay_x_ms(10);
write_command(0x01);
lcd_disp_string("your",5,1);
lcd_disp_char(0,0,'=');
// delay_x_ms(250);
// write_command(0x01);
i=0;
while(1)
{
i=1500;
while(i--)
{
;
}

i=0;


}
    

}*/
0
回复