⑴ 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");
}