谁会 51单片机 继电器定时控制,数码管最大显示99 ,最小显示00可,以用俩个按键 控制加减数码管的俩位

可以从99递减到00.老师给了我们俩个选择。1是递减到00的时候 蜂鸣器响一下。2是 再加一个键,递减的时候 按一下 可以定在那个数字上 比如说 98 变成97的时候 按一下,就会定在97上 而不会变成96.再按一下的时候继续递减变为96...真心很急。星期3就要给老师了。。跟考核有关。。希望会的朋友帮帮忙~

本人只提供思路:方法还需自己努力!
1:继电器的电压选择和可以为5V的用一个三极管做电流放大控制,毕竟单片机的输出能力不够驱动继电器,三极管选择8050系列或8550系列,基极电阻可选用2K的。5V / 2K =2.5mA 足够使三极管饱和导通输出最大800mA的电流(自然散热情况下,继电器的电流在100mA左右)
2:数码管两位的采用共阳,同样使用三极管控制共阳位(占用两个I/O口)数码段及小数点占用8个I/O口 采用500欧姆电阻。数码管以 至少250HZ的频率 轮显,每次停留1mS 这样才能感觉不闪烁,并且亮度也够。
3:由题目得知 数码管 为十进制 递减 速度未知 可设定为 秒基准 那么单片机的晶振 适合采用12M的。且 数码管最大显示为 99 因此 这个数值 只需要一个字节地址就OK。
4:蜂鸣器可直接采用有源5V 蜂鸣器 采用一个 I/O口 输出低电平时有效并且只提供1秒时间。
5:程序思路:主程序读取 地址 20H((自己定义,初始值为99))的数值转换成十进制 分别 对应十位及个位通过查表 ((表的内容是数码管显示的内容))让数码管显示十位对应数码 延时1mS 再显示个位对应数码 延时1mS,计算上面的程序时间 然后执行它 一定次数凑够1秒,循环完毕后判断 20H 地址的数值是否为 00H 是则控制蜂鸣器或继电器对应操作同时停止程序,不是的话 20H 地址内容减去 21H ((自己定义,初始内容为01H )) 地址的数值后从头运行。按键全部通过中断操作,中断程序判断一下按的是什么键,然后只需要对 20H 地址做加1或减1操作,如果按的是暂停键,就让21H 的 最低位地址 取反就行了,中断结束后,主程序读取 被加1或减1的 20H 地址就会显示加过或减过的 数码值,如果按的是暂停键 21H 的最低位被取反后成了00H ,那么主程序循环运行时 20H 地址内容 减 21H 内容00H 后数值不变,于是 数码显示数值就停止了,同理再按一次暂停键,21H 内容的最低位 取反变1 主程序循环运行时 20H 地址内容减去 21H 内容 01H 就会形成 递减效果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-01
不是很难的
要自己努力
第2个回答  2012-06-02
说实话 做并不难,它是一个系统 这么问应该没有满意答复,还得靠自己。
第3个回答  2012-06-01
具体解释额
相似回答