谁有LED12864显示,DS12C887时钟心片,AT89C52单片机的C语言程序,有的发到我油箱727115163@qq.com 谢谢

作者&投稿:休俭 (若有异议请与网页底部的电邮联系)
stc89c52单片机8盏led灯一直闪烁的c语言程序~

include
int main(){
while(1){
p1=0xff;

delay();

p1=~p1;
}
}

void delay(){
for(int i=0;i<1000;i++)

for(int j=0;j,1000;j++)

}

太久不碰单片机了,记不清了,大概就是这样

这个是典型的单片机应用,你搜几个单片机教程,就能找到实例了!

用1302和计数器的区别,只是增加了和1302的通信和读写功能替换掉原来对计数器的操作而已。

看下1302的数据手册,再找几个教程上的实例看看就可以了。

/*---------------------------------------------------------------------------
电子智能时钟程序
单 片 机:STC89C52RC
晶 振:12MHz
时钟芯片:DS12887
液 晶 屏:LCM-12864-ST7920
时 间:2010年3月28日
LCM12864使用并口连接方式,PSB、RST接高电平
头文件----------------------------------------------------------------------*/
#include <reg52.h>
#include <intrins.h>
#include "LCD12864.h"
#include "DS12CR887.h"
#include "DS18B20.h"
#include "nongli.h"
#include "displaytime.h"
#define uint unsigned int
#define uchar unsigned char
/*--------------------定义按键-----------------------------------------------*/
sbit K1 = P1^0; //K1-设置
sbit K2 = P1^1; //K2-确认、返回
sbit K3 = P1^2; //K3-加
sbit K4 = P1^3; //K4-减
sbit K5 = P1^4; //液晶背光控制按键,按一下亮,再按一下灭
sbit BLK = P3^2; //液晶背光控制输出,低电平有效,PNP三极管控制。
void DelayM(uint);
/*定义变量-------------------------------------------------------------------*/
bit q=0, w=0; //调时标志位
/*延时函数 1MS/次------------------------------------------------------------*/
void DelayM(uint a)
{
uchar i;
while( --a != 0) { for(i = 0; i < 125; i++); }
}
/*日期、时间设置函数---------------------------------------------------------*/
void Set_time(uchar sel)
{
signed char address,item;
signed char max,mini;
unsigned char yy,mo,moontemp1,moontemp2;
ds_write(0x0a,0x00); //进入调时,关闭时钟振荡器
write_com(0x30); write_com(0x06);
write_com(0x98); lcm_w_word("设置");
if(sel==5) {lcm_w_word("秒钟");address=0; max=59;mini=0;} //秒钟0
if(sel==4) {lcm_w_word("分钟");address=2; max=59;mini=0;} //分钟2
if(sel==3) {lcm_w_word("小时");address=4; max=23;mini=0;} //小时4
//if(sel==3) {lcm_w_word("星期");address=6; max=7; mini=1;} //星期6 修改为自动计算
//if(sel==2) {lcm_w_word("日期");address=7; max=31;mini=1;} //日期7
if(sel==2) {lcm_w_word("日期");//日期修改为按月份实际天数调整
address=7;//日期7
mo = ds_read(0x08);//读月
moontemp1=mo/16;
moontemp2=mo%16;
mo=moontemp1*10+moontemp2;//转换成10进制月份数据
yy = ds_read(0x09);//读年
moontemp1=yy/16;
moontemp2=yy%16;
yy=moontemp1*10+moontemp2;//转换成10进制年份数据
if(mo==2&&yy%4!=0){max=28;mini=1;}//平年2月28天
if(mo==2&&yy%4==0){max=29;mini=1;}//闰年2月29天
if(mo==1||mo==3||mo==5||mo==7||mo==8||mo==10||mo==12){max=31;mini=1;}//每月31天的月份
if(mo==4||mo==6||mo==9||mo==11){max=30;mini=1;} //每月30天的月份
}
if(sel==1) {lcm_w_word("月份");address=8; max=12;mini=1;} //月份8
if(sel==0) {lcm_w_word("年份");address=9; max=99;mini=0;} //年份9
item=ds_read(address); //读取DS12CR887某地址上的数值赋给item
if(K3 == 0) {item++;} //K3-加数:1
if(K4 == 0) {item--;} //K4-减数:1
if(item>max) item=mini; //限制数值最大有效范围
if(item<mini) item=max; //限制数值最小有效范围
ds_write(address,item); //将调整好的item值写入DS12CR887
displaydate(); //显示日期
displaytime(); //显示时间
displaynl(); //显示农历
displayxq(); //显示星期
}
/*主函数---------------------------------------------------------------------*/
void main()
{
uchar e=0;
K1=1;K2=1;K3=1;K4=1;K5=1;BLK=0;
ds_int();//时钟芯片初始化
lcm_init();//液晶初始化
welcome(); //调用欢迎信息
DelayM(2000); //延时
lcm_clr(); //清屏
Clean_12864_GDRAM(); //清屏
while(1)
{
if (w == 0) //正常走时
{
displaydate(); //显示日期
displaynl(); //显示农历
displaytime(); //显示时间
read_temp(); //读取温度
ds1820disp(); //显示温度
displayxq();
}
else {} //否则启动调时
/*----------------------------设置时间--------------------------------------*/
if (K1 == 0)
{
DelayM(20); //按键消抖
if(K1 == 0 && w == 1) //当是调时状态 本键用于调整下一项
{
e++;
if (e >= 7 ) {e = 0;}
while(! K1 ); //等待键松开
Set_time(e); //调整
}
if(K1 == 0 && w == 0) //当是正常状态时就进入调时状态
{
lcm_clr();
Clean_12864_GDRAM(); //清屏
w=1; //进入调时
Set_time(e);
}
while(K1 == 0); //等待键松开
}
/*--------------------------------------------------------------------------*/
if (K2 == 0) // 当在调时状态时就退出调时
{
DelayM(20);
if(K2 == 0 && w == 1)
{
w = 0; //退出调时
e = 0; //"下一项"计数器清0
}
if(K2 == 0 && w == 0)
{
lcm_clr(); Clean_12864_GDRAM();
write_com(0x30); write_com(0x06);
welcome();
while(K2 == 0);
}
lcm_clr(); Clean_12864_GDRAM();
ds_write(0x0a,0x20); //调时完毕,开启时钟振荡器
displaydate();
displaynl();
displaytime();
read_temp();
ds1820disp();
while(K2 == 0);
}
/*加调整--------------------------------------------------------------------*/
if (K3 == 0 && w == 1)
{
DelayM(20);
if(K3 == 0 && w == 1) { Set_time(e); }
//while(K3 == 0);
while(! K3 );
}
/*减调整--------------------------------------------------------------------*/
if (K4 == 0 && w == 1)
{
DelayM(20);
if(K4 == 0 && w == 1) { Set_time(e); }
//while(K4 == 0);
while(! K4 );
}
/*液晶背光控制,按一下亮,再按一下灭----------------------------------------*/
if(K5 == 0)
{
DelayM(20); q = ~q; //标志位取反
if(q){BLK = BLK | 1;}
else {BLK = BLK & 0;}
while(K5 == 0);
}
}
}
/*结束----------------------------------------------------------------------*/


