久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
為什么1602和ADC會有干擾?
[打印本頁]
作者:
chengdeshi
時間:
2018-10-17 10:13
標題:
為什么1602和ADC會有干擾?
#include<regx52.h>
#include<absacc.h>
#define ADCPORT XBYTE[0x1eff]
#define uchar unsigned char
#define uint unsigned int
//void delay(uint i){while(i--);}
sbit k1=P2^4; sbit k2=P2^5;
sbit k3=P2^6; sbit k4=P2^7;
sbit EOC=P3^4;
sbit RS=P2^3; //1=數據;0=命令
sbit RW=P2^4; //1=讀;0=寫
sbit E=P2^5; //1=使能;0=禁止
#define Dat1602 P0 /** 數據端口 **/
sbit BF=Dat1602^7; /** 忙信號線 **/
uint s=0,min=0,c=0,tc=250,co=20,q=0;
/** LCM忙檢測 **/
bit busy1602(){
bit busy=0; //暫存標志
Dat1602=0xff; //口線置1,防止干擾
RS=0; RW=1; //置“命令、讀”模式
E=1; E=1; //使能,寫兩次做短延時
busy=BF;E=0; //暫存標志,關閉使能
return busy; //返回忙信號,1=忙
}
/** 寫命令 參數:comDat為要發送的命令 **/
void WriteComm(uchar comDat){
while (busy1602()); //忙,則等待
RS=0;RW=0; //置“命令、寫”模式
Dat1602=comDat;E=1;E=0; //送出命令,并使之有效
}
/** 寫數據 參數:dat為要發送的數據 **/
void WriteData(uchar dat){
while (busy1602()); //忙,則等待
RS=1;RW=0; //置“數據、寫”模式
Dat1602=dat;E=1;E=0; //送出數據,并使之有效
}
/** 初始化 **/
void Init1602(){
WriteComm(0x38);//8位,兩行,5*7點陣
WriteComm(0x0c);//顯示開,光標關
WriteComm(0x06);//默認,光標右移
WriteComm(1); //清顯示
}
/** 顯示字符串 **/
void showString(uchar row,uchar col,uchar code *s){
uchar i=0;
row%=2;col%=40; //防止越界
WriteComm(0x80+row*0x40+col);//光標定位
for(;col<40&&s[i]!=0;i++,col++){WriteData(s[i]);}
}
void ADC()
{
ADCPORT=0x1e;
while(!EOC);
P0=ADCPORT;
co=P1;
}
void main()
{
TMOD=0x01;
EA=ET0=1;
TR0=1;
Init1602();
showString(0,0,"Time:12:0");
showString(1,0,"T:");
showString(1,6,"C");
showString(1,8,"Co2:");
showString(1,14,"%");
while(1)
{
//co=co*500./200;
//co=co/100;
WriteComm(0x80+9); //光標定位
WriteData(min/100+'0'); //時間顯示
WriteData(':');
WriteData(s/10%10+'0');
WriteData(s%10+'0');
WriteComm(0xc0+2); //溫度設定
WriteData(tc/100+'0');
WriteData(tc/10%10+'0');
WriteData('.');
WriteData(tc%10+'0');
WriteComm(0xc0+12);
WriteData(co/10%10+'0'); //二氧化碳濃度設定
WriteData(co%10+'0');
while(q==1)
{
WriteComm(0xc0+5);
WriteComm(0x0f);
if(k1==0)
{
while(k1==0);
tc+=5;
break;
}
if(k2==0)
{
while(k2==0);
tc-=5;
break;
}
}
while(q==2)
{
WriteComm(0xc0+13);
WriteComm(0x0f);
if(k1==0)
{
while(k1==0);
co++;
break;
}
if(k2==0)
{
while(k2==0);
co--;
break;
}
}
}
}
void time0() interrupt 1
{
TH0=0xfc;
TL0=0x17;
ADC();
if(++c==1000)
{
c=0;
s++;
if(s>59)
{
s=0;
min++;
}
}
if(k3==0)
{
while(k3==0);
q=(q+1)%3;
}
if(k4==0)
{
while(k4==0);
q=0;
}
}
作者:
999994
時間:
2018-10-17 11:11
你看看數據腳的定義 2.5 2.6 2.7你用在屏幕刪 又用在按鍵上 同時用怎么可能不出問題
作者:
devcang
時間:
2018-10-17 12:08
出現的狀況是怎樣的,說出來別人也容易幫忙分析
~~~~~~~~~~~~~
作者:
chengdeshi
時間:
2018-10-17 18:22
999994 發表于 2018-10-17 11:11
你看看數據腳的定義 2.5 2.6 2.7你用在屏幕刪 又用在按鍵上 同時用怎么可能不出問題
按鍵刪了還是一樣,就顯示一部分數值,其余的都是亂碼。
作者:
zl2168
時間:
2018-10-17 22:39
不會有干擾!是你的電路或控制程序有問題!!!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲综合在线网
|
在线看91
|
国产福利在线
|
欧美日韩高清一区二区三区
|
性一交一乱一伦视频免费观看
|
亚洲日本欧美日韩高观看
|
亚洲精品一区二区三区蜜桃久
|
国产欧美精品一区二区色综合朱莉
|
亚洲综合大片69999
|
国产亚洲高清视频
|
日本a级大片
|
成人综合一区二区
|
久久久久久久97
|
午夜影院在线免费观看视频
|
www.99热
|
日韩免费视频一区二区
|
aaa在线观看
|
欧美久久久久久久久中文字幕
|
欧美久久精品一级黑人c片 91免费在线视频
|
亚洲91精品
|
日韩欧美一区二区三区免费观看
|
成人在线观看网址
|
中文字幕在线精品
|
日本三级电影在线免费观看
|
av在线天堂
|
日韩一区二区在线视频
|
午夜黄色
|
久草在线中文888
|
国产精品美女久久久久久免费
|
国产精品一区一区
|
欧美一区二区三区大片
|
www.天天操.com
|
久久婷婷国产麻豆91
|
天天爱天天操
|
一区二区在线不卡
|
av黄色片在线观看
|
精品91久久
|
精品网
|
自拍偷拍亚洲一区
|
午夜视频一区
|
一区二区三区在线电影
|