设计十进制0-99的计数器,采用按键计数,数码管显示,采用单片机内部的定时计数器完成计数功能

利用51单片机来实现,按键控制计数0-99,超过99返回从0开始继续计数(用7SEG-MPX2-CA数码管显示)
1)采用按健产生计数值:按下按健,THX和TLX自增1
2)采用2位数码管显示,计数初值为0
3)当计数达到99时,再次按下按健,计数值从1开始增加
单片机的P3.2(INTT0)外接一个按键,当键按下时,该端口有一个下降沿的跳变,利用该跳变信号触发外部中断。通过中断程序实现按键的计数,并将该计数值通过2个数码管,以软件译码动态刷新方式显示,显示00~99的数字。

第1个回答  2012-05-22

看这个,跟你要求的差不多  ,你自己稍稍改下就OK啦~\(≧▽≦)/~

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar DSY_CODE[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};

uchar count=0;

void main()

{

P0=0X00;

P2=0X00;

TMOD=0X06;//TMOD=0000 0110B,C/T=1,工作于计数方式

TH0=TL0=256-1;

ET0=1;   //允许T0中断

EX0=1;   //允许INT0中断

EA=1;    

IP=0X02;   //定时器0中断优先

IT0=1;     //INT0中断触发为下降沿触发

TR0=1;    //启动T0

while(1)

{

P0=DSY_CODE[count/10];

P2=DSY_CODE[count%10];

}

}

void clear_counter() interrupt 0

{

count=0;

}

void key_counter() interrupt 1

{

count=(count+1)%100;

}

追问

我要的是汇编语言的,有没有汇编语言的

追答

sorry 汇编不会

本回答被网友采纳
第2个回答  2012-05-22
怪了,这个问题不是回答了?追问

我的图和你给的代码有些不匹配,我不怎么动汇编语言,能不能帮忙再改一下

相似回答