久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
發個小程序,求大佬給5黑幣,繼續,就5個就好,拜謝
[打印本頁]
作者:
很煩
時間:
2018-1-23 14:11
標題:
發個小程序,求大佬給5黑幣,繼續,就5個就好,拜謝
#include <reg51.h>
#include <intrins.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
sbit dat=P1^0; //串行數據
sbit clk0=P1^1; //串行時鐘
sbit lat=P1^2;
sbit key1=P0^0;
sbit key2=P0^1;
sbit key3=P0^2;
sbit led1=P0^6;
sbit led2=P0^7;
sbit gw=P1^3; //個位
sbit sw=P1^4; //十位
sbit bw=P3^3; //百位
sbit qw=P3^4;
sbit pl=P3^6; //165鎖存
sbit clk1=P3^7; //165時鐘
sbit Do=P3^5;
sbit DQ=P3^1;
code uchar tab[16]={
0x3F,
0x06,
0x5B,
0x4F,
0x66,
0x6D,
0x7D,
0x07,
0x7F,
0x6F,
0x39, //"C"
0x79, //"E"
0x76, //"H"
0x38, //"L"
0x40 //"-"
};
uchar k1,k2,k3;
uint t;
uchar disbuf[4];
uint wendu_h=456,wendu_l=288;
///eeprom address
sfr wdtcontr=0xe1;
sfr ispdata=0xe2;
sfr ispaddrh=0xe3;
sfr ispaddrl=0xe4;
sfr ispcmd=0xe5;
sfr isptrig=0xe6;
sfr ispcontr=0xe7;
////////////////////////
iapdisable()
{
ispcontr=0;ispcmd=0;isptrig=0;
}
erase(uint addr)
{
ispcontr=0x83;ispcmd=0x03;
ispaddrh=addr/256;ispaddrl=addr%256;
EA=0;isptrig=0x46;isptrig=0xb9;_nop_();EA=1;
iapdisable();
}
uchar readbyte(uint addr)
{
uchar ch;
ispcontr=0x83;ispcmd=0x01;ispaddrh=addr/256;ispaddrl=addr%256;
isptrig=0x46;isptrig=0xb9;_nop_();ch=ispdata;
iapdisable();
return ch;
}
void writebyte(uint addr,uchar ch)
{
ispcontr=0x83;ispcmd=0x02;
ispaddrh=addr/256;ispaddrl=addr%256;
ispdata=ch;
isptrig=0x46;isptrig=0xb9;_nop_();
iapdisable();
}
savedata()
{
uint addr=0x2000;
erase(addr);
writebyte(addr,123);
addr++;writebyte(addr,wendu_h);
addr++;writebyte(addr,wendu_l);
}
void getdata(void)
{
uchar label=0;
uint addr=0x2000;
label=readbyte(addr);
if(label==123)
{
addr++;wendu_h=readbyte(addr);
addr++;wendu_l=readbyte(addr);
}
else
savedata();
}
ReadDat()
{
unsigned char i,t;
clk1=0;
pl=0;
pl=1;
for(i=0;i<8;i++)
{
t<<=1; //165在PL有一個脈沖后就輸出0位數據
t|=(bit)Do;
clk1=1; // 鎖存時鐘=1時74HC165才允許讀數據
clk1=0;
}
P0=t;
}
dsout(unsigned char j)
{
unsigned char i;
for(i=0;i<8;i++)
{
dat=j&0x80; //高位在前
clk0=1;
clk0=0;
j<<=1;
}
lat=1;
lat=0; //鎖存
}
void delay(uint z)
{
uint x;
for(x=z;x>0;x--);
}
ds1ms()
{
unsigned int d;
for(d=0;d<250;d++); //大約1ms@12M
}
//------送出循環-------------------------
//----74HC595顯示程序--------------------
display(unsigned char sjqw,sjbw,sjsw,sjgw)
{
dsout(tab[sjgw]);gw=0;ds1ms();gw=1; //查表得到數據段碼送顯示
dsout(tab[sjsw]);sw=0;ds1ms();sw=1;
dsout(tab[sjbw]);bw=0;ds1ms();bw=1;
dsout(tab[sjqw]);qw=0;ds1ms();qw=1;
}
Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ復位
delay(12); //稍做延時
DQ = 0; //單片機將DQ拉低
delay(150); //精確延時 大于 480us
DQ = 1; //拉高總線
delay(60);
x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
delay(30);
}
//讀一個字節
uchar ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號
dat>>=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
DQ = 1; // 給脈沖信號
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
if(DQ)
dat|=0x80;
delay(12);
}
return(dat);
}
//寫一個字節
WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
DQ = dat&0x01;
delay(8);
DQ = 1;
dat>>=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
}
adt(uchar x)
{
Init_DS18B20();
WriteOneChar(0xCC); // 跳過讀序號列號的操作
WriteOneChar(x); // 啟動溫度轉換
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
//讀取溫度
unsigned char a=0;
unsigned char b=0;
zhuand()
{
disbuf[0]=0;
disbuf[1]=t/100;
disbuf[2]=(t%100)/10;
disbuf[3]=t%10;
}
void zhuan() //溫度轉換將單片機里二進制溫度轉換成十進制
{
uint tt=0;
t=b;//將溫度高八位傳入t
t<<=8;
t=t|a;//將溫度低八位傳入t
if (b>0x07)
{
t=~t;tt=((t+1)*5)/8;t= tt; //放大10倍輸出并四舍五入
if(t>=99) t=99;
zhuand();
disbuf[0]=14;
}
else{
tt=t;tt=(t*5)/8;t= tt; //放大10倍輸出并四舍五入
if(t>=999) t=999;
if(t>=wendu_h) led1=0;
if(t<=wendu_l) led2=0;
zhuand();
}
}
scankey1()
{
ReadDat();
if(key1==0)
{
delay(5);
if(key1==0)
{
k1++;
while(!key1)
{
ReadDat();
}
}
}
}
adjust()
{ scankey1();
while(k1!=0)
{ if(k1==1)
{
ReadDat();
if(key2==0)
{
delay(5);
if(key2==0)
{
wendu_h++;
if(wendu_h>=999) wendu_h=999;
savedata();
while(!key2)
{
ReadDat();
}
}
}
if(key3==0)
{
delay(5);
if(key3==0)
{
wendu_h--;
if(wendu_h<=0) wendu_h=0;
savedata();
while(!key3)
{
ReadDat();
}
}
}
getdata();
t=wendu_h;
zhuand();
disbuf[0]=12;
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩精品久久一区二区三区
|
成人在线小视频
|
国产午夜影院
|
аⅴ资源新版在线天堂
|
国产午夜精品一区二区三区四区
|
亚洲成人日韩
|
欧美2区
|
一级毛片免费完整视频
|
午夜精品影院
|
一区二区在线免费观看
|
久久成人国产精品
|
岛国一区
|
午夜在线
|
草久网
|
91av视频在线观看
|
亚洲欧美一区二区三区视频
|
久久久九九
|
国产日韩欧美电影
|
国产精品久久久久久久岛一牛影视
|
台湾佬成人网
|
精品国产一区二区三区久久狼黑人
|
中文字幕高清
|
久草资源在线
|
视频一区二区在线观看
|
操久久
|
自拍亚洲
|
国产欧美精品一区
|
亚洲一区综合
|
久久免费精彩视频
|
国产精品欧美日韩
|
天天干天天爱天天
|
www.888www看片
|
天天射网站
|
久久亚洲综合
|
国产精品视频免费看
|
激情欧美日韩一区二区
|
久久国产一区二区三区
|
一级欧美一级日韩片
|
亚洲日本视频
|
国产高清精品一区
|
欧美一级特黄aaa大片在线观看
|