當前位置:首頁 » 編程語言 » c語言掃描代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言掃描代碼

發布時間: 2022-09-23 00:38:17

A. C51 4*4鍵盤掃描程序(c語言)

鍵盤為4*4矩陣式連接,一共有16個按鍵。 工作原理為。P1端的低四位為列,高四位行。所先置低四位為低,高四位為高,當有按鍵按下時高四位就會有某位被拉低。只要判斷高四位不為全高就說明有按鍵按下。判斷有按鍵按下後就要判斷是某位按下的,方法為,選將高四位的某一位置低。判斷低四位是否有低電平出現。依次對高四位的每位置低並判斷低四位出現的低電平。如高四位某位置低後低四某也有出現低電平。這樣就能判斷出低四位與高四位相連的位某位按鍵被按下了。通過定義好的編碼就可以查出是某個按鍵被按下了,程序將按鍵值通過查表並發送到LED上顯示。 6位LED為動態掃描方式 。先顯示第一位,延時一定時間後在顯示第二位依次類推。。。 共有17個按鍵。按下按鍵後數碼管顯示相應的數字,並左移一位。uchar kbscan(void) /*鍵掃描函數*/{uchar j; uchar sccode,recode; P2=0x0f; /*發0行掃描碼*/ if((P2 & 0x0f)!= 0x0f) /*若有鍵按下*/ { dlms(); if((P2&0x0f)!= 0x0f) /*逐行掃描初值*/ { sccode=0xfe; for(j=4;j>0;j--) { while((sccode&0x10)!=0) { P2=sccode; /*輸出行掃描碼*/ if((P2&0xf0)!=0xf0) /*本行有鍵按下*/ { recode=(P2&0xf0)|0x0f; return((~sccode)+(~recode)); /*返回特徵位元組碼*/ } else sccode=(sccode<<1)|0x01; /*行掃描碼做移一位*/ } } } } return(0); /*無鍵按下,返回0值*/}參考鏈接: http://www.picavr.com/news/2008-07/6869.htm

B. C語言做圖如何找掃描碼

#include <stdio.h>
int main(void){
unsigned char ret = 0;
ret = getchar();
printf("Key ret %d\n", ret);
return 0;
}

C. 100分求linux下C語言埠掃描代碼

linux tcp udp 埠掃描源程序
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <errno.h>
#include <netdb.h>
#include <stdio.h>
#include <string.h>
#include <netinet/ip_icmp.h>
#include <stdlib.h>
#include <signal.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#define TRUE 1
#define FALSE 0
#define UDP "UDP"
#define TCP "TCP"
#define tcp "tcp"
#define udp "udp"
typedef struct _GsSockStru{

int fd;
int len;

struct sockaddr_in addr;

}GsSockStru;

static int tcptest( char ip[32], char port[20]);
static int udptest( char ip[32], char port[20]);
void sig_alrm( int signo );

