當前位置:首頁 » 編程軟體 » 編程實現自檢

編程實現自檢

發布時間: 2022-03-31 10:52:30

⑴ 單片機編程,自檢程序

我在這里給出思路如下:
啟動周期為1秒的定時器中斷,在中斷程序中根據跑馬燈顯示標志、L1顯示標志、L2顯示標志、L1顯示的當前數值、L2顯示的當前數值(這些應該定義在RAM中,並在啟動程序時初始化),控制輸出口以實現跑馬燈以及L1和L2的顯示。
整個程序應該是一個循環,在循環中監測鍵盤(P3.0、3.1、3.2、3.3 ),根據鍵盤的狀態設置相關的標志。

詳細的代碼在這里我就不給出了,沒有時間去做。

c語言編程 發出像開機自檢時的聲

#include <stdio.h>
#include <stdlib.h>
#include <dos.h>

void main()
{
unsigned int a;
while(1)
{

a=getchar();
switch(a)
{
case'1':
sound(100);
delay(100);
nosound();
break;

case'q':
{
exit(1);
break;
}
}
}
}

主要是調用庫函數.

⑶ c語言編程里自動檢測到輸入結束的方法

char str[1000];
gets(str);
再根據需要對字元串的內容進行處理。

⑷ C語言編程實現

所有轉換
一個函數實現
原來貼的有點問題
改了
#include<stdio.h>
#define size 64
void transform(int n1,char c[size],int n2)
{
int a[size]={0},j,i=0;
long int num=0;
if(n1>10)
{
while(c[i])
{
if(c[i]>='0'&&c[i]<='9')
num=num*n1+c[i++]-48;
else if(c[i]>='A'&&c[i]<='Z')
num=num*n1+c[i++]-55;
else if(c[i]>='a'&&c[i]<='z')
num=num*n1+c[i++]-87;
else
{
puts("error\n");
return;
}
}
i=0;
}
else
while(c[i])
{
if(c[i]<'0'||c[i]>'9')
{
puts("error\n");
return;
}
num=num*n1+c[i++]-'0';
}

i=0;
while(num!=0)
{
a[i++]=num%n2;
num/=n2;
}
printf("(%s)%d轉換為:\n(",c,n1);
if(n2<10)
{
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf(")%d\n",n2);
}
else
{
for(j=i-1;j>=0;j--)
if(a[i]>=10)
printf("%c",a[j]+55);
else
printf("%d",a[j]);
printf(")%d\n",n2);
}

}
main()
{
int n1,n2;
char c[size]={0};
do
{
puts("輸入現在數的進制類型:\n");
scanf("%d",&n1);
puts("輸入需要轉換的數據:\n");
scanf("%s",c);
puts("輸入目標數的進制類型:\n");
scanf("%d",&n2);
transform(n1,c,n2);
puts("輸入y繼續,按任意鍵退出:\n");
getchar();
}while(getchar()=='y');
}
這個程序有錯誤提示
還有好可以實現16進制之內的任意進制數的相互轉換
我真不想拿上來
如果不明白
留言
必回

⑸ C語言:編程實現輸入,輸出

方法很多,我用數組實現。
定義20大小數組,下標加1就是1~20的數字,數組元素值就是輸入狀態。

#include<stdio.h>

#include<windows.h>

#include<conio.h>

void show(int *nums);

int main()

{

int nums[20]={0};//表示1到20個數字的狀態,0表示未被輸入,1表示已被輸入

int save[19],*p=save,n=19,in=0,flag;

while(n--)

{

flag=1;

system("cls");

show(nums);

printf("請輸入一個數字(1~20):"),scanf("%d",&in);

while(in<1 || in>20 || nums[in-1]==1)

{

if(in<1 || in>20)

printf("輸入錯誤!只能輸入1~20的整數!...按任意鍵重新輸入... "),getch();

else if(nums[in-1]==1)

printf("輸入錯誤!數字%d已輸入,不能重復!...按任意鍵重新輸入... ",in),getch();

flag=0;

n++;

break;

}

if(flag)

*p=in,nums[in-1]=1;

}

return 0;

}

void show(int *nums)

{

int i;

printf("已輸入數字:");

for(i=0;i<20;i++)

if(nums[i])

printf("%d ",i+1);

printf(" 未輸入數字:");

for(i=0;i<20;i++)

if(!nums[i])

printf("%d ",i+1);

printf(" ");

}

⑹ 用C語言編程實現~~急

#include "stdio.h"
#include "stdlib.h"

#define M 3
#define N 3
//指針數組
int a[M][N];
int b[M][N];
int c[M][N];

void matrixMul(int b[][M],int c[][N]);
void matrixAdd(int b[][N],int c[][N]);
void matrixSub(int b[][N],int c[][N]);

int main()
{
int i,j,temp=0;
printf("Please input int matrix b[%d][%d]\n",M,N);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
scanf("%d",&temp);
b[i][j]=temp;
}
printf("Please input int matrix c[%d][%d]\n",M,N);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&temp);
c[i][j]=temp;
}
}

//輸出原矩陣
printf("Now print resource matrix b[%d][%d]=",M,N);
for(i=0;i<M;i++){
printf("\n");
for(j=0;j<N;j++)
printf("%d ",b[i][j]);
}
printf("\n");
printf("Now print resource matrix c[%d][%d]=",M,N);
for(i=0;i<M;i++){
printf("\n");
for(j=0;j<N;j++)
printf("%d ",c[i][j]);
}

