两位数码管显示按键的按下的次数,从0-99,按键按到99后下一次清零,适合刚接触单片机的同学。内容包含keil+Proteus
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- /*两位静态数码管显示按键次数*/
- //头文件
- #include "reg51.h"
- /* 定义 uint uchar */
- typedef unsigned int uint;
- typedef unsigned char uchar;
- uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
- 0x92,0x82,0xf8,0x80,0x90}; //0~9的数组 (共阳极)
- sbit key = P1^0; //定义按键
- void Delay_ms(uint z); //声明延时函数
- void main(void) //主函数
- {
- uint i;
- while(1)
- {
- if(key == 0) //判断按键是否按下
- {
- Delay_ms(10); //延时10ms
- if(key == 0) //再次判断
- {
- i++; //按键次数
- while(key == 0); //判断是否松开按键
- if(i == 100) i=0; //如果到达99,下一次回到0
- }
- }
- P2 = table[i/10]; //显示十位
- P3 = table[i%10]; //显示各位
- }
- }
- void Delay_ms(uint z) //延时函数
- {
- while(z--) //@12.000MHz
- {
- unsigned char i, j;
-
- i = 2;
- j = 239;
- do
- {
- while (--j);
- } while (--i);
- }
- }
复制代码
所有资料51hei提供下载:
两位静态数码管显示独立按键的次数.rar
(54.84 KB, 下载次数: 29)
有什么单片机的问题大家也可以留言评论!
|