static GsSockStru test_sock;
int
main( int argc, char** argv)
{
char string[64];
char port[20];
char pro[20];
char ip[32];
int res;
int i = 0;
int k = 0;

if( argc>2 || argc<2 )
{
printf("鍙傛暟涓嶆紜?-1\n");
return ( -1 );
}

strcpy( string, argv[1]);

while( *string )
{
if( string[i] == ':' )
break;
pro[k] = string[i];
k++;
i++;
}
pro[k] = '\0';
i++;
k = 0;
while( *string )
{
if( string[i] == ':')
break;
ip[k] = string[i];
k++;
i++;
}
ip[k] = '\0';
i++;
k=0;
while( *string )
{
if( string[i] == '\0')
break;
port[k] = string[i];
k++;
i++;
}
port[k] = '\0';
i++;

memset( &test_sock, 0, sizeof( test_sock ) );
if ( ( strcmp( TCP, pro) != 0 ) && ( strcmp( UDP, pro) != 0 ) && ( strcmp( tcp, pro) != 0 ) && ( strcmp( udp, pro) != 0 ))
{
printf ( "鍙傛暟涓嶆紜?錛?\n" );
return (-1);
}
if ( strcmp( TCP, pro) == 0 || strcmp( tcp, pro) == 0 )
res = tcptest( ip, port );
if ( strcmp( UDP, pro) == 0 || strcmp( udp, pro) == 0 )
res = udptest( ip, port );printf("%d\n",res);
return ( res );
}
int
tcptest( char ip[32], char port[20])
{
int res;
struct timeval tv;

test_sock.fd = socket( AF_INET, SOCK_STREAM, 0 );
if ( test_sock.fd < 0 )
{
printf( "create socket failed -3 \n" );
return ( -3 );
}
memset( &( test_sock.addr ), 0, sizeof( test_sock.addr ) );

test_sock.addr.sin_family = AF_INET;
test_sock.addr.sin_port = htons( atoi( port ) );
inet_pton( AF_INET, ip, &test_sock.addr.sin_addr );
test_sock.len = sizeof( struct sockaddr );
tv.tv_sec = 10;
tv.tv_usec = 0;
setsockopt( test_sock.fd, SOL_SOCKET, SO_RCVTIMEO,
(const char *)&tv, sizeof( tv ) );
res = connect( test_sock.fd,
( struct sockaddr * )( &( test_sock.addr ) ),
test_sock.len );
if ( res < 0 )
{
fprintf( stderr, "connect failed 0\n" );
close( test_sock.fd );
return FALSE;
}
close( test_sock.fd );
return TRUE;
}
int udptest( char ip[32], char port[20])
{
struct icmphdr *icmp_header;
struct sockaddr_in target_info;
int target_info_len;
fd_set read_fd;
int scan_port;
char recvbuf[5000];
struct sockaddr_in target_addr;
int icmp_socket;
int udp_socket;
struct timeval tv;

icmp_header = (struct icmphdr *)(recvbuf+sizeof(struct iphdr));
scan_port = atoi( port );
target_addr.sin_family = AF_INET;
inet_pton( AF_INET, ip, &target_addr.sin_addr );
target_addr.sin_port = htons(scan_port);

if ((udp_socket=socket(AF_INET,SOCK_DGRAM,0))==-1)
{
printf("create socket failed -3\n");
return -3;
}
if ((icmp_socket=socket(AF_INET,SOCK_RAW,IPPROTO_ICMP))==-1)
{
printf("Create raw socket failed -3\n");
return -3;
}

sendto(udp_socket,NULL,0,0,(void *)&target_addr,sizeof(target_addr));
FD_ZERO(&read_fd);
FD_SET(icmp_socket,&read_fd);

tv.tv_sec = 1;
tv.tv_usec = 0;
select(FD_SETSIZE,&read_fd,NULL,NULL,&tv);
for (;;){
if (FD_ISSET(icmp_socket,&read_fd))
{
target_info_len = sizeof(target_info);
recvfrom(icmp_socket,recvbuf,5000,0,
(struct sockaddr *)&target_info,&target_info_len);
if (target_info.sin_addr.s_addr == target_addr.sin_addr.s_addr
&& icmp_header->type == 3 && icmp_header->code<=12)
{
printf("Port %d : Close\n",scan_port);
return (0);
}
}
return (1) ;
}
}

D. C語言按鍵掃描求詳解...

C語言操作符 功能是按位取反
具體的你網路一下好了

E. C語言程序,掃描條碼(就是輸入一串字元,不要想的太難)

其實就是一個資料庫查詢問題而已,
因為首先,的確不用管條碼機怎麼輸入的,它相當於只有數字鍵及少數幾個字母鍵的一個自動輸入的鍵盤,模擬按鍵,需要做的輸入焦點設置好,讀取輸入就行了。

讀取後再查詢,就不屬於條碼機的范疇了

F. 求一個單片機4X4矩陣鍵盤掃描程序,C語言的。

