完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
14个回答
|
|
明白你的问题了,正确来说显示没有问题,只是传感器的数据没有显示,你需要判断程序是否进入了读传感器数据的部分,如果进入了,那就是传感器数据读取,转换和显示的问题了,这几部分分别调试,可以随意给个数据作为传感器的数据,看显示是否正确,等显示调正确了,再调试传感器数据读取和转换部分
最佳答案
|
|
|
|
一般什么情况会导致这样呢
|
|
|
|
你确定没有改动过程序吗,看着有部分显示应该是正常的
|
|
|
|
的确东西是没问题的,程序有问题。买的时候单片机是烧写好程序的,焊接好硬件是可以直接用的。但是改动程序重新烧写才发现本来给的源程序都是不能正常实现的。卖家估计怕人复制卖吧,太坑人了。 |
|
|
|
|
|
|
|
电路图是这个样子的
|
|
|
|
程序是这个样子的
|
|
|
|
不知道你的是什么单片机,不过P0口最好接上拉电阻
|
|
|
|
#include #define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535 #include ***it beep = P1^4; //蜂鸣器IO口定义 uchar a_a; uint flag_300ms ; ***it CS=P3^2; //CS定义为P2口的第4位脚,连接ADC0832CS脚 ***it SCL=P3^3; //SCL定义为P2口的第3位脚,连接ADC0832SCL脚 ***it DO=P3^4; //DO定义为P2口的第4位脚,连接ADC0832DO脚 // 按键的IO变量的定义 uchar key_can; //按键值的变量 uchar guangxian; //光线 uchar pm,s_pm; uint b,time_num1,set_count,PM_dat=0; uchar qiang_gx; //设置光线的强的变量 uchar ruo_gx; //设置光线的弱的变量 uchar menu_1; //菜单设计的变量 uint t_high = 30,t_low = 10; //温度报警参数 uint s_high = 30,s_low = 10; //湿度报警参数 uchar flag_w_bj_en,flag_s_bj_en; ***it GP2Y_LED=P1^3; //传感器驱动端口 /*************************************************************** * 名称 : delay_1ms() * 功能 : 延时1ms函数 * 输入 : q * 输出 : 无 ****************************************************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i for(j=0;j<120;j++); } ***it dht11=P1^5; //温度传感器IO口定义 uchar table_dht11[5]={1,2,3,4,5}; uchar code table_num[]="0123456789abcdefg"; ***it rs=P1^0; //寄存器选择信号 H:数据寄存器 L:指令寄存器 ***it rw=P1^1; //寄存器选择信号 H:数据寄存器 L:指令寄存器 ***it e =P1^2; //片选信号 下降沿触发 /******************************************************************** * 名称 : delay_uint() * 功能 : 小延时。 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void delay_uint(uint q) { while(q--); } /******************************************************************** * 名称 : write_com(uchar com) * 功能 : 1602命令函数 * 输入 : 输入的命令值 * 输出 : 无 ***********************************************************************/ void write_com(uchar com) { e=0; rs=0; rw=0; P0=com; delay_uint(25); e=1; delay_uint(100); e=0; } /******************************************************************** * 名称 : write_data(uchar dat) * 功能 : 1602写数据函数 * 输入 : 需要写入1602的数据 * 输出 : 无 ***********************************************************************/ void write_data(uchar dat) { e=0; rs=1; rw=0; P0=dat; delay_uint(25); e=1; delay_uint(100); e=0; } /***********************lcd1602上显示特定的字符****0XDF 度********************/ void write_zifu(uchar hang,uchar add,uchar date) { if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(date); } /***********************lcd1602上显示两位十进制数************************/ void write_sfm2(uchar hang,uchar add,uint date) { if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10%10); write_data(0x30+date%10); } /***********************lcd1602上显示两位十进制数************************/ void write_sfm_pm(uchar hang,uchar add,uint date) { if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10%10); write_data(0x30+date%10); } /***********************lcd1602上显示这字符函数************************/ void write_string(uchar hang,uchar add,uchar *p) { if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p == ' |