当前位置:首页 » 编程软件 » 编程实现自检

编程实现自检

发布时间: 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——编程语言:梯形图设置

热点内容
408哪个配置合适 发布:2025-01-24 05:01:54 浏览:882
oraclesql删除重复 发布:2025-01-24 05:01:12 浏览:408
少儿编程排行 发布:2025-01-24 04:40:46 浏览:698
搭建服务器怎么使用 发布:2025-01-24 04:19:34 浏览:444
平行进口霸道哪些配置有用 发布:2025-01-24 04:19:32 浏览:874
ngram算法 发布:2025-01-24 04:03:16 浏览:659
迷宫游戏c语言 发布:2025-01-24 03:59:09 浏览:358
荣耀30pro存储类型 发布:2025-01-24 03:54:02 浏览:557
客户端文件上传 发布:2025-01-24 03:48:44 浏览:258
推特更改密码的用户名是什么 发布:2025-01-24 03:45:55 浏览:597