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;繼續下一輪計數
}
}