欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機萬用表記錄儀程序+調試過程
[打印本頁]
作者:
vkbvfhp
時間:
2019-4-18 15:37
標題:
單片機萬用表記錄儀程序+調試過程
在維修中對于一些不定時變化的測量數據,很難判斷,有了這個,就方便多了.
調試過程說明
STC15W4K最高實驗用于27MHZ晶體,用30MHZ溫度18B20不正常工作
在高速的晶體下寫入EEPROM時要等待幾十毫秒的寫入時間。
// w_testeeprom();//24C測試
// led =~led;
// for(i=0;i<65535;i++);
// //w_ascii_8x16();
// led =~led;
// for(i=0;i<65535;i++);
// r_testeeprom();//24C測試
// led =~led;
// for(i=0;i<65535;i++);
// //xianshiwendu(0,40);////溫度顯示
r_pcf8563();//讀時鐘
xianshi_shijian(0,50); //顯示一行時間// 2018-10-27
wendulerbiao();//顯示溫度列表2017-02-27//
//r_testeeprom();//24C測試
led =~led;
for(i=0;i<65535;i++);
eeprom_xianshishijian(16,40);//顯示記錄時間表//顯示一個時間表由K2輸入
key_shijian();//調節時間2018-10-28
單片機源程序如下:
#include"stc15w4k.h"
#include"lcd.h"
#include"18b20.h"
#include"at24cxx.h"
//#include"ht1380.h"
#include"pcf85.h"
u8 xdata i_temp;
u8 xdata wendu_w;//溫度寫入標志位//
void w_ascii_8x16()
{
i_temp++;
ascii_8x16(0,0, "abcdefghijklmn");
//aascii_0_9(0,57,(i_temp>>4)&0x0f);//指定地址寫入數字
//aascii_0_9(0,60,i_temp&0x0f);//指定地址寫入數字
aascii_0_9(0,54,i_temp/100);//指定地址寫入數字
aascii_0_9(0,57,i_temp%100/10);//指定地址寫入數字
aascii_0_9(0,60,i_temp%10);//指定地址寫入數?
}
//ascii_8x16(u8 x,u8 y,u8
void shao()
{
LCD_PutString(0,0,"邵建雄");//寫入-判斷是ASCII還是漢字//
}
void xianshiwendu(u8 xx,u8 yy)////溫度顯示
{//晶振要用12MHZ//
u16 xdata wendu;
u8 xdata k;
//xx=33;
//yy=0;
EA=0;
wendu=rr18b20();//讀出溫度//
EA=1;
LCD_PutString(xx,yy,"溫度");//寫入-判斷是ASCII還是漢字//
wendu=(u16)((u32)wendu*625/1000);
if(k=wendu/100)aascii_0_9(xx,yy+13,k);//100指定地址寫入數字
else ascii_8x16(xx,yy+13," ");
k=wendu%100/10;
aascii_0_9(xx,yy+16,k);//100指定地址寫入數字
ascii_8x16(xx,yy+19,".");
k=wendu%10;
aascii_0_9(xx,yy+21,k);//100指定地址寫入數字
ascii_8x16(xx,yy+25,"C");
//EA=1;
}
//..........................................................................................
/*
溫度時間存于0X0F,0XE0
溫度存于0X0F,0XF0
*/
void wendulerbiao()//顯示溫度列表2017-02-27//
{ u8 xdata shijian1_12[]={1,2,3,4,5,6,7,8,9,0x10,0x11,0x12};//時鐘
u8 xdata wen_du0_9[]={0,1,2,3,4,5,6,7,8,9,0x10,0x11};//用于記錄10小時前的數據//
// u8 idata i,k,xx,yy,ex,ey,wen_du0_max,wen_du0_min;
u8 xdata i,k,xx,yy,ex,ey,wen_du0_max,wen_du0_min;
u8 xdata h1,h2,h3,h4,h5;
//u8 idata bershu,wen_du0_max_r,wen_du0_min_r;//溫度倍數//
u8 xdata bershu,wen_du0_max_r,wen_du0_min_r;//溫度倍數//
//u16 wendu_r;
u16 xdata wendu_r;
h1=0x10;
h2=0x20;
h3=0x30;
h4=0x40;
h5=0x50;
read_24cxx_n(0x0f,0xe0,12);//連續讀12時間字節//
for(i=0;i<12;i++)
{
shijian1_12[i]=at24c32[i];//讀寫24CXX//
}
read_24cxx_n(0x0f,0xf0,12);//連續讀12溫度字節//
for(i=0;i<12;i++)
{
wen_du0_9[i]=at24c32[i];//讀寫24CXX//
}
xianshiwendu(0,10);////溫度顯示
wendu_r=rr18b20();//讀出溫度//
wendu_r=(u16)((u32)wendu_r*625/1000);
k=wendu_r/100;
//ascii_12x12_12x6_bye(90,50,(k));//12x6寬6高12寫入 字節//2017-2-25
k=(k<<4)+(wendu_r%100/10);//+優先級比<<高//
if((fen==0)&&(mao<3)&&(wendu_w==0))//(fen==0)&&
{
for(i=0;i<11;i++) //把溫度數據向前記錄一次//
{
wen_du0_9[i]=wen_du0_9[i+1];//溫度列表//
shijian1_12[i]=shijian1_12[i+1];//時間列表//
}
////////////////////
wen_du0_9[11]=k;
shijian1_12[11]=shi;
/////////寫入///////////////////
for(i=0;i<12;i++)
{
at24c32[i]=shijian1_12[i];//寫24CXX//
}
write_24cxx(0x0f,0xe0,12);//寫入12個字節時間字節//
st7529_delay1(20); //24CXX頁寫要10MS等等時間//
for(i=0;i<12;i++)
{
at24c32[i]=wen_du0_9[i];//寫24CXX//
}
write_24cxx(0x0f,0xf0,12);//寫入12個字節溫度字節//
st7529_delay1(20);
////////////////////////////////////
////////////////////////////
wendu_w=1;//溫度寫入標志位//
// xx=80;
//
// ex=125;
// yy=3;
// ey=yy+60;
// yishu(xx,ex,yy,ey,0);//清除圖形區域//
clr_st7529();//從255X160清所有地址位?/清除圖形區域//
//...................................................
// //.......................//溫度圖形顯示2017-2-28..........................//
// //if(fen==0x10);
// //yilie(125,0,1,1);//127行0列寫入1列高亮,ler列顯示試驗//
//
//
//
//
// //yishu(80,127,0,1,1);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
// xx=57;//80;//57--125
//
// ex=125;
// yy=3;
// ey=4;
// //.............顯示窗口..........................................................................
// //yishu(71,125,0,1,0x20);////一豎顯示以 六 點為一豎0x3f=0011 1111//
// yishu(xx-1,ex,0,1,0x20);////一豎顯示以 六 點為一豎0x3f=0011 1111//
// //yishu(71,125,83,84,0x01);////一豎顯示以 六 點為一豎//
// yishu(xx-1,ex,83,84,0x01);////一豎顯示以 六 點為一豎0x3f=0011 1111//
// yiler_w(ex,ex+1,yy-3,yy+81,0x3f);///0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
// yiler_w(xx,xx,0,84,0x3f);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
// //................顯示溫度虛線...每次寫入6個點.............//
// //yiler_w(ex-5,ex-5,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
// yiler_w(ex-10,ex-10,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
//
//
// yiler_w(ex-20,ex-20,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
//
//
// yiler_w(ex-30,ex-30,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
//
//
// yiler_w(ex-40,ex-40,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//.
// yiler_w(ex-50,ex-50,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//.
//...................................................
}
if(mao>10)//溫度寫入標志位//fen==1
{
wendu_w=0;//溫度寫入標志位//
}
ascii_12x12_12x6_bye(16,0,wendu_w);//12x6寬6高12寫入 字節//2017-2-25
xx=28;
yy=2;
for(i=0;i<12;i++)//時間列表//
{
if(shijian1_12[i]>>4)ascii_12x12_12x6_bye(xx,yy,(shijian1_12[i]>>4));//12x6寬6高12寫入 字節//2017-2-25
else ascii_12x12_12x6(xx,yy," ");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy+2,(shijian1_12[i]&0x0f));//12x6寬6高12寫入 字節//2017-2-25
yy+=6;
}
ascii_12x12_12x6(xx,yy-2,":");//12x6寬6高12寫入//2017-2-25
//ascii_12x12_12x6(xx,yy,"00");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy,(fen>>4));//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(xx,yy+2,(fen&0x0f));//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6(xx,yy+4,":");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy+6,(mao>>4));//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(xx,yy+8,(mao&0x0f));//12x6寬6高12寫入 字節//2017-2-25
xx=xx+15;
yy=2;
for(i=0;i<12;i++)//溫度列表//
{
if(wen_du0_9[i]>>4)ascii_12x12_12x6_bye(xx,yy,(wen_du0_9[i]>>4));//12x6寬6高12寫入 字節//2017-2-25
else ascii_12x12_12x6(xx,yy," ");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy+2,(wen_du0_9[i]&0x0f));//12x6寬6高12寫入 字節//2017-2-25
yy+=6;
}
ascii_12x12_12x6(xx,yy+2,"C");//12x6寬6高12寫入//2017-2-25
//.......................//溫度圖形顯示2017-2-28..........................//
//if(fen==0x10);
//yilie(125,0,1,1);//127行0列寫入1列高亮,ler列顯示試驗//
//yishu(80,127,0,1,1);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
xx=57;//80;//57--125
ex=125;
yy=3;
ey=4;
//.............顯示窗口..........................................................................
//yishu(71,125,0,1,0x20);////一豎顯示以 六 點為一豎0x3f=0011 1111//
yishu(xx-1,ex,0,1,0x20);////一豎顯示以 六 點為一豎0x3f=0011 1111//
//yishu(71,125,83,84,0x01);////一豎顯示以 六 點為一豎//
yishu(xx-1,ex,83,84,0x01);////一豎顯示以 六 點為一豎0x3f=0011 1111//
yiler_w(ex,ex+1,yy-3,yy+81,0x3f);///0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
yiler_w(xx,xx,0,84,0x3f);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
//................顯示溫度虛線...每次寫入6個點.............//
//yiler_w(ex-5,ex-5,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
yiler_w(ex-10,ex-10,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
yiler_w(ex-20,ex-20,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
yiler_w(ex-30,ex-30,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//
yiler_w(ex-40,ex-40,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//.
yiler_w(ex-50,ex-50,0,84,0x01);//////0x3f全亮在一個窗口里寫入或清屏TEMP=0清屏//=0x3f就填充//.
//.......................測試高度值....................................
// wen_du0_9[0]=0x15;//相差10
// wen_du0_9[1]=0x16;
// wen_du0_9[2]=0x17;
// wen_du0_9[3]=0x18;
// wen_du0_9[4]=0x19;
// wen_du0_9[5]=0x20;
// wen_du0_9[6]=0x21;
// wen_du0_9[7]=0x22;
// wen_du0_9[8]=0x23;
// wen_du0_9[9]=0x24;
// wen_du0_9[10]=0x25;
// wen_du0_9[11]=0x24;
//.........15.........
// wen_du0_9[0]=0x15;//相差10
// wen_du0_9[1]=0x17;
// wen_du0_9[2]=0x19;
// wen_du0_9[3]=0x21;
// wen_du0_9[4]=0x23;
// wen_du0_9[5]=0x25;
// wen_du0_9[6]=0x27;
// wen_du0_9[7]=0x29;
// wen_du0_9[8]=0x30;
// wen_du0_9[9]=0x32;
// wen_du0_9[10]=0x34;
// wen_du0_9[11]=0x36;
//................尋找最大最小值..把最大值放在上面線,最小值放在下面線...測試溫度處理圖形表...................................
wen_du0_max=wen_du0_9[0];//0;尋找最大//
wen_du0_min=wen_du0_9[0];//0x50尋找最小值//
for(i=0;i<12;i++)//wen_du0_r尋找最小的數值//
{
//if(wen_du0_9[i]>wen_du0_max)wen_du0_max=wen_du0_9[i];
//if(wen_du0_9[i]<wen_du0_min)wen_du0_min=wen_du0_9[i];
if(wen_du0_9[i]>wen_du0_max)wen_du0_max=wen_du0_9[i];
if(wen_du0_9[i]<wen_du0_min)wen_du0_min=wen_du0_9[i];
}
//....處理wen_du0_r值....
// if(wen_du0_max>0x10);
// else if(wen_du0_max>0x20);
// else if(wen_du0_max>0x30);
// else wen_du0_max=0;
//..................計算圖形高度差......BCD->HEX......HEX->BCD..........................................//
wen_du0_max_r=wen_du0_max;
wen_du0_min_r=wen_du0_min; //把BCD碼轉為16進//
wen_du0_min_r=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD碼轉16進數bcd->16h//
wen_du0_max_r=((wen_du0_max>>4)*0x0a)+(wen_du0_max&0x0f);///BCD碼轉16進數bcd->16h//
//...................................................
if((wen_du0_max_r-wen_du0_min_r)>=20)
{
i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD碼轉16進數bcd->16h//
k=i+20;
h5=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//............................
k=i+15;
h4=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+10;//5;
h3=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+5;//3;
h2=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
h1=wen_du0_min;
bershu=2;//溫度倍數//
}
else if((wen_du0_max_r-wen_du0_min_r)>=15)
{
i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD碼轉16進數bcd->16h//
k=i+19;
h5=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//............................
k=i+15;
h4=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+10;
h3=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+5;
h2=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
h1=wen_du0_min;
bershu=2;//溫度倍數//
}
else if((wen_du0_max_r-wen_du0_min_r)>=10)
{
i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD碼轉16進數bcd->16h//
k=i+10;
h5=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//............................
k=i+8;
h4=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+5;
h3=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+2;
h2=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
h1=wen_du0_min;
bershu=4;//溫度倍數//
}
else if((wen_du0_max_r-wen_du0_min_r)>5)
{
// h1=wen_du0_min;
// //h5=wen_du0_min+0x05;//wen_du0_max;
// k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+5;///BCD碼轉16進數bcd->16h//
// h5=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//...........................
i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD碼轉16進數bcd->16h//
k=i+8;
h5=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//............................
k=i+6;
h4=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+4;
h3=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
k=i+2;
h2=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
h1=wen_du0_min;
bershu=5;//溫度倍數//yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
}
else if((wen_du0_max_r-wen_du0_min_r)<=5)
{
//h5=wen_du0_min+0x04;//wen_du0_max;
i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD碼轉16進數bcd->16h//
//k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+4;
k=i+4;
h5=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//............................
//k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+3;///BCD碼轉16進數bcd->16h//
k=i+3;
h4=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+2;///BCD碼轉16進數bcd->16h//
k=i+2;
h3=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+1;///BCD碼轉16進數bcd->16h//
k=i+1;
h2=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
//h4=k/4;
h1=wen_du0_min;
bershu=10;//溫度倍數//
}
/*
//16進轉BCD碼//2017-03-07//
temp=pBuff[i]/10;
time[i]=pBuff[i]%10+temp*16;
演變為h5=((k/10)*16)+(k%10);//16進轉BCD碼//2017-03-07//
////BCD碼轉16進數bcd->16h//
temp =pBuff[i] / 16;
pBuff[i] = temp * 10 + pBuff[i] % 16;
演變為k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+4;///BCD碼轉16進數bcd->16h//
*/
//..........................顯示虛線數字溫度...................................//
//ascii_12x12_12x6(ex-12,78,"10");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-12,78,(h1>>4));//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(ex-12,80,(h1&0x0f));//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(ex-24,78,h2>>4);//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-24,80,h2&0x0f);//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-38,78,(h3>>4));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-38,80,(h3&0x0f));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-50,78,(h4>>4));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-50,80,(h4&0x0f));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-60,78,(h5>>4));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(ex-60,80,(h5&0x0f));//12x6寬6高12寫入//2017-2-25
//......................................................................................//
wen_du0_min_r=wen_du0_min;
if(wen_du0_min_r>>4)
{
wen_du0_min_r=((wen_du0_min_r>>4)*0x0a)+(wen_du0_min_r&0x0f);
}
//yishu(xx,yy,ex,ey,0);//一豎顯示以 六 點為一豎//
k=wen_du0_9[0];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k-),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[1];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[2];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[3];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[4];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[5];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[6];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[7];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[8];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[9];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[10];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
yy=yy+4;
ey=yy+1;
k=wen_du0_9[11];
if(k>>4)
{
k=((k>>4)*0x0a)+(k&0x0f);
}
//yishu((ex-k),ex,yy,ey,0x3f);////一豎顯示以 六 點為一豎//
yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一豎顯示以 六 點為一豎0x3f=0011 1111//
//........................................................................//
// htrr();//讀時鐘//
// shifenmao(0,50);//指定地址寫入時間表//
// laozhong(0x12,0x05);//12:10時間到蜂鳴叫//
// laozhong(0x13,0x12);//13:17時間到蜂鳴叫//
// laozhong(0x18,0x05);//時間到蜂鳴叫//
// laozhong_BZZ(0x1200);//時間到蜂鳴叫//
//......................顯示最大最小值........................................//
xx=58;
yy=10;
ascii_12x12_12x6(xx,yy,"max");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy+6,(wen_du0_max>>4));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy+8,(wen_du0_max&0x0f));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6(xx,yy+12,"min");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy+18,(wen_du0_min>>4));//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(xx,yy+20,(wen_du0_min&0x0f));//12x6寬6高12寫入//2017-2-25
}
void eeprom_xianshishijian(u8 x,u8 y)//顯示記錄時間表//顯示一個時間表由K2輸入
{
// u8 xx,yy;
if(k2_inc==0)
{
st7529_delay1(3);
if(k2_inc==0)
{
BBZZ(255);
at24c32[0]=shi>>4;
at24c32[1]=shi&0x0f;
at24c32[2]=fen>>4;
at24c32[3]=fen&0x0f;
at24c32[4]=mao>>4;
at24c32[5]=mao&0x0f;
write_24cxx(0,0x60,6);//d 0x0012EEPROM寫入6個字節 寫入 最大12個字節//
st7529_delay1(20);
}
}
read_24cxx_n(0,0x60,6);//連續讀12時間字節//
// xx=17;
// yy=20;
if(at24c32[0])ascii_12x12_12x6_bye(x,y,at24c32[0]);//12x6寬6高12寫入//2017-2-25
else ascii_12x12_12x6(x,y," ");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+2,at24c32[1]);//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6(x,y+4,":");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+6,at24c32[2]);//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+8,at24c32[3]);//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6(x,y+10,":");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+12,at24c32[4]);//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+14,at24c32[5]);//12x6寬6高12寫入//2017-2-25
}
void xianshi_shijian(u8 x,u8 y) //顯示一行時間// 2018-10-27
{ //r_pcf8563();//讀時鐘
// y=y+10;
// if(yifen>>4)ascii_12x12_12x6_bye(x,y,yifen>>4);//12x6寬6高12寫入 字節//2017-2-25
// else ascii_12x12_12x6(x,y," ");//12x6寬6高12寫入//2017-2-25
// ascii_12x12_12x6_bye(x,y+2,yifen&0x0f);//12x6寬6高12寫入 字節//2017-2-25
// ascii_12x12_12x6(x,y+4,"-");//12x6寬6高12寫入//2017-2-25
// if(riqi>>4)ascii_12x12_12x6_bye(x,y+6,riqi>>4);//12x6寬6高12寫入 字節//2017-2-25
// else ascii_12x12_12x6(x,y+6," ");//12x6寬6高12寫入//2017-2-25
// ascii_12x12_12x6_bye(x,y+8,riqi&0x0f);//12x6寬6高12寫入 字節//2017-2-25
if(shi>>4)ascii_12x12_12x6_bye(x,y+12,shi>>4);//12x6寬6高12寫入 字節//2017-2-25
else ascii_12x12_12x6(x,y+12," ");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+14,shi&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6(x,y+16,":");//12x6寬6高12寫入//2017-2-25
//if(fen>>4)
ascii_12x12_12x6_bye(x,y+18,fen>>4);//12x6寬6高12寫入 字節//2017-2-25
//else ascii_12x12_12x6(x,y+18," ");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+20,fen&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6(x,y+22,":");//12x6寬6高12寫入//2017-2-25
ascii_12x12_12x6_bye(x,y+24,mao>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+26,mao&0x0f);//12x6寬6高12寫入 字節//2017-2-25
// ascii_12x12_12x6(x,y+28,"open");//12x6寬6高12寫入//2017-2-25
// //..........................................................
//
//
// if(yifen>>4)ascii_12x12_12x6_bye(x,y+40,yifen>>4);//12x6寬6高12寫入 字節//2017-2-25
// else ascii_12x12_12x6(x,y+40," ");//12x6寬6高12寫入//2017-2-25
// ascii_12x12_12x6_bye(x,y+42,yifen&0x0f);//12x6寬6高12寫入 字節//2017-2-25
// ascii_12x12_12x6(x,y+44,"-");//12x6寬6高12寫入//2017-2-25
// if(riqi>>4)ascii_12x12_12x6_bye(x,y+46,riqi>>4);//12x6寬6高12寫入 字節//2017-2-25
// else ascii_12x12_12x6(x,y+46," ");//12x6寬6高12寫入//2017-2-25
// ascii_12x12_12x6_bye(x,y+48,riqi&0x0f);//12x6寬6高12寫入 字節//2017-2-25
//
// if(shi>>4)ascii_12x12_12x6_bye(x,y+52,shi>>4);//12x6寬6高12寫入 字節//2017-2-25
// else ascii_12x12_12x6(x,y+52," ");//12x6寬6高12寫入//2017-2-25
// ascii_12x12_12x6_bye(x,y+54,shi&0x0f);//12x6寬6高12寫入 字節//2017-2-25
// ascii_12x12_12x6(x,y+56,":");//12x6寬6高12寫入//2017-2-25
//
// if(fen>>4)ascii_12x12_12x6_bye(x,y+58,fen>>4);//12x6寬6高12寫入 字節//2017-2-25
// else ascii_12x12_12x6(x,y+58," ");//12x6寬6高12寫入//2017-2-25
// ascii_12x12_12x6_bye(x,y+60,fen&0x0f);//12x6寬6高12寫入 字節//2017-2-25
// ascii_12x12_12x6(x,y+62,":");//12x6寬6高12寫入//2017-2-25
//
//
// ascii_12x12_12x6_bye(x,y+64,mao>>4);//12x6寬6高12寫入 字節//2017-2-25
//
// ascii_12x12_12x6_bye(x,y+66,mao&0x0f);//12x6寬6高12寫入 字節//2017-2-25
//
// ascii_12x12_12x6(x,y+68,"cl");//12x6寬6高12寫入//2017-2-25
//
}
void w_testeeprom()//24C測試 32k= 0xfffh
{
at24c32[0]=0x01;
at24c32[1]=0x23;
at24c32[2]=0x45;
at24c32[3]=0x67;
at24c32[4]=0x89;
at24c32[5]=0x98;
at24c32[6]=0x76;
at24c32[7]=0x54;
write_24cxx(0x05,0,8);//寫入i個字節//
}
void r_testeeprom()//24C測試
{
u8 x=16,y=20;
at24c32[0]=0;
at24c32[1]=0;
at24c32[3]=0;
at24c32[2]=0;
at24c32[4]=0;
at24c32[5]=0;
at24c32[6]=0;
at24c32[7]=0;
// read_24cxx_n(0x05,0,4);//連續讀4字節//
read_24cxx_n(0x05,0,8);//連續讀4字節//
ascii_12x12_12x6_bye(x, y,at24c32[0]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+2,at24c32[0]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+6,at24c32[1]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+8,at24c32[1]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+12,at24c32[2]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+14,at24c32[2]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+18,at24c32[3]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+20,at24c32[3]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+23,at24c32[4]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+25,at24c32[4]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+28,at24c32[5]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+30,at24c32[5]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+33,at24c32[6]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+35,at24c32[6]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+38,at24c32[7]>>4);//12x6寬6高12寫入 字節//2017-2-25
ascii_12x12_12x6_bye(x,y+40,at24c32[7]&0x0f);//12x6寬6高12寫入 字節//2017-2-25
}
u8 bcd_add_dce(u8 i)//BCD加法進位與借位
{
u8 j;
if((i&0x0f)==0x0a)
{
j=i+6;
return j;
}
//if(i==0xff) return -1;
if((i&0x0f)==0x0f)
{
if(i==0xff)return i;
j=i-6;
return j;
}
return i;
}
void key_shijian()//調節時間2018-10-28
{
u32 delay10s;
u8 wei_k;
if(k1_muen==0)
{ wei_k = 0;
Delay_ms(10);
do{
if(k1_muen==0)
{
//wei_k = 0;
st7529_delay1(10); //27mhz
////
if(k1_muen==0)
{
BBZZ(255);//蜂鳴器子程序
delay10s=1355350;
wei_k++;
if(wei_k==3)wei_k=0;
ascii_12x12_12x6_bye(0,0,wei_k);//12x6寬6高12寫入 字節//2017-2-25
}
while(!k1_muen);
}
if(k2_inc==0) //加一
{
st7529_delay1(30);
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
stc15w4k56s4_7135_2019-4-14 - 副本.rar
(236.54 KB, 下載次數: 20)
2019-4-18 15:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
51hei團團
時間:
2019-4-18 17:24
好東東 能分享下原理圖嗎?
作者:
龍小白
時間:
2022-9-16 08:57
要是有原理圖就好了
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1