led12864带字库显示字模中没有的汉字程序
带字库的LCD模块不需要取字模 只需要向LCD模块写入需要显示的汉字的GB2312代码就可以了,显示位置可用模块手册中的定位指令代码设置 切换到点阵图形模式,并设置好书写规律,在字模相应位置写入对应字模数据就可以了 比如16*16点阵,定义第一组两个8字节数据的起始位置,连续列入两字节,然后定位下一行起始地...

12864算LED么?为什么?
是的,只是控制芯片要注意,您要选用他的控制芯片,就可以

51单片机,我想用led12864显示一个答案是数字。我可以这样写吗?我设答案...
daan[4]=y%10;

12864lcd上如何显示温度单位
你好:如果是带字库的LED12864,直接写地址命令后,写℃到数据口就行了。如果不是带字库的,需要绘图显示出来。希望我的回答能帮助到你。

自制12864带字库液晶显示屏需要哪些原件?请尽量详细,谢谢
1、单片机,51,AVR等都可以 2、128*64的点阵屏,12864液晶LED背光板 3、存储器,用于存储字库(16*16的标准字库),大小可以算一下,一个字的数据为32个字节,看你存多少个字,选相应大小的eeprom。4、74ls145和164,还有锁存器,用于驱动点阵的每个led 有这些的话基本就可以了 ...

