博文
多开关控制一个电灯(2007-08-29 10:51:00)
摘要:问题:使用三个或者个开关独立的控制一个电灯?
解决方法:从电源火线分出3根线,分别接到灯的3个开关,从3个开关出来的3棵线都接到灯的一端,从灯的另一端出来一根线接到电源的零线!~
这是一次线路中的一种,单联3控. 首先要了解3个开关单开.与别的单开不同.这种单开有三个接钱柱. 电源的火钱接入第一个开关的中间接柱.......
CMOS 密码破解(2007-08-17 23:03:00)
摘要:计算机启动时,由存放在主板ROM中的BIOS将CMOS数据调入内存中,以实现控制系统。其中Award主板上的一小块RAM用于存放CMOS数据,地址为00-7F的共128个字节中。当中的字节1c和1d存放的就是CMOS的密码(即Supervisor Password)。而维持CMOS数据存活的当然是那块锂电池了。端口70h,71h用于对CMOS数据的读写。
方法0--万能型也是最烂型:拔电池或跳线(放电)!
方法1--挺烂:
进入dos,用debug
-o 70 10
-o 71 01
-q
重启后,可以直接进入CMOS,而没有密码询问了。
这种方法是通过向CMOS芯片写入数字,导致开机检测时无法通过其奇偶校验,从而使CMOS芯片数据重新恢复到默认的出厂值!!!
方法2--当然是编程实现喽,
首先声明:此程序"算法"并不是我编写的,原作者unkown
具体操作简介如下:
outportb(0x70,i); 将i字节的数据写到端口70
cmospass=_inp(0x71); 将71端口的数据读出到终端并存入变量cmospass
程序实现将这两个字节0x1c,0x1d的数据读出来,并转化成四进制,合并成8位即可----(award主板脆弱......
C语言基础(数组空间分配)(2007-08-17 23:00:00)
摘要:/* 运行环境 Dev—C++4.9.9.2,英文原版,官网下的。*/
#include <stdio.h>
#include <stdlib.h>
int count,total1,total2,total;
int array1[]={1,1,1,1,1},array2[]={3,3,3,3,3,7};
int main(void)
{
for(count=0;count<7;count++)
{
total1+=array1[count];
total2+=array2[count];
}
printf("%d",total1+total2);
system("PAUSE");
return 0;
}
int array1[]={1,1,1,1,1},array2[]={3,3,3,3,3,7};
等价:
int array1[5]={1,1,1,1,1},array2[6]={3,3,3,3,3,7};
但这样定义的两个数组是挨着存放的
当array1第六次被计算的时候用的是array2的第一个元素值,原因在于他们存在data段中,array1在array2前面,他们挨着存放的,也就是 1 1 1 1 1 3
&nbs......
#define、const、typedef的差别(2007-08-10 10:29:00)
摘要:C语言宏定义使用技巧(转载)
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。
1,防止一个头文件被重复包含
#ifndef COMDEF_H
#define COMDEF_H
//头文件内容
#endif
2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。
typedef unsigned char boolean; /* Boolean value type. */
typedef unsigned long int uint32; /* Unsigned 32 bit value */
typedef unsigned short uint16; /* Unsigned 16 bit value */
typedef unsigned char uint8; /* Unsigned 8 bit value */
typedef signed long int int32; /* Signed 32 bit value */
typedef signed short ......
C语言基础(++)(2007-08-07 16:09:00)
摘要:x=0,y=0;z=x++&&y++;求x,y,z
为什么答案是x=1,y=0,z=0??
首先x执行x++之前先与y执行&&运算,然而由于x此时为零,所以根本不会遇到y而是仅仅遇到&&运算就立即返回了,返回以后再自加1,然后输出结果就恰好你看到的那样。
同样z = x++ && ++y;也是那样的结果,因为++y根本不执行。
如果是z = ++x && y++;结果则是x == 1, y == 1, z == 0;
如果是z = ++x && ++y;结果就全部是1......
查找指定文件夹下的文件(2007-08-01 11:46:00)
摘要:/* 功能:查找指定文件夹下的文件 2007.8.1 */
#include<iostream>
#include<io.h>
using namespace std;
/**********************
_finddata_t结构体:
struct _finddata_t {
unsigned attrib ;
time_t time_create ;
time_t time_access ;
time_t time_write ;
_fsize_t size ;
char name [260] ;
}
**********************/
void main()
{
_finddata_t file;
long lf;
if((lf = _findfirst("C:\\WINDOWS\\*.INI",&file))==-1l)//_findfirst返回的是long型;long __cdecl _findfirst(const char *, struct _finddata_t *)
cout<<"文件没有找到!\n";
else
{
cout<<"\n文件列表:\n";
do {
cout<<file.name;
&n......
VHDL 语言实现inout类型的使用(2007-06-19 00:31:00)
摘要:-- 三态要有一个控制信号来控制,初始应为高阻。VHDL与Verilog应差不多吧,如下VHDL可参考一下:
VHDL: Bidirectional Bus
download from: http://www.fpga.com.cn
bidir.vhd (Tri-state bus implementation)
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY bidir IS
PORT(
bidir : INOUT STD_LOGIC_VECTOR (7 DOWNTO 0);
oe, clk : IN STD_LOGIC;
inp : IN STD_LOGIC_VECTOR (7 DOWNTO 0);
outp : OUT STD_LOGIC_VECTOR (7 DOWNTO 0));
END bidir;
ARCHITECTURE cpld OF bidir IS
SIGNAL a : STD_LOGIC_VECTOR (7 DOWNTO 0); -- DFF that stores
......
转化(2007-06-13 20:48:00)
摘要:在KELL C中是可以把C程序转换成汇编代码的。
前提:项目编绎,链接成功。
第一步:Debug->Start/Stop Debug Session.
第二步:View->Dissember Window.......
C++ 的未来(2007-06-09 20:52:00)
摘要:C++0x的工作已经进入了一个决定性的阶段。ISO C++委员会对C++0x的目标是使其成为“C++09”。这意味着我们要在2008年完成这个标准以便被ISO成员国批准。最后提交的标准设施将选自目前正被讨论的那些提案。为了按时完成此项工作,委员会已经停止审查新的提案并将精力集中于目前已经被讨论的那些提案上。
本文简要描述了C++0x标准化工作的指导原则,展示了一些可能的语言扩展的例子,并列出了一些被提议的新标准库设施。
指导原则
C++是一门偏向于系统编程的通用编程语言。它
·是一个更好的C
·支持数据抽象
·支持面向对象编程
·支持泛型编程
当我说“系统编程”时,我是指传统上与操作系统以及基础工具有关的那一类编程任务。包括操作系统核心、设备驱动程序、系统工具、网络应用、字处理工具、编译器、某些图形和GUI应用、数据库系统、游戏引擎、CAD/CAM、电信系统,等等。这类工作在当前的C++用户中占有主导地位。例子参见我的个人主页“Applications”单元(http://www.research.att.com/~bs/applications.html)。
C++0x的目标是使以上的说法仍然成立。它并不是要消除这些编程风格(styles)(或“paradigms”,范型)之一(比方说,使C++不那么兼容于C),或者添加一种全新的“范型”。最有效的编程风格是联合使用这些技术,这也就是我们常说的“多范型编程(multi-paradigm programming)”。因此,我们可以说我们希望改进C++使其成为一门更好的多范型编程语言。
C++0x的高级目标是:
使C++成为一门更好的系统编程语言和构建库的语言。
- 而不是为特定子社群提供专用设施(例如数值计算或Windows风格的应用程序开发)。
使C++更易于教和学。
- 通过增强的一致性、更强的保证以及针对新手的设施支持。
换句话说,在C++98已经很强的领域(以及一些更多的、C++98支持的较为自然的、一般化的领域),C++0x应该比C++98做得更好。对于一些专有的应用程序领域来说,例如数值计算、Windows风格的应用程序开发、嵌入式系统编程......
for generate 语句用法示例(2007-05-31 00:25:00)
摘要:--
-- 对 megafunction wizard 生成的文件lpm_dff1.vhd改装为 dff1.vhd , 增加了 位定义的灵活性
-- ============================================================
-- File Name: dff1.vhd
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY lpm;
USE lpm.all;
ENTITY dff1 IS
GENERIC (lpm_width : NATURAL := 8 );
PORT
(
clock : IN STD_LOGIC ;
data : IN STD_LOGIC_VECTOR (lpm_width-1 DOWNTO 0);
q : OUT STD_LOGIC_VECTOR (lpm_width-1 DOWNTO 0)
);
END dff1;
ARCHITECTURE SYN OF dff1 IS
SIGNAL sub_wire0 : STD_LOGIC_VECTOR (lpm_width-1 DOWNTO 0);
COMPONENT lpm_ff
GENERIC (
lpm_fftype : STRING;
lpm_type : STRING;
lpm_width : NATURAL
);
PORT (
clock : IN STD_LOGIC ;
q : OUT STD_LOGIC_VECTOR (......