|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
仿真圖.png (121.33 KB, 下載次數(shù): 106)
下載附件
2017-5-15 13:20 上傳
單片機(jī)源程序:
#include <reg51.h> //包含頭文件reg51.h
void delay(unsigned int i); //延時(shí)函數(shù)聲明
void main() //主函數(shù)
{
unsigned char button; //保存按鍵信息
unsigned char code disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xbf};
//定義數(shù)組led,依次存儲(chǔ)包括0~7和" "的共陽極數(shù)碼管顯示碼表
P0=0xff; //讀引腳狀態(tài),需先置1
P1=disp[8]; //顯示" "
while(1)
{
button=P0; //第一次讀按鍵狀態(tài)
delay(1200); //延時(shí)消抖
button=P0; //第二次讀按鍵狀態(tài)
switch(button) //根據(jù)按鍵的值進(jìn)行多分支跳轉(zhuǎn)
{
case 0xfe: P1=disp[0];delay(10000);while(1);break; //0按下,顯示0,待機(jī)
case 0xfd: P1=disp[1];delay(10000);while(1);break; //1按下,顯示1,待機(jī)
case 0xfb: P1=disp[2];delay(10000);while(1);break; //2按下,顯示2,待機(jī)
case 0xf7: P1=disp[3];delay(10000);while(1);break; //3按下,顯示3,待機(jī)
case 0xef: P1=disp[4];delay(10000);while(1);break; //4按下,顯示4,待機(jī)
case 0xdf: P1=disp[5];delay(10000);while(1);break; //5按下,顯示5,待機(jī)
case 0xbf: P1=disp[6];delay(10000);while(1);break; //6按下,顯示6,待機(jī)
case 0x7f: P1=disp[7];delay(10000);while(1);break; //7按下,顯示7,待機(jī)
default: break;
} }
}
//delay
//函數(shù)功能:實(shí)現(xiàn)軟件延時(shí)
//形式參數(shù):無符號整型變量i,控制空循環(huán)的循環(huán)次數(shù)
//返回值:無
void delay(unsigned int i) //延時(shí)函數(shù)
{
unsigned int k;
for(k=0;k<i;k++);
}
0.png (51.72 KB, 下載次數(shù): 94)
下載附件
2017-5-15 17:11 上傳
全部資料下載地址:
8路搶答器.rar
(42.12 KB, 下載次數(shù): 36)
2017-5-15 13:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|