仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <AT89X51.H>
- unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
- 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9显示代码
- unsigned char Count;
- void delay10ms(void) //延时10ms函数
- {
- unsigned char i,j;
- for(i=20;i>0;i--)
- for(j=248;j>0;j--);
- }
- void main(void)
- {
- Count=0;
- P0=table[Count/10]; //定义P0口为十位显示位
- P2=table[Count%10]; //定义P2口为个位显示位
- while(1)
- {
- if(P3_7==0) //查询P3.7为0则延时
- {
- delay10ms(); //调用延时函数
- if(P3_7==0) //延时后再查询P3.7脚,以去抖动.如确实为0,则计数加1
- {
- Count++;
- if(Count==100) //查询计数是否到100,如果到则清零
- {
- Count=0;
- }
- P0=table[Count/10];
- P2=table[Count%10];
- while(P3_7==0);
- }
- }
- }
- }
复制代码
所有资料51hei提供下载:
10 0-99计数器.rar
(22.47 KB, 下载次数: 15)
|