📄 count.c
字号:
/********************************************************************
* 主 页 : HTTP://WWW.QLMCU.COM
*
* 程序功能 : 00~99 计数器实验
*
* 应用软件 : KEIL C
*
* 版 本 : KEIL 7.06
*
* 硬 件 : WS803、WS804、WS806
*
* 创建时间 : 2005-07-28
*
* 注:为了有更多实用的实验程序供大家学习,部分程序参考网上的资源,
* 在此谢谢这些无私奉献的朋友!!!
*
********************************************************************/
/* 程序详细功能介绍:
* 具体的硬件结构,大家可以看 WS 系列产品的原理图
* 利用AT89S51单片机来制作一个手动计数器,在AT89S51单片机的P3.3管脚接一个轻触开关,
* 作为手动计数的按钮. 数码管驱动采用动态扫描方式用单片机的P0.0-P0.7驱动数码管的段码,
* P1.3 控制个位数码管的共阳极公共端,P1.2 控制十位数码管的共阳极公共端
* 通过按一下P3.3按键,数码管做 1 的累加, 实现00~99的计数功能,当计到99时又从00开始.
* 大家可自行修改程序,扩展到0000~9999的计数范围
*/
#include <AT89X51.H>
unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char Count;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main(void)
{
Count=0;
while(1)
{
P0=table[Count/10];
P1_2=0;
delay10ms();
P1_2=1;
P0=table[Count%10];
P1_3=0;
delay10ms();
P1_3=1;
if(P3_3==0)
{
delay10ms();
if(P3_3==0)
delay10ms();
delay10ms();
{
Count++;
if(Count==100)
{
Count=0;
}
P0=table[Count/10];
P2=table[Count%10];
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -