注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 |
首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 |
选择分类:当前分类——学单片机 相关联或者相类似的文章: 和初学者说说我学单片机的经过(773) 通过日期算星期的C51源程序(757) AT89C2051制电子钟时钟源程序 (754) 多功能AT89C2051倒计时器(753) 24c256程序(734) ★单片双路四位计数器程序全0快版(732) C51的一些误区和注意事项(730) DS1820高精度测温的理论依据(729) AT89C51制作的简单计数器(724) 89S51单片机(722) 用RC充电的方法实现温度的检测(722) 关于单片机的N多问题(719) 采用AT89C2051兼容芯片制作六位数显多路定时电子钟(714) 数字式温度/湿度测量计(712) 超声波智能测距传感模块(707) 青春舞曲的音乐程序 (706) 35. DS18B20数字温度计使用 (700) 超声波测距 (698) 单片机演奏音乐的实现(695) OCM12232系列点阵型液晶显示模块 (695) 首页 前页 后页 尾页 本站推荐: | 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、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! |
本站协议 |
版权信息 |
关于我们 |
本站地图 |
营业执照 |
发票说明 |
付款方式 |
联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102 E-mail:51dz$163.com($改为@);Tel:(0755)27947428 工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389 |