⑴ 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);
}
⑵ 用c语言实现在p1.0和p1.1 5khz方波输出及1khz占空比为百分之十的矩形波输出
/*用keil3与proteus7.4联调,自己下载后开启联调设置,在proteus中画个最小单片机系统,再用单片机连接keil的编译文件.HEX即可。假设时钟频率12MHz,执行一条语句所用时间1us,2kHz为500us,即定时器频率定时500us,如果用T0,则初值为TH0=0x1f,TL0=0x40;占空比7:10,脉冲宽度350us,用T1,初值TH1=0x15,TL1=0xe0。*/
#include<reg51.h>
sbit OUTW=P1^0;
void init()
{
EA=1;
TMOD=0x11;
ET0=1;
ET1=1;
TR0=1;
TR1=0;
OUTFW=0;
}
void main()
{
init();
while(1);
}
void timer0 interrupt 1
{
TH0=0x1f;
TL0=0x40;
TH1=0x15;
TL1=0xe0;
OUTW=1;
TR1=1;
}
void timer1 interrupt 3
{
OUTW=0;
TR1=0;
}
//注意:调频就是在IO变量在不同的时间置1,调宽就是在不同的时间置0
⑶ 如何用C语言实现3秒的脉冲
输出高电平,延时(脉宽),输出
低电平
,延时至三秒(周期).
重复上述步骤.
⑷ c语言如何编程
C语言编程如何快速实现
在我们初次学习C语言的时候,总想着快速的实现编译过程。那么C语言编程究竟是如何实现的呢,当然是要通过自己喜欢的编译器来编译完成,那么今天就为大家介绍C语言编程是如何快速的实现。
1. 首先我们下载一款适合C语言的编译器,今天为大家讲解的C语言编译器为CodeBlocks,该编译器没有太过复杂,很符合初学者,简单上手快。
⑸ C语言编程
适合计算机的算法:设这个四位数为xy12,
①减9能被9整除,xy12-9=xy03,xy03此数除9的余数=0;
②减8能被8整除,xy12-8=xy04,xy04此数除8的余数=0;
③减7能被7整除,xy12-7=xy05,xy05此数除7的余数=0;
算法的c语言实现:
#include
<stdio.h>
int
main
()
{
inta,b,c,s,x,y;
for(x=1;x<=9;x++)
for(y=0;y<=9;y++)
{
a=(x*1000+y*100+3)%9;
b=(x*1000+y*100+4)%8;
c=(x*1000+y*100+5)%7;
if(a==0&&b==0&&c==0)
{
s=x*1000+y*100+12;
printf("This
number
is:%d",s);
}
}
return
0;
}
程序的运行结果:
⑹ 如何编程实现51单片机每隔 t 时间发出一个脉冲求C语言详细编程。。。
给你个基本框架,根据你的具体要求再修改吧。使用定时1中断实现,精度比较高。
#include <reg52.h>
#define PERIODH (65536l-10000l)/0X100 //设10ms中断1次TH1初值
#define PERIODL (65536l-10000l)%0X100 //设10ms中断1次TL1初值
sbit P1_1 = 0x91; //假设从P1.1输出脉冲
unsigned int iCount; //延时间隔时间变量
unsigned int iPulseCount; //脉冲脉宽时间变量
void timer1() interrupt 3 using 1
{//定时器每0.01秒一次中断
TH1 = PERIODH;
TL1 = PERIODL;
if(iCount)
{//计数未到0,计数器-1
iCount--;
}
if(iPulseCount)
{//计数未到0,计数器-1
iPulseCount--;
}
}
main()
{
TMOD = 0X10;//方式1
EA = 1;//总中断允许
ET1 = 1;//定时器1中断允许
TR1 = 1;//启动定时器1
P1_1 = 0; //脉冲输出端口,假设输出正脉冲,预置为低电平
while(1)
{
iCount = 200;//每间隔200*10ms = 2秒一个脉冲,t值变化改此处
while(iCount);//等待2秒中
P1_1 = 1; //置为高电平,输出正脉冲
iPulseCount = 10;//每间隔10*10ms = 100ms一个脉冲,脉宽变化改此处
while(iPulseCount);//高电平保持100ms
P1_1 = 0; //置为低电平,输出正脉冲结束
}
}
⑺ 简述开发一个c语言程序的步骤
1 写代码。这是最基础的一步,即实现C语言的源文件(.c,必需),和可能的头文件(.h,非必需)。
2 编译。将编写好的代码,通过编译工具,转换为目标文件。此步中,会对文件内部及包含的头文件进行语法语义的分析检查。如果出错,则必须返回到一步对代码进行修改,直到没有错误为止。
3 链接。将目标文件链接成可执行文件。此步会对文件直接的关联进行检查。如果出错需要返回到1修改代码。直到没有错误。
4 运行。这个是最后一步,也是C语言的最终目的。
5 在运行结果与期望不符时,需要检查原因,修改代码,重新执行一二三直到程序没有问题。
⑻ 用C语言写出实现以下函数的对应程序,要求:输入X,计算并输出函数Y的值,保留两位小数。
#include<stdio.h>
float x,y;
void main()
{
printf("Please Input x:\n");
scanf("%f",&x);
if(x==0) y=20;
else if(x<0)
y=x+10;
else y=30*x;
printf("Y=%5.2f",y);
}
⑼ 用C语言编程实现以下输出: ***** ***** ***** *****
星号并排:
显示结果【***** ***** ***** ***** 】
#include <stdio.h>
void main()
{
printf("***** ***** ***** *****");
}
星号换行显示:
显示结果【
*****
*****
*****
*****
】
#include <stdio.h>
void main()
{
printf("*****\n*****\n*****\n*****");
}
星号换行递进显示:
显示结果【
*****
*****
*****
***** 】
#include <stdio.h>
void main()
{
printf("*****\n\t*****\n\t\t*****\n\t\t\t*****\n");
}