急!!!我的12864液晶屏有背光,但是运行程序无字幕显示,请高手帮忙!确定...
我不清楚你12864引脚定义是怎样的;可是根据你的描述,电位器接法好象是错误的;电位器是调VOP显示对比度的;纳闷了,你左右分别接19\/20脚是干吗的??19\/20脚一般是LED背光源输入电压,一般19接5V电源,20脚接地的;电位器正确接法应该是VDD(VSS) VO VEE三脚!电位器中间脚一定接VO!你是不...

谁有LED12864显示,DS12C887时钟心片,AT89C52单片机的C语言程序,有的发...
单 片 机:STC89C52RC 晶 振:12MHz 时钟芯片:DS12887 液 晶 屏:LCM-12864-ST7920 时 间:2010年3月28日 LCM12864使用并口连接方式,PSB、RST接高电平 头文件---*\/ include <reg52.h> include <intrins.h> include "LCD12864.h"include "DS12CR887.h"include "DS18B20.h"include "...

自制版,ds1302在led12864上显示的都是问号,是不是芯片没有工作啊,怎...
自制版,ds1302在led12864上显示的都是问号,是不是芯片没有工作啊,怎样解决,谢谢 5  我来答 你的回答被采纳后将获得: 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值) 为你推荐: 特别推荐 神农架深处:为何会被列为禁区? 中国首次敲奥运之门,有多艰难? 如真有...

12864液晶屏有无字库怎么识别
根据网上关于CF12864-3的信息,它应该不带中文字库.你换的话,驱动模块应该一致才好,程序是根据驱动模块不一样区分的.图形点阵液晶模块,为128*64Dots,显示4行,8个16*16点的汉字\/行。其外型尺寸为:78*70mm,视阈尺寸为:62*44mm。显示类型为:STN,黄绿膜,灰膜。模块带LED背光。1\/64Duty,1\/...

电子设计显示屏除了有1602,12864,oled,彩屏什么的,还有什么啊
有字符型的LCD:1602,0802 1601,1620,...;有黑白[蓝白,红黄,...双色的]点阵的LCD:12832,12864,13296,...;有点阵OLED类型的:9664,12864,...;双色的,...;有伪彩色的LCD:各种尺寸和分辨率的;有TFT,6万色,16万色等,各种尺寸和各种分辨率的;有LED点阵型的,单色;双色;3基色;等,8X8点整,...

开江县19594211057: 最近在写一个DS1302日历显示程序,用的是LCD12864来显示,发现设置时钟这一块思路不是很清晰,望指点! -
桑战双氯: //ROM定义(rom)const unsigned char time_read_list[]={0x80,0x82,0x84,0x86,0x88,0x8a,0x0c};//读秒分时日月周年地址(rom)const unsigned char time_write_list[]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};};//写秒分时日月周年地址(rom)...

开江县19594211057: 12864lcd上如何显示温度单位 -
桑战双氯: 你好:如果是带字库的LED12864,直接写地址命令后,写℃到数据口就行了.如果不是带字库的,需要绘图显示出来.希望我的回答能帮助到你.

