c脉冲语言
1. c语言里用什么语句实现脉冲
随便你输入那困耐山一天都能算星期几
#include<time.h>
#include<汪中stdio.h>
#include<conio.h>
#include<stddef.h>
#define BIG 1
#define SMALL 2
void info()
{
textcolor(RED);
gotoxy(37,11);
puts("WEEKDAY");
}
int runyear(int year) /*判断是否为闰年*/
{
return !(year%4)&&year%100||!(year%400);
}
void main()
{
int year,month,day,yeardata,monthdata;
char *weekday;
time_t lt;
struct tm *ptr;
lt=time(NULL);
do
{
clrscr();
info();
gotoxy(18,15);
printf("Please Input The Year: ");
scanf("%d",&year);
}while(year<0||year>9999);
yeardata=runyear(year);
do
{
clrscr();
info();
gotoxy(18,15);
printf("Please Input The Month:");
scanf("%d",&month);
}while(month<1||month>12);
switch(month) /*大小月,2月*/
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: monthdata=BIG; break;
case 4:
case 6:
case 9:
case 11: monthdata=SMALL; break;
case 2: monthdata=3; break;
}
l1:
clrscr();
info();
gotoxy(18,15);
printf("Please Input The Day:");
scanf("%d",&day);
if(monthdata==BIG)/*大亩袭月*/
{
if(day<1||day>31)
goto l1;
}
if(monthdata==SMALL)/*小月*/
{
if(day<1||day>30)
goto l1;
}
if(yeardata==0&&monthdata==3)/*平年2月*/
{
if(day<1||day>28)
goto l1;
}
if(yeardata==1&&monthdata==3)/*闰年2月*/
{
if(day<1||day>29)
goto l1;
}
ptr=localtime(lt);
weekday=asctime(ptr);
ptr->tm_mday=day;
ptr->tm_mon=month;
ptr->tm_year=year;
weekday=asctime(ptr);
clrscr();
gotoxy(13,30);
puts(weekday);
}
2. c语言如何中断函数控制脉冲
外部中断的常用功能
外部中断经常用来记录外部脉冲的个数,也就是当我们使用外部中断1时,如果想记录自身单片机的某个引脚的下降沿个数,只需用杜邦线把这个引脚和P3.3连接即可。
比如P2.3引脚产生这样的电平无规律跳转,则下降沿的个数为5
所以我们就用外部中断1来实现记录K4按键从按下到松手的抖动过程中经历了多少个下降沿,把下降沿的个数显示在数码管上。
2.程序思路
我们定义一个16位的全局变量pulse用来记录P2.3下降沿的个数,在中断函数中的任务就是简单的pulse自加,因为引脚遇到下降沿就会进入中断函数。
在主函数里就是负责数码管显示即可。
3.代码#include
#include //陆睁详见第六章第8讲
u16 pulse=0;
void main()
{
u16 x,PULSE_buf;
IT1 = 1; //下降沿触发模式
EX1 = 1;
EA = 1;
LED_Init();//初始化LED硬件模块
KEY_Init();//初始化按键功能模颤早块
ShowNumber(pulse);
while(1)
{
SEG_Scan();
if(PULSE_buf!=pulse)ShowNumber(pulse);//pulse不再是前一次的值,也就是pulse数值更新了,所以数码管缓存区也要更新pulse的数值以便显示出来
x++;
if(x>=50)//隔一段时间过来记录此时的pulse数值
{
x=0;
PULSE_buf=pulse;
}
}
}
//请把P3.3和P2.3用杜邦线连接起来
void EXTI1_IRQHandler() interrupt 2
{
pulse++;
}
大家多按几次K4,发现按下后松手茄悉雀的一个动作里有时pulse就自加了几次,显示在数码管上的数加了好几下。
3. c语言脉冲发生器
你说的是单片机C编程吧,不知道你要的脉冲频分是多少亩型,也不知道你用的是哪种单片机,只能给你个思路.
while(1)
{
定时1;
输出高电平信迅模猜号;
定时2;
输出低电平信号;
}
定时1和定时2要自己控制,可用单片机的定时器做,也可码旦以用循环做.
4. c语言编写单片机计数脉冲
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint times,freq;
sbit p35=P3^5;
main()
{
TMOD=0x01;
TH0=0;
TL0=0;
while(1)
{
while(p35);
TR0=1;
while(!p35);
while(p35);
TR0=0;
times=TH0*256+TL0;
freq=1000000/times;
//处理频率,自己做
}
}
5. 单片机脉冲计数问题(C语言)
设计数值为num
num=0;
P0^0=jishu;
jishu=1;检测低电平IO要设置高
main()
{
if(jishu==0)
{
num++;
whlie(jishu==0);为了防止P0^0一直为低电平num一直在加
}
if(num==9990)
{
P0^1=0;
num=0;继续下一轮计数
}
}