淘bao 旺鋪: 廣州華電 單片機學習板 單片機外圍學習模塊/感測器模塊
//4*4鍵盤檢測程序,按下鍵後相應的代碼顯示在數碼管上
#include<reg51.h>
sbit beep=P2^3;
sbit la=P2^6;
sbit wela=P2^7;
unsigned char i=100;
unsigned char j,k,temp,key;
void delay(unsigned char i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
display(unsigned char num)
{
P0=table[num];
la=1;
la=0;
P0=0xc0;
wela=1;
wela=0;
}
void main()
{
la=0;
wela=0;
while(1)
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:
key=0;
break;
case 0xde:
key=1;
break;
case 0xbe:
key=2;
break;
case 0x7e:
key=3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
P1=0xfe;
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:
key=4;
break;
case 0xdd:
key=5;
break;
case 0xbd:
key=6;
break;
case 0x7d:
key=7;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
}
}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:
key=8;
break;
case 0xdb:
key=9;
break;
case 0xbb:
key=10;
break;
case 0x7b:
key=11;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
}
}
P3=0xf7;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xe7:
key=12;
break;
case 0xd7:
key=13;
break;
case 0xb7:
key=14;
break;
case 0x77:
key=15;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
}
}
}
}

G. 一個linux下的C語言目錄掃描程序,看不懂,求注釋!越詳細越好啊。會追加懸賞的!!

其實遞歸這種東西你如果理解了,根本不需要注釋,如果不理解再多的注釋還是不懂,這個是linux程序設計中的一段經典代碼,代碼的核心其實就這幾句
if(S_ISDIR(statbuf.st_mode))
{
if(strcmp(".",entry->d_name)==0||strcmp("..",entry->d_name)==0)
continue;
printf("%*s%s/\n",depth,"",entry->d_name);
printdir(entry->d_name,depth+4);
}
首先確定是目錄,要不然直接輸出,然後如果的當前目錄(.)或者父目錄(..),則執行下一個循環其實就是跳過這兩個目錄,printf("%*s%s/\n",depth,"",entry->d_name);這句其實就是讓顯示的好看點,根據depth決定要列印出幾個空格,書上有關於&*s的用法,接著就是再一次遞歸。。。。這個解釋不來,只能意會不能言傳。

H. 設計並實現TINYC語言的掃描程序;

介面:FactorialImp抽象類:FactorialAbs實現計算階乘n!的類:Fatorial代碼:/** * * 階乘計算器 * * 介面 */public interface FactorialImp {// 計算階乘n!的值long factorial(int n);}/** * * 階乘計算器 * * 抽象類 繼承 FactorialImp */public abstract class FactorialAbs implements FactorialImp {/** * 實現計算階乘n!的值的方法 */public long factorial(int n) {return multiplicationCount(n, n - 1);}/** * 增加抽象方法--計算兩數相乘 * * @param param1Int * @param param2Int * @return 兩數相乘的積 */abstract long multiplicationCount(long param1Int, long param2Int);}/** * 實現階乘計算器類 * */public class Fatorial extends FactorialAbs {@Overridelong multiplicationCount(long param1Int, long param2Int) {if (param2Int == 1) {return param1Int;} else {return multiplicationCount(param1Int * param2Int, param2Int - 1);}}}/** * 測試類 * */public class Test {public static void main(String[] args) {Fatorial localFatorial = new Fatorial();System.out.println("100! = " + localFatorial.factorial(10));}}

I. sourceanalyzer掃描c語言命令

掃描步驟如下:
有兩個文件:auditworkbench.cmd和sourceanalyzer.exe,auditworkbench.cmd是查看靜態分析報告的工具,sourceanalyzer.exe是靜態代碼分析器。這里我們還看到了一個FindBugs的目錄,這是因為這個版本的Fortify集成了此功能,你可以通過傳參給sourceanalyzer.exe調用FindBugs。

J. C語言,掃描條碼(就是輸入一串字元,不要想的太難)

首先要建立一個結構:

typedef struct
{
char code[50];
int count;
}USERCODE;

然後建立一個數組:

USERCODE myarray[MAX_CODE]; //MAX可以設為條碼種類數。

然後就維護這個數組好了。
首先字元串和count初始化。
接著編寫查找功能。
比較簡單的法子是做一個循環,一個一個的比較。
for(int i=0;i<MAX_CODE;i++)
{
if(...)//myarray[i].code和輸入的字元串比較,如果相等就給myarray[i].count++

}
最後是查詢功能,還是用循環方式,比較關鍵字元串,條件成立就printf("%d",myarray[i].count)

當然查找和查詢功能可以採用一些演算法,如果你是按照順序填充數組,就可以採用對半法。如果數組不是很大,不超過100,簡單循環也沒什麼問題。