利用51单片机来实现,按键控制计数0-99,超过99返回从0开始继续计数(用7SEG-MPX2-CA数码管显示)
1)采用按健产生计数值:按下按健,THX和TLX自增1
2)采用2位数码管显示,计数初值为0
3)当计数达到99时,再次按下按健,计数值从1开始增加
单片机的P3.2(INTT0)外接一个按键,当键按下时,该端口有一个下降沿的跳变,利用该跳变信号触发外部中断。通过中断程序实现按键的计数,并将该计数值通过2个数码管,以软件译码动态刷新方式显示,显示00~99的数字。
看这个,跟你要求的差不多 ,你自己稍稍改下就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 汇编不会
本回答被网友采纳我的图和你给的代码有些不匹配,我不怎么动汇编语言,能不能帮忙再改一下