开江县19594211057: PROteus单片机仿真软件中通用型1602、12232、12864液晶的代码分别是什么呢? -
桑战双氯: 要注意,你说的通用型其实并不通用,LCD模块中使用不同的控制器,其控制方法都不同!所有的LCD模块都在Optoelectronics大类下.1602是LM016L;12232有好几种:AGM1232G DISPLAY 122x32 Graphical LCD with SED1520 ...

开江县19594211057: led12864带字库显示字模中没有的汉字程序 -
桑战双氯: 带字库的LCD模块不需要取字模只需要向LCD模块写入需要显示的汉字的GB2312代码就可以了,显示位置可用模块手册中的定位指令代码设置 切换到点阵图形模式,并设置好书写规律,在字模相应位置写入对应字模数据就可以了比如16*16点阵,定义第一组两个8字节数据的起始位置,连续列入两字节,然后定位下一行起始地址,再写,重复上述过程直到写完一个字的全部16行原理都是一样的,具体命令与实现方法或有不同,详情参见LCD产品手册

开江县19594211057: 12864卷屏显示什么意思 -
桑战双氯: 是一种液晶显示器,点阵分布为:列128 X 行64 的点阵,带有背光是蓝色的,显示的字体是白色的,工作电压为5V,内置汉字字库(可直接显示汉字);因为单纯的液晶器件不能工作,要用驱动芯片来驱动,st7920是台湾厂...

开江县19594211057: LCD12864 液晶显示 相关资料(UC1701控制器)
桑战双氯: 1. 基本参数 显示类型 STN 显示色彩 显示色:黑 背景色:黄绿 偏振模式 透反射/正性 视角 6 点钟 驱动方式 1/64 DUTY 1/9 BIAS 背光 LED 控制器 KS0108或兼容 数据总线 8 位并口/6800方式 温度特性 工作温度:-20 oC ---- +70oC 储藏温度:-30 oC ---- +80oC 点阵格式 128 x 64 点尺寸 0.39 x 0.55mm 点中心距 0.44 x 0.60mm 视域 62.0 x 44.0mm 有效显示区域 56.27 x 38.35mm 外形尺寸 78.0 x 70.0 x 12.5mm Max. 净重 65g 2、 结构图

开江县19594211057: 单片机lcd12864显示为什么字母不好显示 -
桑战双氯: 你说的貌似字符显示问题,如果是有字库的屏,显示字符很方便的用单引号括住字符就能显示了如'A',如果不带字库的,网上有的代码调用时要加空格试试如' A',这与自编的字模库有关.归根结底还是要搞清字符显示函数和字符串显示函数,这两个函数的代码搞定后,显示字符绝无问题的,祝成功.

开江县19594211057: 51单片机,我想用led12864显示一个答案是数字.我可以这样写吗?我设答案是 int y 然后数组da[]=y; -
桑战双氯: 不行的,先把变量转换为字符串,然后逐个字符进行显示,或用笨办法,分离出个十百千万:daan[0]=y/10000;daan[1]=y/1000%10;daan[2]=y/100%10;duan[3]=y/10%10;daan[4]=y%10;

开江县19594211057: 单片机中lcd12864左半屏和右半屏什么意思 -
桑战双氯: 这LCD12864,是一个液晶显示屏,与单片机无关,只不过是可以用单片机来控制显示汉字,字符等,但不是单片机中的东西.' 按照显示的汉字来说吧,可以显示四行汉字,每一行显示8个汉字.一共是可以显示32个汉字.但是这32个汉字并不是在同一个屏上显示的,表面上看是一个屏,但内部是两个屏,左边一半,右边一半.即左半屏显示4行X4个汉字,右半屏也显示4行X4个汉字.所以,在写程序时,假如外观上是在第一行显示8个汉字,可写程序却要分别写左半屏显示4个字,再在右半屏显示4个字.

开江县19594211057: 中国哪些LCD厂能做高路数LCD?如320240LCD,12864LCD -
桑战双氯: 主要有信利、天马、深圳瑞福达液晶,320240LCD以及硬件12864LCD都是通用品,因其路数高,故对硬件设备以及工艺比较高,不是所有的LCD工厂都能做的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网