选择分类:当前分类——当前分类 相关联或者相类似的文章: 交、直流电大揭秘---通俗理解法(2597) 23年前,有个年轻的女子~~~~(2191) 常用集成电路功能列表(2086) 清华学生弃学失踪两月 曾为湖北江陵高考第一(2000) 装在火柴盒里的悄悄听别人讲话的发射器(1999) 功能最多纯绿的多功能电子软件(1992) 送给单片机爱好者——LED在线编码器(1814) 十字旋转LED点阵套件制作说明(1783) 数字电路循迹小车(1783) 信号发生与频率测量09年技能大赛(1783) 直流电机控制电路专辑(1783) 电子基础知识--电阻篇(1748) 挑水与挖井(1730) 快来给美女穿衣脚呀(1693) 什么是电平?(1644) 什么是压敏电阻?(1644) 最大最重的军用手机(1567) 台灯触摸开关(1560) 红外感应电子狗制作详解(1560) 送给单片机爱好者——LED点阵在线编码器(1544) 首页 前页 后页 尾页 本站推荐: | AT89C51制作的简单计数器
网上好友大侠画了一个计数器的电路图让我帮忙写个软件,抽空写了一个。他做好了电路我就把程序给他烧写实验,稍微修改后达到他的要求。 图中可以看到本制作的主要核心电路是用AT89C51组成的按键取值电路,S3S4分别控制计数值的加减。数码管使用的是共阳极通过3906控制。 这个计数器主要用于对键的按键次数计数,用于鼠标中的微按钮或其它按钮做QC测试用。所以在软件中用了取两次定时中断的键值做比较以达到简单防抖动和取健值的目的。读者朋友可以自行修改程序以适合自己的电路。本计数器的计数范围为0-999999,最大的频率为50Hz,当然这些参数都可以根据需要调整。程序使用的是汇编延时程序,可以改用C写,没有任何关系只是我偷懒从旧的程序中拷过来用。
#include <AT89X51.H> unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void main(void) Count = 0; //初始化变量 EA = 1; //允许CPU中断 //定时器0中断外理中键扫描和显示 NewKeyUP = Key_UP; //取新的键值 if (!OldKeyUP && NewKeyUP) //键放开时,这里的中断为20ms左右(定时值非自动装载所以多于20ms) LED=LEDDis[LEDN[5]]; LED=LEDDis[LEDN[4]]; LED=LEDDis[LEDN[3]]; LED=LEDDis[LEDN[2]]; LED=LEDDis[LEDN[1]]; LED=LEDDis[LEDN[0]]; OldKeyUP = NewKeyUP; void Delay_510(void) //延时510微秒 1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。 2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! |