急用-这个程序哪里错了,功能是实现延时可调的功能

问题描述

这个程序哪里错了,功能是实现延时可调的功能

k4为模式选择有三种模式,按压切换。k1~k3为设置个十百位的按键,按压加一,大9回0。

#include
#include
#include
sbit P2_0=P2^0;

sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit K1=P2^4;

sbit K2=P2^5;
sbit K3=P2^6;
sbit K4=P2^7;
sbit out =P1^5;

sbit P1_3 = P1^3;

unsigned int t,a,b,c,second20,second;
unsigned char s,kc;
unsigned char display_code[13]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,

0xf8,0x80,0x90,0x88,0x83,0xc6

};
/*******延时1ms程序********/
void delay(unsigned int count)
{
unsigned int i,k;
for(i=0;i
{
for(k=0;k
}
}
/*******延时1us程序********/
void delay_us(unsigned int us)
{
unsigned int i;
us=us*5/4;
for(i=0;i
}
/********初始化子程序*************/
void init(void)
{
TMOD=0x01;
TH0=0x3C;
TL0=0X0B;
TF0=0;
TR0=0;
a=0;
b=0;
c=0;
s=10;
second20=0;
second=0;
ET0=1;
EA=1;
}
/******设置键判断程序********/
void key()
{
if(K4==0)
{
kc=(kc+1)%3;
switch(kc)
{
case 0: s=10;
if(P1_3==0)
{ out=0; }
else
{ out=1; }
break;
case 1: s=11;
if(P1_3==0)
out=0;
else TR0=1;
break;
case 2: s=12;
if(P1_3==0)
{
TR0=1;
}
else
{ out=1; }
break;
default: break;
}
}
}
void aj_t()
{
if(K3==0)
{
delay(10);
if(K3==0) a++;
{if(a>=10) a=0;}
}
if(K2==0)
{
delay(10);
if(K2==0) b++;
{if(b>=10) b=0; }

}
if(K1==0)
{
delay(10);
if(K1==0) c++;
{if(c>=10) c=0;}
}
}
void main()
{

init();

K3 = 1;
K2 = 1;
K1 = 1;
K4 = 1;
t=a*100+b*10+c;
key();
aj_t();
while(1)
{

P0=display_code[s];
P2_3=1;
delay(1);
P2_3=0;
delay_us(100);
P0=display_code[a];
P2_2=1;
delay(1);
P2_2=0;
delay_us(100);
P0=display_code[b];
P2_1=1;
delay(1);
P2_1=0;
delay_us(100);
P0=display_code[c];
P2_0=1;
delay(1);
P2_0=0;
}
}
/******中断计时程序********/
void timer1(void) interrupt 1 using 0
{
TH0=0x3C;
TL0=0x0B;
second20++;
if(second20==20)
{
second20=0;
second++;
if(t==second)
{
second=0;
TR0=0;
if(P1_3==0)
out=0;
else
out=1;
}
}
}

时间: 2025-01-24 00:53:07

急用-这个程序哪里错了,功能是实现延时可调的功能的相关文章

printf-去掉字符串的前导空格,这个程序哪里错了

问题描述 去掉字符串的前导空格,这个程序哪里错了 #include #include void main() { char s[100]; scanf("%d", &s); int p=0,i; for(i=0;s[i];i++) { if(s[i]==' ') p++; else break; } for(i=0;s[i];i++) { s[i]=s[i+p]; } printf("%s",s); } 解决方案 #include <stdio.h&g

请问一下这个c程序哪里错了??谢谢!!

问题描述 请问一下这个c程序哪里错了??谢谢!! 题目:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面的m个数,写出一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数.(如:输入1 2 3 4 5 ,n=5,m=2,输出4 5 1 2 3) #include int main() {void move(int ,int,int); int n,m,number[20],i; printf("how many number?"); scanf("%d

printf-下面这个图形程序哪里错了 ?

问题描述 下面这个图形程序哪里错了 ? #includeint main(){char a[5][9];int ijk;for(i=0;i<5;i++){for(j=0;j<=i;jprintf("" "");for(k=0;k<9;k++)a[i][k]='*';printf(""%c""a[i][k]);printf(""n"");}return 0;}* * *

这程序哪里错了,运行老出现“unkonw character &amp;amp;#39;0xa1&amp;amp;#39;,我是用英语写的

问题描述 这程序哪里错了,运行老出现"unkonw character '0xa1',我是用英语写的 #inciude int main() {int a=1,b=2; for(;a<8;a++) {b+=a;a+=2} printf("%d,%d",a,b); return 0;}这个题的输出结果是(),问一下: 解决方案 10,14 http://codepad.org/AZtOd1R5 在线上机验证 以后这种问题也可以你自己直接在上面验证 解决方案二: {b+=a

iphone-ios6的程序报错了错误

问题描述 ios6的程序报错了错误 ios6程序中显示了可达性错误,请明白的人帮我解决一下这个错误,不胜感激: @implementation Reachability static void ReachabilityCallback(SCNetworkReachabilityRef target SCNetworkReachabilityFlags flags void* info) {#pragma unused (target flags)NSCAssert(info != NULL @"

c语言-C语言改错题求教求教该程序哪里错了??

问题描述 C语言改错题求教求教该程序哪里错了?? 改错题1===从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积 #include "stdio.h" #define M 10int a[M][M]={0};fun(int **a,int m)_ { int j,k; for(j=0;j<m;j++) for(k=0;k<m;k++) a[j][k]=j*k; } main() { int i,j,n; printf("Enter n:&quo

我的程序哪里错了?-shell中程序调试问题 不知道哪错了 求解答

问题描述 shell中程序调试问题 不知道哪错了 求解答 #!/bin/bashfunction a {read -p ""input: "" valueecho -n ""doubling the value ""return $[ $value * 2 ]} aecho ""the new value is $?"" 我想让输入的数的两倍大于255时,程序输出的值为1如果我输入的数的

c语言-刚学C,编了个小程序出错了,请大神帮忙看一下。

问题描述 刚学C,编了个小程序出错了,请大神帮忙看一下. 知道长方形的长和宽,求面积和周长 #include main() { float x,y,a,b; printf ("请输入长和宽且用逗号分隔:); scanf ("%f,%f,&x,&y); a=x*y; b=(x+y)*2; printf ("面积=%f,周长=%fn",a,b); } 解决方案 错误一:include后面缺少头文件包含 错误二:printf中没有右半边的引号 错误三:sc

大神帮忙看看,这个程序哪里错了,以及怎么解释

问题描述 大神帮忙看看,这个程序哪里错了,以及怎么解释 void allocate (int *ptr) { ptr = new int(0); } void test() { int *i=0; allocate(i); int k=*i; cout<<k<<endl; Release(i); } 解决方案 你的allocate传的是一级指针,操作的只是main函数里的i指针的一个拷贝 要改变指针的指向必须要改成一级指针的引用或者二级指针 void allocate (int *