用C语言如何开51单片机的计数器,最好编个实例程序

如题所述

#include <reg51.h>
#define uchar unsigend uchar
#define uint unsigned int
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};//数码管段码

void main()
{
uint k;
TMOD=0X50;//设置模式为1,计数模式
TH1=0X00;
TL1=0X00;//初始值设定
IE=0X00;//关全局中断
TR1=1;//开定时计数器1运行
while(1)
{

if(TL1==16)//进行判断,为16时,计数值归零
TL1=0X00;
k=TL1;
P0=LED7Code[k];//数码管进行显示
}
}
此程序目的见http://zhidao.baidu.com/question/350774230.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-05
楼上的就是对的,打开计数器就打开他的开关就行了,选择模式
第2个回答  2011-12-05
================================
下面的更简单:
;--------------------------
ORG 0000H
MOV DPTR, #TABLE
MOV TMOD, #05H ;T0计数方式1
MOV TL0, #0 ;初始值
SETB TR0 ;P3.4(T0)外接一个单脉冲按键.
S1: MOV A, TL0 ;按一下,TL0就会加一.
ANL A, #15
MOVC A, @A + DPTR
MOV P1, A ;P1口外接一个共阳数码管,显示加一的数字.
SJMP S1 ;循环读出TL0
;--------------------------
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,0F9H,0A4H,0B0H,99H,92H
;--------------------------
END