❶ 用c語言編寫控制電機運動的程序
1、有三個輸入,分別是一個按鈕、兩個霍爾感測器(也就是接近開關),我用P0.0到P0.2來代替;輸出2個或以上(這看接什麼顯示器,如果是PC的話,就不用數字量輸出,直接串口就可以了)控制正反轉的繼電器管腳用P1.0、P1.1;需要與一個全局變數轉動次數k連接起來,另外兩個輸入接近開關選用NPN感測器或用光電隔離,總之有效信號能把管腳電壓拉低就可以。
2、常式:
#include<reg51.h>//選用晶振11.0592MHz
unsignedchark=0;//k表示正反轉次數
sbitX0=P3^2;//調節按鈕
sbitX1=P1^1;//上限位接近開關信號
sbitX2=P1^2;//下限位接近開關信號
sbitY1=P0^0;//電機上升(注意:我使用的是管腳輸出為0時候,電機運動,這樣可以避免啟動時候,單片機自復位對電機點動的影響)
sbitY2=P0^1;//電機下降
voiddelay50ms(unsignedinti)
{
unsignedintj;
for(i;i>0;i--)
for(j=46078;j>0;j--);
}
main()
{
IT0=1;//下降沿觸發
EX0=1;//開P3.2外部中斷
EA=1;//總中斷開
while(1)
while(k)
{
Y1=0;//正轉
while(X1==1);//等待正轉接近開關反應
Y1=1;//正轉停
delay50ms(1);//停止時間50ms
Y2=0;//反轉
while(X2==1);//等待反轉接近開關反應
Y2=1;//反轉停
k--;//圈數減一
}
}
voidcounter0(void)interrupt0
{
k++;//外部中斷控制圈數加一
//這個位置可以加你顯示程序
}
❷ 如何用C語言編寫流程圖
1、傳統流程圖:
2、思路:比大小,10個數,標上標簽,依次為1,2,3....10。然後第1個跟第二個比較大小,如果第1個大於第二個,那麼交換下1跟2的標簽,如果第1個不大於2第二個,不交換標簽,接著比較第二個跟第三個,比完最後一個為止。10標簽的就是最大的那個數。
3、用C語言方法:
讀入a[1~10]
max=a[1];
for(i=1;i<=10;i++) // i從1~10查找
if(max<a[i]) max=a[i];
輸出max
結束
❸ C語言編程題
#include<stdio.h>
int main()
{
int a,i;
for(i=1;i<=36;i++)
{
a=7*i+56;
if(a==105)printf("%d,%d,%d,%d,%d,%d,%d\n",i,i+1,i+3,i+6,i+10,i+15,i+21);
}
}