各位帮帮忙,我想写一个用51单片机控制的程序。
用c语言写程序
实现功能是按键计数数码管显示的数是输出的脉冲数。(按键每按一下数码管数就+1输出的脉冲数也就随着+1)
注:在2位数码管前要用到74HCT164。T=10,在100ms内,当按键按一下数码管显示1,输出一个脉冲,按键按2下数码管显示2,输出两个脉冲,,按键依次按到10,数码管显示10输出10脉冲(这时在100ms内,脉冲数全部输出)
用keil5写,最好要有proteus仿真图
#include<reg51.h>
sbit S1=P1^0;
unsigned char smg[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void Delay_ms(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=124;j>0;j--);
}
void main(){
unsigned char i=0;
P0=0xff;
while(1)
{
if(S1==0)
{
Delay_ms(120);
if(S1==0)
{
P0=smg[i];
if(i<9) {
i++;}
else{
i=0;
}
}
while(S1==0);
}
}
}
给你一个思路,
1.按键按一下,发一个脉冲会不会,程序写好;
2.按键按一下,数码管数字+1会不会,程序写好;
3.两段程序合并到一起,搞定。
4.可以将重叠的部分优化。