久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機顯示8bit精度的濕度,一直是00 求幫助
[打印本頁]
作者:
abc123.456
時間:
2019-6-10 16:35
標題:
單片機顯示8bit精度的濕度,一直是00 求幫助
想要用數碼管來顯示8bit精度的濕度,但不知道哪里錯了,顯示一直是00,求大佬幫幫忙。s1,s2是兩個中斷源,中斷程序是用來顯示我事先設定的濕度閾值的。
微信圖片_20190610163002.png
(283.37 KB, 下載次數: 23)
下載附件
2019-6-10 16:34 上傳
單片機源程序如下:
#include "reg52.H"
#include <intrins.H>
#include <stdio.h>
#define MEASURE_HUMI 0x05
#define ACK 1
#define noACK 0
#define STATUS_RSG_W 0x06
#define STATUS_RSG_R 0x07
#define FUNCTION_SET
#define _7SEG_H_
sbit DATA=P1^0;
sbit SCK=P1^1;
sbit s1=P3^2;
sbit s2=P3^3;
sbit s3=P1^2;
sbit s4=P1^3;
sbit s5=P1^6;
sbit s6=P3^4;
sbit DBPort=0x80;
sbit led1=P1^4;
sbit led2=P1^5;
unsigned char shidu;
unsigned int a=0x20;
unsigned int b=0x40;
unsigned int c[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char d;
unsigned char e;
unsigned char f;
unsigned char g;
void Delay100ms() //@12.000MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 5;
j = 144;
k = 71;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void Disp()
{
f=e;
e=e&0x0F;
d=c[e];
P2=d;
f=f>>4;
f=f&0x0F;
f=c[f];
P0=f;
}
void Disp1()
{
unsigned char i,j;
i=g;
g=g&0x0F;
j=c[g];
P2=j;
i=i>>4;
i=i&0x0F;
i=c[i];
P0=i;
}
char write_byte(unsigned char value)
{
unsigned char error=0;
unsigned char i=0;
for(i=0x80;i>0;i/=2)
{
if(i&value)
DATA=1;
else
DATA=0;
SCK=1;
_nop_();_nop_();_nop_();
SCK=0;
}
DATA=1;
SCK=1;
error=DATA;
_nop_();_nop_();_nop_();
SCK=0;
DATA=1;
return error;
}
char read_byte(unsigned char ack)
{
unsigned char i,val=0;
DATA=1;
for(i=0x80;i>0;i/=2){
SCK=1;
if(DATA)
val=(val|i);
_nop_();_nop_();_nop_();
SCK=0;
}
if(ack==1)DATA=0;
else DATA=1;
_nop_();_nop_();_nop_();
SCK=1;
_nop_();_nop_();_nop_();
SCK=0;
_nop_();_nop_();_nop_();
DATA=0;
return val;
}
void qidong(void){
DATA=1;SCK=0;
_nop_();
SCK=1;
_nop_();
DATA=0;
_nop_();
SCK=0;
_nop_();
SCK=1;
_nop_();
DATA=1;
_nop_();
SCK=0;
}
void reset(void){
unsigned char i;
DATA=1; SCK=0;
for(i=0;i<9;i++)
{SCK=1;
SCK=0;
}
qidong();
}
char measure(unsigned char h,unsigned char j,unsigned char k){
unsigned int i;
unsigned char error=0;
qidong();
error+=write_byte(MEASURE_HUMI);
for(i=0;i<65535;i++)if(DATA==0)break;
if(DATA) error+=1;
h=read_byte(ACK);
j=read_byte(ACK);
k=read_byte(noACK);
return error;
}
void int0_isr()interrupt 0
{
EA=0;
g=a;
Disp1();
Delay100ms();
while(s1==1)
{
if(s3==0)
{a++;
Delay100ms();
g=a;
Disp1();
}
if(s4==0)
{
a--;
Delay100ms();
g=a;
Disp1();
}
}
EA=1;
IE0=0;
}
void int2_isr()interrupt 2
{
EA=0;
g=b;
Disp1();
Delay100ms();
while(s2==0)
{
if(s3==0)
{b++;
Delay100ms();
g=b;
Disp1();
}
if(s4==0)
{
b--;
Delay100ms();
g=b;
Disp1();
}
}
EA=1;
IE1=0;
}
void shoudong()
{
if(s5==0)
{ led1=0;
Delay100ms();
while(s5==1)
{led1=0;
Disp();
Delay100ms();
}
}
led1=1;
if(s6==0)
{ led2=0;
Delay100ms();
while(s6==1)
{led2=0;
Delay100ms();
}
}
led1=1;
}
void main()
{
unsigned char error;
unsigned char hh;
unsigned check;
Delay100ms();
error=0;
IT0=1;
IT1=1;
EA=1;
EX1=1;
EX0=1;
P0=0;
P2=0;
reset();
Delay100ms();
error+=measure(shidu,hh,check);
if(error=1)reset();
e=shidu;
Disp();
Delay100ms();
while(1){
shoudong();
while(shidu>a)
{
shoudong();
led1=0;
Delay100ms();
}
led1=1;
while(shidu<b)
{
shoudong();
led2=0;
Delay100ms();
}
led2=1;
}
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
www.婷婷亚洲基地
|
伊人在线
|
欧美韩一区二区三区
|
免费观看一级毛片
|
欧美在线视频网站
|
亚洲一区二区国产
|
欧美日韩精品亚洲
|
91av视频在线免费观看
|
www.色综合
|
欧美成人免费在线视频
|
亚洲成人免费视频在线观看
|
521av网站
|
精一区二区
|
成人精品网
|
在线一区观看
|
久久人体
|
亚洲在线一区二区三区
|
国产91精品在线
|
欧洲免费毛片
|
久久久久国产一区二区三区四区
|
日韩精品在线看
|
精品在线观看一区二区
|
中文字幕欧美在线观看
|
玖玖精品
|
日韩精品视频在线播放
|
亚洲欧美日韩激情
|
在线观看国产视频
|
亚洲高清在线播放
|
国产精品日韩欧美一区二区
|
亚洲一区精品在线
|
91毛片网
|
亚洲成人一区二区
|
中文字幕一区在线观看视频
|
国产日韩欧美在线观看
|
午夜精品久久久
|
91久久精品一区二区二区
|
日韩欧美国产精品一区
|
理伦毛片
|
日韩aⅴ在线观看
|
国产激情自拍视频
|
鸳鸯谱在线观看高清
|