if (M == N)
{
matrixMul(b,c); //調用矩陣相乘
//輸出矩陣相乘結果
printf("\n");
printf("Now printm matrixMul results matrix a[%d][%d]=B*C:",M,N);
for(i=0;i<M;i++)
{
printf("\n");
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
}
}
else
{
printf("matrix Error,check and try again!!! ");
}
//輸出矩陣相加結果
matrixAdd(b,c);
printf("\n");
printf("Now printm matrixAdd results matrix a[%d][%d]=B+C:",M,N);
for(i=0;i<M;i++)
{
printf("\n");
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
}

//輸出矩陣相減結果
matrixSub(b,c);
printf("\n");
printf("Now printm matrixSub results matrix a[%d][%d]=B-C:",M,N);
for(i=0;i<M;i++)
{
printf("\n");
for(j=0;j<N;j++)
printf("%d ",a[i][j]);
}

return 0;
}

void matrixMul(int b[][M],int c[][N])
{
int i,j,k;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
for(k=0;k<N;k++)
a[i][j]+=b[i][k]*c[k][j];
}
}
void matrixAdd(int b[][M],int c[][N])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
a[i][j]=b[i][j]+c[i][j];
}
}
}

void matrixSub(int b[][M],int c[][N])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
a[i][j]=b[i][j]-c[i][j];
}
}
}

我大概看了下,加減乘都能實現

網上資料

⑺ 編程實現

我寫過一個,不過我設置的是10個小朋友做得測試,你看看:
代碼:
--------------------------------------------------------------------------------------------------------
#include<iostream>

using namespace std;

const int MAX_USER=10;

const int OUT_NUM=3;

const int STATUS_IN=1;
const int STATUS_OUT=0;

const int MARK_OUT=2;

const int MARK_MASK=OUT_NUM;

typedef struct{
int id;
int status;
int marked;
} uinfo,*pinfo;

void print_info(pinfo user);

int circle(pinfo users,int total,int nth)
{
int tu=total;
int i=0;
int cur_mark=0;
while(tu>1)
{
i=i%total;
cur_mark%=nth;
if(users[i].status!=STATUS_OUT)
{
users[i].marked=cur_mark;
if(users[i].marked==MARK_OUT)
{
tu--;
users[i].status=STATUS_OUT;
cout<<"remove user's info:\n";
print_info(&users[i]);
}
}else{
//check next element
i++;
continue;
}
i++;
cur_mark++;

}

i=0;
while(users[i].status==STATUS_OUT)i++;
return i;
}

void init_info(pinfo user,int size)
{
int i=0;
for(i=0;i<size;i++)
{
user[i].id=i+1;
user[i].status=STATUS_IN;
user[i].marked=MARK_OUT-OUT_NUM;
//print_info(&user[i]);
}
}
void print_info(pinfo user)
{
cout<<"--------------------info -----------------\n";

cout<<"id:\t"<<user->id<<endl;
cout<<"status:\t"<<user->status<<endl;
cout<<"marked:\t"<<user->marked+1<<endl;
cout<<"----------------------------------------\n";
}
int main()
{
uinfo *users=new uinfo[MAX_USER];
init_info(users,MAX_USER);
int findNO=0;
findNO=circle(users,MAX_USER,MARK_MASK);
cout<<endl;
cout<<endl;
cout<<"**************************************************\n";
//cout<<findNO<<endl;
cout<<"find last one :\n";
print_info(&users[findNO]);
cout<<"**************************************************\n";
return 0;
}
運行結果:
----------------------------------------------------------------------------------------------------------
remove user's info:
--------------------info -----------------
id: 3
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 6
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 9
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 2
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 7
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 1
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 8
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 5
status: 0
marked: 3
----------------------------------------
remove user's info:
--------------------info -----------------
id: 10
status: 0
marked: 3
----------------------------------------

**************************************************
find last one :
--------------------info -----------------
id: 4
status: 1
marked: 2
----------------------------------------
**************************************************

⑻ 求PLC編程軟體及模擬自檢軟體。

歐姆龍的CX-one就可以模擬的。

⑼ 三菱plc中如何編自檢程序,用fx3u

摘要 雙擊桌面上三菱plc編程軟體 GX work2 創建新工程 點擊工程——新建工程選擇工程類型:簡單工程 —— plc系列:FXCPU—— plc類型:FX3U/FXUC——編程語言:梯形圖設置

熱點內容
食物語上傳 發布:2025-01-24 07:58:44 瀏覽:753
編程相關書籍 發布:2025-01-24 07:55:45 瀏覽:430
英雄聯盟手游需要哪些配置 發布:2025-01-24 07:42:03 瀏覽:984
regex可以靜態編譯嗎 發布:2025-01-24 07:40:32 瀏覽:79
怎麼編譯rec 發布:2025-01-24 07:39:04 瀏覽:56
卡片沒加密 發布:2025-01-24 07:33:56 瀏覽:380
linux備份mysql 發布:2025-01-24 07:26:54 瀏覽:390
蘋果手機忘記id密碼怎麼刷機 發布:2025-01-24 07:26:47 瀏覽:694
安卓手機系統怎麼安裝 發布:2025-01-24 07:23:31 瀏覽:537
pc伺服器是什麼樣的 發布:2025-01-24 07:23:21 瀏覽:594