write_com(0x90+4)什么意思
发布网友
发布时间:2022-05-21 13:55
我来回答
共1个回答
热心网友
时间:2023-10-26 18:24
1、下面是一个时钟修改时间按键功能选择的语句,问题就在于我按到9的时候居然DS1302居然写不进去,读出一串随机的数据来糊弄我,但在我初始化时间的时候却能写进去,我就郁闷了···
switch(funcnum)
{
case 1:
{
TR0=0;
//write_com(0x0c);
}break;
case 2:
{
write_com(0x0f);
write_com(0x90+4);
} break; //秒
case 3:write_com(0x90+2); break; //分
case 4:write_com(0x90+0); break; //时
case 5:write_com(0x80+5); break; //日
case 6:write_com(0x80+3); break; //月
case 7:write_com(0x90+7); break; //周
case 8: write_com(0x80+1); break; //年
case 9:
{
TR0=1;
funcnum=0;
write_com(0x0c);
RST=0;
_nop_();
DS1302write_byte(7,0x00); //撤销写保护以允许写入数据
DS1302write_byte(6,nian);//年
DS1302write_byte(5,week);//周
DS1302write_byte(4,yue);//月
DS1302write_byte(3,ri);//日
DS1302write_byte(2,shi);//时
DS1302write_byte(1,fen);//分
DS1302write_byte(0,miao); //秒
DS1302write_byte(7,0x80);
RST=1;
}break;
2、下面这个是我主循环中的刷新程序
if(flag200ms==1) //定时器计时,每200ms刷新一次
{
flag200ms=0;
RST=0;
DS1302write_byte(7,0x80); //特意在这加了个写保护,结果还是没用·····
_nop_();
miao= BCD_Decimal(DS1302read_byte(0));
fen = BCD_Decimal(DS1302read_byte(1));
shi = BCD_Decimal(DS1302read_byte(2));
ri = BCD_Decimal(DS1302read_byte(3));
yue = BCD_Decimal(DS1302read_byte(4));
nian= BCD_Decimal(DS1302read_byte(6));
week= BCD_Decimal(DS1302read_byte(5));
disp_sfm(shi,fen,miao,week); //时分秒显示
disp_nyr(nian,yue,ri); //年月日显示
}
PS:液晶显示函数、DS1302读写字节和BCD转码子函数都测试过了应该没问题,就是加入了按键之后就不能写入数据了,有上网查过类似的问题,可是还是解决不了
单片机程序做批注,谢谢
write_com();应该是写入命令 0x80 0x90 0x88 0x98 对应的是命令值 这个芯片文档里找 write_dat();应该是写数据 写入的数据是tab1[16] tab2[16] tab3[16] tab4[16] 这四个数组里的数据,每个数组里有16个字节的数据,write_dat每次写入1个字节,循环16次写入完1个数组 delay(1...
我用DS1302+LCD1602+单片机制作的的电子钟,可以显示,但是时间不会走_百...
write_com(0x90);hzkdis("20");write_com(0x91);write_data((yy/16)+0x30);write_data(yy%16+0x30);
用C语言编写一段程序,使用查表的方式使单片机控制DAC0832产生一个电压...
write_com(0x0c); //显示功能设置0x0f为开显示,显示光标,光标闪烁;0x0c为开显示,不显光标,光标不闪 write_com(0x06); //设置光标状态默认0x06,为读一个字符光标加1. write_com(0x80); //设置初始化数据指针,是在读指令的操作里进行的 for(i=10;i<20;i++) //显示初始化 { write_date(table...
你有89C52驱动hx711芯片用1602显示的程序了吗?可以发给我吗?但是我没...
write_com(0x0c);//打开显示 delay50us(4);write_com(0x01);//清屏 delay(50);write_com(0x06);delay(10);write_com(0x90);
at89c52产生三角波,锯齿波,方波,要求用c语言写,芯片是D0832
write_com(0x38); //使液晶显示点阵,为下面做准备write_com(0x0c); //初始设置write_com(0x06); //初始设置write_com(0x01); //清零write_com(0x80); //使指针指向第一行第一格 disp_lcd(0x80,&lcd_hang1[4*16]); //在第一行显示 disp_lcd(0xc0,&lcd_hang1[5*16]); //在第二行显示...
求51单片机驱动液晶12864的程序,要求是串口方式。程序里不要有绘图...
write(0,0x30); //8 位介面,基本指令集 write(0,0x0c); //显示打开,光标关,反白关 write(0,0x01); //清屏,将DDRAM的地址计数器归零 delaynms(10);write(0,0x80); for(i=0;i<16;i++) write(1,datas11[i]);write(0,0x90); for(i=0;i<16;i++) write(1,data...
用液晶12864和DS18B20传感器做的温度传感器为什么不会变化,老是显示85...
write_com(0x06); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位 delay(0); } /***显示字符串*** 函数名:hzkdis() 功能:显示字符串程序 说明:无 入口参数:无 返回值:无 设计: 日 期:2008-03-19 修改: 日 期: ***/ /*void hzkdis(unsigned char code *s) { while(*s...
玩实况足球8,开始游戏后弹出内存不能为"write"确定就跳出了..._百度知...
这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。 内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。 二、应用...
求51单片机红外摇控接收c程序,并在数码管上显示键值出来?
unsigned char code LedData[16] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};unsigned char code LedCon[2] = {0x8f,0x4f};unsigned char ucDispData[2]; // 存放显示数据 sbit led1 = P3^7;sbit led2 = P3^6;sbit power...
基于AT89C51和DAC0832、LM324的波形发生器能发生正弦,方波,三角波,锯齿...
void write_com(uchar com){ lcdrs=0;P1=com;delay(5);lcde=1;delay(5);lcde=0;} void write_data(uchar date){ lcdrs=1;P1=date;delay(5);lcde=1;delay(5);lcde=0;} void init(){ lcdrw=0;lcde=0;wr=0;cs=0;write_com(0x38);write_com(0x0c);write_com(0x06);wri...