标题:
TM1650共阴数显管按钮设置的单片机程序问题
[打印本页]
作者:
yong761228
时间:
2018-12-2 18:47
标题:
TM1650共阴数显管按钮设置的单片机程序问题
各位师傅,您们好,TM1650共阴两位数显管按钮设置程序问题,设置加的时候一切正常,就是下面的s+1,g+1,可以从0按加到9;但是改成减的时候,最大数字就是5,就是按到0后再按就变成5了,不是变成9,大家看看是什么原因造成的,谢谢。
if(key == 0x4c)
{
change = 1;
switch(w)
{
case 1:
s = (s-1)%10;
break;
case 2:
g = (g-1)%10;
break;
}
time1 =(s*10)+g;
time = time1;
}
作者:
yong761228
时间:
2018-12-2 18:52
是不要需要在TM1650.H 里定义什么,我的TM1650.H里就下面内容。
#ifndef __TM1650_H__
#define __TM1650_H__
#include"STC15.h"
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit CLK = P3^3;
sbit DIO = P3^2;
#define CLK_H CLK = 1
#define CLK_L CLK = 0
#define DIO_H DIO = 1
#define DIO_L DIO = 0
void TM1650_Set(uchar add,uchar dat);
uchar Scan_Key(void);
#endif
作者:
刘海龙
时间:
2018-12-2 21:29
看看你定义的s和g的变量类型你就明白了
作者:
yong761228
时间:
2018-12-2 21:45
定义的是uchar s,g; 没错啊,数字就一位数,0到9加减,现在问题出现在减上,加是正常的。
作者:
yong761228
时间:
2018-12-2 21:56
刘海龙 发表于 2018-12-2 21:29
看看你定义的s和g的变量类型你就明白了
谢谢您的回复,定义是uchar , 没有错啊,这个每位调的,就0到9,加正常,改成减才不正常的,最大从5开始减,不是从9。
作者:
haide1998
时间:
2022-8-30 10:48
这个程序段看得我一头的雾水,坐等问题的解决方案
作者:
xxxevery
时间:
2022-8-30 14:01
最近看了好几个这种明显有低级错误的问题,其实你把可能的数字代到你的公式多实验几下多思考一下很多时候就会明白哪里出错了。例如 s = (s-1)%10;这个语句中如果s初始化为0的话s-1为-1,超过uchar的范围不出错才怪。如果是 s = (s+1)%10;也不是不会出错,你把s加到255继续运行的话大概率也会出错。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1