㈠ 用c語言給單片機編程,當輸入錯了後怎樣退格重新輸入,用c語言怎樣寫
IO口的輸入輸出是通過對單片機寄存器的配置來實現的。
C51的單並扒片機IO口本來就是雙向的不需要設置。
STM32單片機的IO口用C語言塌談的設置方法絕衫昌如下:
void LED_Config(void)
{
GPIO_InitTypeDef GPIO_Structure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//PC10-LED(指示燈)
GPIO_Structure.GPIO_Pin = GPIO_Pin_10;
GPIO_Structure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC,&GPIO_Structure); //LED
㈡ 51單片機怎麼跳出死循環,復位
題主是否想詢問「51單片機怎麼跳出死循環」?按復位鍵。51單片機因為故障會經常陷入死循環,可以通過按復位鍵跳出。51單片機是單片微型計算機的簡稱,是對所有兼容Intel8031指令系統的單片機的統稱。
㈢ 單片機keilC怎麼編寫退格刪除鍵功能的程序代碼
你是寫單片機程序還是什麼程序呢禪攔首???
我這里有一抄個控制單片機鍵賀數衡螞盤的程序。
#include<reg52.h>
sbit key1=P3^4;
sbit d1=P1^0;
#define uchar unsigned char
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar num;
void delay()
void main()
{
P2=0xfe;
P3=0xff;
while(1)
{
zd if(key1==0)
{
d1=0;
num++;
while(!key1);//判斷按鍵是否放開
}
else
d1=1;
P0=tab[num];
}
}
void delay()
{
uchar i,j;
for(i=0;i<120;i++)
for(j=0;j<120;j++);
}
㈣ 怎麼找到單片機的復位鍵單片機的復位鍵是干什麼的
不一定所有的系統都有復位鍵,查晶元手冊,根據復位腳的位置來找
㈤ 用單片機C語言控制6位密碼鎖。要求有一個清除鍵和確認鍵,密碼輸錯了會有報警音。請高手幫助了
我找到了一個,來自《51單片機C語言應用技術開發大全》
SCH圖正在繪制中。。。
#include <REGX51.H>//51單片機的頭文件
typedef unsigned char uchar; //類型定義,定義uchar類型
typedef unsigned int uint; //類型定義,定義uint 類型
//鍵盤子程序相關說明。
#define BLANKCHAR 10 //定義空白常量
#define PCHAR 11 //定義字元P常量
#define OPENCHAR 12 //定義開鎖字元常量
#define ALARMCHAR 13 //定義字元A常量
#define LINECHAR 14 //定義字元-常量
#define BACKKEY 0X0D //定義退格鍵常量
#define ENTERKEY 0X0F //定義確認鍵常量
#define LOCKKEY 0X0E //定義閉鎖鍵常量
#define NO_KEY 20 //定義無按鍵返回值
#define KEYPORT P2 //定義鍵盤端扮盯口
//Delay1Ms
void Delay1Ms()
{
uint i;
for (i=0;i<1000;i++);
}
//定義按鍵掃描碼表 按鍵掃描時,4位列線和4位行線組成位元組數據表
uchar code KEYCODE[]=
{0XEE,0XED,0XEB,0XE7,
0XDE,0XDD,0XDB,0XD7,
0XBE,0XBD,0XBB,0XB7,
0X7E,0X7D,0X7B,0X77};
uchar KeyPre; //保存上次掃描按鍵的鍵值
uchar KeyUp;
//用於控制按鍵去抖動操作。1:掃描時去抖動 2:等待釋放 3:釋放時去抖動。
#define LEDPORT P0 //定義顯示器段碼輸出埠
#define LEDCON P1 //定義顯示器位控制埠
uchar code SEGCODE[]=
{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,// 0~9的共陽極代碼
0xff,//不顯示的共陽極段碼侍缺慎
0X8C,//字元P的共陽極段碼
0X8F,//┝的共陽極段碼
0X88,//字元A的共陽極段碼
0XBF,//字元-的共陽極段碼
};
//定義LED位碼控制碼
uchar code BITCODE[]={0Xfe,0Xfd,0Xfb,0Xf7,0Xef,0Xdf,0Xbf,0X7f};
uchar DispBuf[6]; //保存顯示的字元
bit DispNormal; //控制顯示時,是正常顯示還是閃爍顯示。
uchar DispCnt; /老敬/控制閃爍顯示時的頻率。
#define SHORT_TIME 10 //蜂鳴器響200ms
#define LONG_TIME 100 //蜂鳴器響2s
#define LONGER_TIME 9000 //蜂鳴器響3 minutes
sbit ALARMCON=P3^4; //定義報警控制引腳
bit AlarmEnable; //是否報警或聲音提示
uint AlarmTime; //控制報警時間長度
sbit LOCKCON=P3^3; //定義電子鎖控制引腳
uchar code PassWord[]={1,2,3,4,5}; //定義初時密碼表
uchar PassInBuf[6]; //保存輸入的密碼字元
uchar PassPosi; //用戶輸入密碼字元存放在PassInBuf[]的位置。
bit TimerBit; //20ms定時時間到
uchar SysMode; //系統所處模式 0:輸入密碼模式 1:報警模式 2:開鎖模式
uchar ErrorCnt; //用戶連續輸入密碼出錯次數。
/*
入口參數:
FillChar:寫入緩沖區的字元
出口參數:無
*/
void Fill_Buf(uchar FillChar)
{
uchar i;
for(i=0;i<6;i++)
{
DispBuf[i]=FillChar;//用字元FillChar填充DispBuf[i]
PassInBuf[i]=FillChar; //用字元FillChar填充PassInBuf [i]
}
}
void Fill_Buf_P()
{
Fill_Buf(BLANKCHAR); // DispBuf[1..5]= ' '
DispBuf[0]=PCHAR;// DispBuf[0]='P'
}
void Fill_Buf_O()
{
Fill_Buf(BLANKCHAR); // DispBuf[1..5]= ' '
DispBuf[0]=OPENCHAR; // DispBuf[0]='┝'
}
void Fill_Buf_A()
{
Fill_Buf(LINECHAR); // DispBuf[1..5]= ' -----'
DispBuf[0]=ALARMCHAR; // DispBuf[0]='A'
}
/*
入口參數:
DispPosi:要顯示數據的LED號。
DispChar:要顯示的內容。
出口參數:無
*/
void Disp_Led_Sin(uchar DispChar,uchar DispPosi)
{
LEDPORT=SEGCODE[DispChar];//輸出顯示段碼
LEDCON&=BITCODE[DispPosi];//輸出顯示位碼
Delay1Ms(); //延時1MS
LEDCON|=0X3F;//關閉顯示器
}
/*(2)關閉顯示函數Disp_Led_OFF。
函數Disp_Led_OFF在顯示器上顯示空白字元,主要用在閃爍顯示。函數通過6次調用Disp_Led_Sin實現所需功能。代碼如下:*/
void Disp_Led_OFF()
{
uchar i;
LEDCON|=0X3F;// 關閉顯示器
for(i=0;i<6;i++)
{
Disp_Led_Sin(BLANKCHAR,i);//逐個顯示空白字元
}
}
void Disp_Led_All()
{
uchar i;
LEDCON|=0X3F; // 關閉顯示器
for(i=0;i<6;i++)
{
Disp_Led_Sin(DispBuf[i],i); //顯示DispBuf[]中的數值
}
}
void Disp_LED()
{
DispCnt++;
DispCnt%=10;
if(DispCnt==0)
{
DispNormal=~DispNormal;//200ms將閃爍顯示控制位取反
}
if(SysMode==1)
{//報警模式,閃爍顯示
if(!DispNormal)
{
Disp_Led_OFF();//顯示空白字元
return;
}
}
Disp_Led_All();//顯示DispBuf[]中的數值
}
/*
入口參數:
stime:蜂鳴器鳴叫時間。
出口參數:無
*/
void Sys_Speaker(uint stime)
{
AlarmEnable=1;//允許報警
AlarmTime=stime;//報警時間長短
}
void Sys_Alarm()
{
if(AlarmEnable==1)
{//允許報警
ALARMCON=0;//報警
AlarmTime--;
if(AlarmTime==0)
{//停止報警時間到
AlarmEnable=0;
ALARMCON=1;//禁止報警
if(SysMode==1)
{//報警發生在模式1時,要返回模式0
SysMode=0;
Fill_Buf_P();//顯示P
}
}
}
}
/*
入口參數:無
出口參數:按鍵值或無按鍵
*/
uchar Find_Key()
{
uchar KeyTemp,i;
KEYPORT=0xf0;//行線輸出0,列線輸出全1
KeyTemp=KEYPORT;//讀按鍵埠值
if(KeyTemp==0xf0)
return NO_KEY;//無鍵按下,返回
KEYPORT=KeyTemp|0x0f;//列線輸出,行線輸入
KeyTemp=KEYPORT;//讀取按鍵埠值
for(i=0;i<16;i++)
{
if(KeyTemp==KEYCODE[i])//根據按鍵埠掃描值,查找按鍵值
return i;//返回按鍵值
}
return NO_KEY;
}
/*
入口參數:無
出口參數:按鍵值或無按鍵
*/
uchar Scan_Key()
{
uchar KeyTemp;
KeyTemp=Find_Key();//掃描鍵盤,獲得按鍵值
if(KeyTemp==NO_KEY)
{
if(KeyUp<2)
{//無按鍵按下,返回
KeyUp=0;
return NO_KEY;
}
if(KeyUp==2)
{//按鍵要釋放,延時去抖動
KeyUp=3;
return NO_KEY;
}
if(KeyUp==3)
{//按鍵釋放,返回鍵值
KeyUp=0;
return KeyPre;
}
}
else
{
if(KeyUp==0)
{//有鍵按下,保存鍵值
KeyUp=1;
KeyPre=KeyTemp;
}
else if(KeyUp==1)
{//去抖動後,再次測到有按鍵按下
if( KeyPre==KeyTemp)
KeyUp=2;
else
KeyPre=KeyTemp;
} else if(KeyUp==3)
{//等待按鍵釋放
KeyUp=2;
}
}
return NO_KEY;
}
/*
入口參數:
Key:按鍵值
出口參數:無
*/
void Key_Process(uchar Key)
{
uchar i;
if(Key==NO_KEY)
return ;//無按鍵,不處理
switch(SysMode)
{
case 0://輸入密碼
switch(Key)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
DispBuf[PassPosi]=LINECHAR;//顯示'-'
PassInBuf[PassPosi]=Key;//保存用戶輸入的密碼
if(PassPosi<5)
PassPosi++;//調整密碼輸入位置
Sys_Speaker(SHORT_TIME);//發按鍵提示音
break;
case BACKKEY://退格鍵
DispBuf[PassPosi]=BLANKCHAR;//顯示' '
PassInBuf[PassPosi]=BLANKCHAR;//清除當前位置的密碼
if(PassPosi>1)
PassPosi--;//調整顯示位置
Sys_Speaker(SHORT_TIME);//發按鍵提示音
break;
case ENTERKEY://確定按鍵
for(i=0;i<5;i++)
{//比較用戶輸入密碼與系統預設密碼是否一致
if(PassInBuf[i+1]!=PassWord[i])
break;
}
if(i>=5)
{//輸入密碼正確
Fill_Buf_O();//顯示開鎖狀態
PassPosi=1;
LOCKCON=1;//開鎖
ErrorCnt=0;
Sys_Speaker(LONG_TIME);//發長提示音
SysMode=2;//轉模式2
}
else
{
ErrorCnt++;//出錯次數加一
if(ErrorCnt>2)
{//次數超過3次
ErrorCnt=0;
Fill_Buf_A();//顯示報警狀態
PassPosi=1;
Sys_Speaker(LONGER_TIME);//發報警音
SysMode=1;
}
else
{//出錯次數少於3次,用戶重新輸入
Fill_Buf_P();
PassPosi=1;
Sys_Speaker(LONG_TIME);
}
}
break;
case LOCKKEY://閉鎖鍵
Fill_Buf_P();//顯示P
PassPosi=1;
Sys_Speaker(SHORT_TIME);
break;
}
break;
case 2://開鎖狀態
if(Key==LOCKKEY)
{//用戶按動閉鎖按鍵
Fill_Buf_P();
SysMode=0;
LOCKCON=0;//閉鎖
Sys_Speaker(SHORT_TIME);
}
break;
}
}
void Ini_Timer0()
{
TMOD&=0XF0;
TMOD|=0X01;// 初始化T0,模式1
TR0=0;
TH0=(65536-20000)/256;//T0 賦計數初值
TL0=(65536-20000)%256;
TR0=1;//啟動T0
ET0=1;//允許T0中斷
}
void Timer0() interrupt 1
{
TR0=0;
TH0=(65536-20000)/256; //T0 賦計數初值
TL0=(65536-20000)%256;
TR0=1;
TimerBit=1;//定時時間到
}
void Ini_System()
{
PassPosi=1;
LOCKCON=0;//閉鎖
Ini_Timer0();//初始化T0
Fill_Buf_P();
EA=1;//允許系統中斷
}
void main()
{
uchar KeyTemp;
Ini_System();
while(1)
{
if (TimerBit==1)
{//定時時間到
Disp_LED();//刷新顯示器
Sys_Alarm();//報警處理
KeyTemp=Scan_Key();//掃描按鍵
Key_Process(KeyTemp);//按鍵處理
TimerBit=0;
}
}
}
㈥ 單片機撥打固定電話怎麼撥
1、首先在單片機系統運行時將所春神拆需瞎猛要撥打的固定電話按下鍵盤上的對應數字,會顯示在液晶屏上。
2、其次電話號碼鍵盤上的DELETE鍵能實現扒棗退格功能,電話號碼鍵盤上的CLEAR鍵能實現清屏功能。
3、最後就可以撥打固定電話了。
㈦ 單片機C51編程,怎麼退出一個沒有返回值的函數
用return
;
如:
void
max(unsigned
char
t)
{
if(t>250)
return
;
//液塌如果大於
250,則退出此函鬧纖圓數
while(1);
//否則就會在這
死循環
}
希望我的回答豎鍵對你有幫助
㈧ 計算機基礎知識
t一、計算機的發展與分類
1946年由美國賓夕法尼亞大學研製的世界上第一台可以用程序控制的計算機被稱為電子數字積分器與計算器(Electronic Numerical Integrator And Calculator),簡稱ENIAC。這台計算機的字長為12位,主存儲器只有17K,運算速度為每秒5000次加法運算,共使用18800個電子管,1500個繼電器,佔地面積為150m2,重30t,耗電150kw,造價為100多萬美元。今天看來,這台計算機既貴且重,運算速度低,字長不夠長,而且耗電多。但它正是今天大小不一、花樣繁多的各種類型電子計算機的先驅,為計算機技術的發展奠定了基礎。如果該ENIAC稱為第一代電子計算機的話,至今已發展至第四代。
第一代(1946一1958年)電子管數字計算機
計算機的邏輯元件採用電子管,主存儲器採用磁鼓、磁芯,外存儲器已開始採用磁帶軟體主要用機器語言編制,後期逐步發展了匯編語言。主要用於科學計算。
第二代(1958—1964年)晶體管數字計算機
計算機的邏輯元件採用晶體管,主存儲器採用磁芯,外存儲器已開始使用磁碟;軟體已開始有很大的發展,出現了各種高級語言及編譯程序。此時,計算機速度明顯提高,耗電下降,壽命提高。計算機已發展至用於各種事務處理,並開始用於工業控制。
第三代(1964一1971年)集成電路計算機
計算機的邏輯元件採用小規模和中規模集成電路,即所謂的SSI和MSI;軟體發展更快,已有分時操作系統,應用范圍日益擴大。
第四代(1971年以後)大規模和超大規模集成電路計算機
計算機的邏輯元件採用大規模集成電路(LSI),在單片矽片上可集成1000至20000個晶體管的集成電路。而超大規模集成電路目前集成多達5000萬個晶體管。
目前計算機技術發展迅速,發展方向主要一是朝著大型、巨型化發展,二是向小型、微型化發展。
1.大型、巨型計算機
為了適應現代科學技術發展的需要,要求計算機提高運算速度,加大主儲容量,為此出現了大型和巨型計算機。如美國的克雷公司生產的Cray—1、Cray—2、Cray—3巨型計算機比較著名。我國的銀河I就是每秒l0億次並行巨型計算機。巨型計算機象徵著一個國家的科技實力,目前只有少數幾個國家有能力生產。大型機速度快,容量大,解決了過去無法計算的實時及復雜的數學問題,但設備龐大,價格昂貴。
2.小型、微型計算機
小型、微型機的出現、普及和銀薯應用,適應宇航、導彈技術及一般應用的體積小、造價低、高可靠性要求。
微型計算機(Microcomputer)的心臟——中央處理器(CPU)集成在一小塊晶元上,被稱為微處理器MPU(Micro processing Unit),以區別大、中、小型計算機的CPU。微型計算機除有MPU外,還有以大規模集成電路製成的主存儲器和輸入輸出介面電路,三者之間採用匯流排結構聯系起來。如果再配上相應的外圍設備如顯示器(CRT)、鍵盤及列印機等,這就成為微型計算機系統(Microcomputer System)。目前,微型計算州敗機功能已經很強,比如「奔騰4」(Pentium) CPU的集成度已達到4000多萬只晶體管,時鍾頻率高達3000MHz。由於結構簡單、通用性強、價格便宜,微型計算機已成為現代計算機領域中的一個極為重要的分支,發展突飛猛進。
二、計算機的用途
我門現正身處科技年代,計算機的應用無所不在。從日常生活接觸到的至敏感高科技的,本章可幫助你了解計算機在不同領域的應用情況。
3.1 教育
計算機作為學習工具
計算機輔助學習就是藉助計算機作為學習工具。現時,有不少計算機輔助學習軟體均藉助文字、圖像、聲音、影像及動畫等方式幫助學生學習不同的科目。同時可測試所學的知識,並立刻得到測試的結果。
互聯網上亦可以找到大量的學習資源,學生也可自行學習一些課外的知識。
計算機作為教學工具
計算機也是很好的教學輔助工具。透過使用計算機,教師能夠以更有趣的多媒體(圖像、視像、動畫、聲音和文字)效果,更清楚地展示教學內容、解釋一些較難說明的概念及展示一些鋒跡者難以實際進行的實驗,使學習更有趣味。
計算機作為學校行政工具
透過計算機的幫助,學校的行政可以更有效率。學校可以利用計算機來貯存和處理大量的數據,例如每個學生的個人紀錄、班級名單、各科考試成績、圖書館的圖書數據等。
3.2 娛樂
計算機游戲
計算機游戲可分為冒險游戲、動作游戲、教育游戲、智力游戲、模擬游戲、戰略游戲等,大都含有大量的視覺及音響效果,好的計算機游戲能引發游戲參與者的想像力,並為他們提供了挑戰的樂趣和成功的喜悅。
電影及電視製作
利用計算機,我們可以製作電影或電視節目中的特別音響和視覺效果;現時,不少科幻或動作電影都有利用計算機技術協助製作,為我們帶來新形式的娛樂。
互動電視
現在,我們只需接駁一個控制盒,便可安坐家中,享受自選視像服務。你只需選擇你喜歡看的影片,計算機系統即會透過電話線把視像傳送過來,讓你在家中的電視收看。
3.3 家庭電器
家庭電器
錄像機定時錄像,洗衣機的洗衣程序,電冰箱、冷氣機自動控制溫度、微波爐加熱程序,很多都由計算機控制了。
智能家居
所謂智能家居,就是透過編程、聲控或電話操控,全屋電器都交由計算機控制,按時開關。
3.4 交通運輸
交通監控
交通燈、電子道路收費、海陸空交通監察系統,都是利用計算機操控的。
調配
鐵路系統、車、船、飛機間的調配,都是利用計算機操控的。
票務
售票系統如自動售票機、八達通等都是利用計算機操控的。
3.5 通訊
電話
大部分國家的電話系統已計算機化了,進一步改良了音質、線路、電話機樓之工作環境。
電子郵件
電子郵件軟體可以讓人們在計算機網路上收發訊息。它是一種快捷、經濟而方便的訊息傳遞方法。
實時交流
進行網上游戲、聊天室、ICQ、網路電話、視像會議等。而視像會議更可以讓人透過計算機網路與其它人作面對面的通話。
3.6 商業
金融業
金融機構各分行的運作及紀錄,都靠計算機聯系, 你可以利用自動櫃員機存款、提款或轉賬,現在你更可以利用電話、電視或計算機,連接銀行的計算機系統,從而
1.查詢脹戶余額;
2.進行轉脹;
3.取得財經信息。
銷售業
百貨公司及超級市場利用計算機化的銷售點終端機,讀取貨物的數據(名稱和價格),列印發票,控制存貨,系統並連接各銷售點終端機,控制存貨水平及訂貨數量。
服務業
很多服務業都開始利用計算機改善效率,酒店可利用計算機及互聯網預訂房間,酒樓用計算機落單及結賬,旅行社利用計算機為客戶預訂機票酒店等,購物公司利用互聯網作購物服務等。
3.7 辦公室應用
辦公室自動化是利用計算機化設備來處理辦公室的工作。以下各類應用軟體,是一般自動化的辦公室內經常使用的:
文書處理軟體
文書處理軟體可用作建立、編輯、校對、格式化及列印文件。
電子表格
電子表格軟體可以進行計算、分析數據,以及展示數據。
資料庫
資料庫軟體可作貯存、整理及更新大量的資料。
簡報軟體
簡報軟體可以在會議中向出席者顯示報告或介紹數據。
三、計算機具有以下特點:
快速的運算能力 , 足夠高的計算精度 超強的記憶能力
四、計算機系統的基本組成
運算器
中央處理器 控制器
主機 內存儲器
硬體 外存儲器
外設 輸入設備
微型計算機 輸出設備
系統 操作系統
系統軟體 服務軟體
軟體 編譯或解釋系統
信息管理軟體
應用軟體 輔助設計軟體
文字處理軟體
圖形軟體
各種程序包
五、硬體系統的組成及各個部件的主要功能
計算機硬體系統由運算器、控制器、存儲器、輸入設備和輸出設備等五大部件組成
1.運算器
運算器是一個「信息加工廠」。數據的運算和處理工作就是在運算器中進行的。這里的「運算」,不僅是加、減、乘、除等基本算術運算,還包括若干基本邏輯運算。
2.控制器
控制器是整個計算機的指揮中心,它取出程序中的控制信息,經分析後,便按要求發出操作控制信號,使各部分協調一致地工作。
3.存儲器
存放程序和數據的地方,並根據命令提供 存儲器是計算機中給有關部分使用。
1)存儲器的主要技術參數:存儲容量、存取速度和位價格(即一個二進制位的價格)。
2)存儲器容量:表示計算機存儲信息的能力,並以位元組(byte)為單位。1個位元組為8個二進制位(bit)。由於存儲器的容量一般都比較大,尤其是外存儲器的容量提高得非常快, 因此又以210 (1024)為倍數不斷擴展單位名稱。這些單位的關系如下:(千、兆、吉), 因此又以210 (1024)為倍數不斷擴展單位名稱。這些單位的關系如下:(千
1byte= 8bit lKB= l024byte
lMB=1024KB lGB=1024MB
3)存儲器系統的組成:
存儲器系統包括主存儲器(內存儲器)、輔助存儲器(外存儲器)和高速緩沖存儲器(cache)。三者按存取速度、存儲容量、位價格的優劣組成層次結構,以提高CPU越來越高的速度要求,並較好地解決三個技術參數的矛盾。它們之間交換數據的層次如圖-2。
4)主存儲器
存放當前參與運行的程序、數據和中間信息。它與運算器、控制器進行信息交換。
特點:存儲容量小、存取速度快、位價格適當。存儲信息不能長期保留(斷電即丟失
4.輸入設備.
最常見的有鍵盤和滑鼠,我們可以通過鍵盤 {圖一}的輸入和滑鼠 {圖二}的操作把一些基本的信息傳輸到電腦中,還有計算機中的硬碟和軟盤,將事先存放在磁碟中的信息通過操作傳送到電腦中去;此外還有掃描儀 {圖三}、數碼照相機 {圖四}、數碼攝象機 {圖五}等,可以把一些拍好的照片和錄像傳輸到計算機中;我們計算機中的耳脈 {圖六}也可以作為輸入設備,它可以結合計算機中的軟體操作把聲音傳輸到計算機中去。輸入設備中還有電子觸摸屏,在郵局我們可以直接在觸摸屏上進行操作,查詢到全國各地的郵政編碼。
5.輸出設備(Output Device)
是人與計算機交互的一種部件,用於數據的輸出。它把各種計算結果數據或信息以數字、字元、圖像、聲音等形式表示出來。常見的有顯示器 {圖七}、列印機 {圖八}、繪圖儀、影像輸出系統、語音輸出系統、磁記錄設備等
六、數據存儲的基本概念
數據存儲是數據流在加工過程中產生的臨時文件或加工過程中需要查找的信息。數據以某種格式記錄在計算機內部或外部存儲介質上。數據存儲要命名,這種命名要反映信息特徵的組成含義。數據流反映了系統中流動的數據,表現出動態數據的特徵;數據存儲反映系統中靜止的數據,表現出靜態數據的特徵。
常用的存儲介質為磁碟和磁帶。數據存儲組織方式因存儲介質而異。在磁帶上數據僅按順序文件方式存取;在磁碟上則可按使用要求採用順序存取或直接存取方式。數據存儲方式與數據文件組織密切相關,其關鍵在於建立記錄的邏輯與物理順序間對應關系,確定存儲地址,以提高數據存取速度。
(下面有續篇)
七、軟體基礎知識
操作系統」(Operating System,簡稱OS)是最重要的系統軟體之一,主要用來管理計算機硬體資源,並為我們提供控制與操作計算機的環境。Windows98就是一種典型的操作系統軟體,我們是通過桌面、菜單、控制面板等部分來操作和控制我們的計算機的。
常見的操作系統有DOS,Windows3.x,UNIX,Mac OS等。
操作系統是計算機系統的最高統帥,所有軟體都要依靠操作系統的指令工作。不論硬體還是軟體都離不開操作系統的支持。總的來說,操作系統負擔著以下幾方面的重要使命:
Ø 管理計算機系統的各種硬體資源,如CPU、內存空間、磁碟空間、輸入/輸出設備等。
Ø 2管理計算機系統中的各種]軟體資源。
Ø 負責協調計算機系統的各硬體之間、軟體之間、硬體和軟體之間的關系,合理地組織計算機的工作流程。
Ø 作為計算機與使用者之間交換信息的橋梁。當計算機配置了操作系統後,人不再直接操作計算機的硬體,而是利用操作系統提供的命令與服務與計算機的各種軟硬體打交道。可以說操作系統建立了使用者與計算機之間的介面與通道。
總之,離開了操作系統的管理和中介作用,計算機對普通人來說是沒有任何價值的。DOS、OS/2、UNIX、Windows、Mac OS等都是可以應用於微機上的操作系統,其中DOS和Windows是最常用的微機操作系統。
人、計算機與操作系統三者之間的關系見書。
應用軟體是為某種實際應用或解決某種問題所編制的各種應用程序。這些程序具有很強的實用性,可以專門用於解決某個應用領域中的具體問題。如事務管理軟體、文字處理軟體、輔助教學軟體、輔助設計軟體、各種游戲軟體等等。
另外,應用軟體必須依附於某種操作系統。也就是說,一種應用軟體通常只能在一種操作系統中運行。
軟體使用道德規范:使用合法軟體、使用正版軟體;不非法復制軟體,不使用盜版軟體。
3. 計算機病毒及其防治
計算機病毒並不是平常意義上所指的那種生物病毒或細菌病毒,它也是計算機程序。
計算機病毒具有傳染性、擴散性、隱蔽性、破壞性。詳細介紹及舉例見書上。
計算機病毒的預防措施有:
Ø 不使用來歷不明、無法確定是否帶有病毒的軟盤和光碟。
Ø 如果一定要使用外來軟盤,應該先利用殺毒軟體進行病毒檢查,確定不攜帶病毒後才能使用。
Ø 不非法復制軟體,不使用盜版軟體。
Ø 對系統盤、程序盤及存有重要數據的軟盤進行防寫,並進行備份。
Ø 定期利用殺毒軟體對計算機進行殺毒檢測,以便及時發現、清除病毒。
計算機病毒的清除常用的殺毒軟體有:KILL、KV300、瑞星殺毒軟體、Norton等。
清楚病毒最徹底的方法是對已染上病毒的磁碟重新分區及進行格式化操作。格式化磁碟將刪除磁碟上所有的程序和數據,包括操作系統,因而作為程序的病毒也將被清除掉。不過,由於硬碟格式化的後果比較嚴重,而且格式化後安裝操作系統有一定的難度,因此大家不要輕易格式化硬碟,要請專業人員來操作。
八、數值在計算機中的表示形式
數值在計算機中表示形式為機器數,計算機只能識別0和1,使用的是二進制,而在日常生活中人們使用的是十進制,"正如亞里士多德早就指出的那樣,今天十進制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.
數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了.假設機器能處理的位數為8.即字長為1byte,原碼能表示數值的范圍為
(-127~-0 +0~127)共256個.
有了數值的表示方法就可以對數進行算術運算.但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下: 假設字長為8bits
( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10
進行原碼運算:(00000001)原 + (10000001)原 = (10000010)原 = ( -2 ) 顯然不正確.
因為在兩個正數的加法運算中是沒有問題的,於是就發現問題出現在帶符號位的負數身上。
對除符號位外的其餘各位逐位取反就產生了反碼(對於正數,其反碼與原碼相同).反碼的取值空間和原碼相同且一一對應. 下面是反碼的減法運算:
( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10
進行反碼運算:(00000001) 反+ (11111110)反 = (11111111)反 = ( -0 ) 有問題.
( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10
進行反碼運算:(00000001) 反+ (11111101)反 = (11111110)反 = ( -1 ) 正確
問題出現在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進制計數對人類文明的貢獻極大).
於是就引入了補碼概念. 負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在補碼中用(-128)代替了(-0),所以補碼的表示範圍為:
(-128~0~127)共256個.
注意:(-128)沒有相對應的原碼和反碼, (-128) = (10000000) 補碼的加減運算如下:
( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10
(00000001)補 + (11111111)補 = (00000000)補 = ( 0 ) 正確
( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10
(00000001) 補+ (11111110) 補= (11111111)補 = ( -1 ) 正確
所以補碼的設計目的是:
⑴使符號位能與有效值部分一起參加運算,從而簡化運算規則.
⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計
所有這些轉換都是在計算機的最底層進行的,而在我們使用的匯編、C等其他高級語言中使用的都是原碼。看了上面這些大家應該對原碼、反碼、補碼有了新的認識了吧!
九、常用外部設備
鍵盤、滑鼠、顯示器、列印機 、音響、耳機、掃描儀
十、什麼是CPU
CPU是英語「Central Processing Unit/中央處理器」的縮寫,CPU一般由邏輯運算單元、控制單元和存儲單元組成。在邏輯運算和控制單元中包括一些寄存器,這些寄存器用於CPU在處理數據過程中數據的暫時保存, 其實我們在買CPU時,並不需要知道它的構造,只要知道它的性能就可以了。 CPU主要的性能指標有: 主頻即CPU的時鍾頻率(CPU Clock Speed)。這是我們最關心的,我們所說的233、300等就是指它,一般說來,主頻越高,CPU的速度就越快,整機的就越高。 時鍾頻率即CPU的外部時鍾頻率,由電腦主板提供,以前一般是66MHz,也有主板支持75各83MHz,目前Intel公司最新的晶元組BX以使用100MHz的時鍾頻率。另外VIA公司的MVP3、MVP4等一些非Intel的晶元組也開始支持100MHz的外頻。精英公司的BX主板甚至可以支持133MHz的外頻,這對於超頻者來是首選的。 內部緩存(L1 Cache):封閉在CPU晶元內部的高速緩存,用於暫時存儲CPU運算時的部分指令和數據,存取速度與CPU主頻一致,L1緩存的容量單位一般為KB。L1緩存越大,CPU工作時與存取速度較慢的L2緩存和內存間交換數據的次數越少,相對電腦的運算速度可以提高。 外部緩存(L2 Cache):CPU外部的高速緩存,Pentium Pro處理器的L2和CPU運行在相同頻率下的,但成本昂貴,所以Pentium II運行在相當於CPU頻率一半下的,容量為512K。為降低成本Inter公司生產了一種不帶L2的CPU命為賽揚,性能也不錯,是超頻的理想。 MMX技術是「多媒體擴展指令集」的縮寫。MMX是Intel公司在1996年為增強Pentium CPU在音像、圖形和通信應用方面而採取的新技術。為CPU增加57條MMX指令,除了指令集中增加MMX指令外,還將CPU晶元內的L1緩存由原來的16KB增加到32KB(16K指命+16K數據),因此MMX CPU比普通CPU在運行含有MMX指令的程序時,處理多媒體的能力上提高了60%左右。目前CPU基本都具備MMX技術,除P55C和Pentium ⅡCPU還有K6、K6 3D、MII等。 製造工藝:現在CPU的製造工藝是0.35微米,最新的PII可以達到0.28微米,在將來的CPU製造工藝可以達到0.18微米。
十一、內存的概念
在計算機的組成結構中,有一個很重要的部分,就是存儲器。存儲器是用來存儲程序和數據的部件,對於計算機來說,有了存儲器,才有記憶功能,才能保證正常工作。存儲器的種類很多,按其用途可分為主存儲器和輔助存儲器,主存儲器又稱內存儲器(簡稱內存,港台稱之為記憶體)。
內存就是存儲程序以及數據的地方,比如當我們在使用WPS處理文稿時,當你在鍵盤上敲入字元時,它就被存入內存中,當你選擇存檔時,內存中的數據才會被存入硬(磁)盤。在進一步理解它之前,還應認識一下它的物理概念。
內存一般採用半導體存儲單元,包括隨機存儲器(RAM),只讀存儲器(ROM),以及高速緩存(CACHE)。
●只讀存儲器(ROM)
ROM表示只讀存儲器(Read Only Memory),在製造ROM的時候,信息(數據或程序)就被存入並永久保存。這些信息只能讀出,一般不能寫入,即使機器掉電,這些數據也不會丟失。ROM一般用於存放計算機的基本程序和數據,如BIOS ROM。其物理外形一般是雙列直插式(DIP)的集成塊。
●隨機存儲器(RAM)
隨機存儲器(Random Access Memory)表示既可以從中讀取數據,也可以寫入數據。當機器電源關閉時,存於其中的數據就會丟失。我們通常購買或升級的內存條就是用作電腦的內存,內存條(SIMM)就是將RAM集成塊集中在一起的一小塊電路板,它插在計算機中的內存插槽上,以減少RAM集成塊佔用的空間。目前市場上常見的內存條有1G/條,2G/條,4G/條等。
●高速緩沖存儲器(Cache)
Cache也是我們經常遇到的概念,也就是平常看到的一級緩存(L1 Cache)、二級緩存(L2 Cache)、三級緩存(L3 Cache)這些數據,它位於CPU與內存之間,是一個讀寫速度比內存更快的存儲器。當CPU向內存中寫入或讀出數據時,這個數據也被存儲進高速緩沖存儲器中。當CPU再次需要這些數據時,CPU就從高速緩沖存儲器讀取數據,而不是訪問較慢的內存,當然,如需要的數據在Cache中沒有,CPU會再去讀取內存中的數據。
●物理存儲器和地址空間
物理存儲器和存儲地址空間是兩個不同的概念。但是由於這兩者有十分密切的關系,而且兩者都用B、KB、MB、GB來度量其容量大小,因此容易產生認識上的混淆。初學者弄清這兩個不同的概念,有助於進一步認識內存儲器和用好內存儲器。
物理存儲器是指實際存在的具體存儲器晶元。如主板上裝插的內存條和裝載有系統的BIOS的ROM晶元,顯示卡上的顯示RAM晶元和裝載顯示BIOS的ROM晶元,以及各種適配卡上的RAM晶元和ROM晶元都是物理存儲器。
存儲地址空間是指對存儲器編碼(編碼地址)的范圍。所謂編碼就是對每一個物理存儲單元(一個位元組)分配一個號碼,通常叫作「編址」。分配一個號碼給一個存儲單元的目的是為了便於找到它,完成數據的讀寫,這就是所謂的「定址」(所以,有人也把地址空間稱為定址空間)。
地址空間的大小和物理存儲器的大小並不一定相等。舉個例子來說明這個問題:某層樓共有17個房間,其編號為801~817。這17個房間是物理的,而其地址空間採用了三位編碼,其范圍是800~899共100個地址,可見地址空間是大於實際房間數量的。
對於386以上檔次的微機,其地址匯流排為32位,因此地址空間可達2的32次方,即4GB。(但是我們常見的32位操作系統windows xp卻最多隻能識別或者使用3.25G的內存,即使64位的操作系統vista雖然能識別4G的內存,卻也最多隻能使用3.25G的內存。)
好了,現在可以解釋為什麼會產生諸如:常規內存、保留內存、上位內存、高端內存、擴充內存和擴展內存等不同內存類型。
十二、微處理器的概念
微處理器(MPU),說白了,就是微型化的CPU。也就是利用超大規模集成電路技術把CPU做到一片或幾片晶元里。
十三、計算機安全常識
什麼是惡意軟體?
答:惡意軟體是對破壞系統正常運行的軟體的統稱,一般來說有如下表現形式:
強行安裝,無法卸載
安裝以後修改主頁且鎖定
安裝以後隨時自動彈出廣告
自我復制代碼,類似病毒一樣,拖慢系統速度
什麼是插件?
答:插件是指會隨著IE瀏覽器的啟動自動執行的程序,根據插件在瀏覽器中的載入位置,可以分為工具條(Toolbar)、瀏覽器輔助(BHO)、搜索掛接(URL SEARCHHOOK)、下載ActiveX(ACTIVEX)。
有些插件程序能夠幫助用戶更方便瀏覽網際網路或調用上網輔助功能,也有部分程序被人稱為廣告軟體(Adware)或間諜軟體(Spyware)。此類惡意插件程序監視用戶的上網行為,並把所記錄的數據報告給插件程序的創建者,以達到投放廣告,盜取游戲或銀行帳號密碼等非法目的。
因為插件程序由不同的發行商發行,其技術水平也良莠不齊,插件程序很可能與其它運行中的程序發生沖突,從而導致諸如各種頁面錯誤,運行時間錯誤等等現象,阻塞了正常瀏覽。
什麼是木馬?
答:特洛伊木馬,英文叫做「Trojan horse」,其名稱取自希臘神話的特洛伊木馬記。 它是一種基於遠程式控制制的黑客工具,具有隱蔽性和非授權性的特點。所謂隱蔽性是指木馬的設計者為了防止木馬被發現,會採用多種手段隱藏木馬,這樣服務端即使發現感染了木馬,由於不能確定其具體位置,往往只能望「馬」興嘆。所謂非授權性是指一旦控制端與服務端連接後,控制端將享有服務端的大部分操作許可權,包括修改文件,修改注冊表,控制滑鼠,鍵盤等等,而這些權力並不是服務端賦予的,而是通過木馬程序竊取的。
木馬有哪些危害:
1.發送QQ、msn尾巴,騙取更多人訪問惡意網站,下載木馬
2.盜取用戶帳號,通過盜取的帳號和密碼達到非法獲取虛擬財產和轉移網上資金的目的
3.監控用戶行為,獲取用戶重要資料
如何預防木馬?
1.養成良好的上網習慣,不訪問不良小網站。
2.下載軟體盡量到大的下載站點或者軟體官方網站下載。
3.安裝殺毒軟體,防火牆,定期進行病毒和木馬掃描。
㈨ 基於51單片機的密碼鎖
基於51單片機的密碼鎖的話其實我是不知道是什麼意思的 所以說不好意思咯(๑ó﹏ò๑)
㈩ 單片機c51的中斷是怎麼進入和退出的
只要在函數段絕名後加上interrupt (0~4) using(0~3)即可,其它和C語言的函數設計一樣,而其中interrupt後的0~4分別對應的是外部中斷握鍵姿0、定時器亮耐0、外部中斷1、定時器1、串口中斷,using後面的0~3分別對應工作寄存器組0~3。