久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機智能搶答器的程序設計與仿真實現
[打印本頁]
作者:
1640081068
時間:
2017-12-2 16:52
標題:
51單片機智能搶答器的程序設計與仿真實現
這是我編寫的基于51單片機的語音搶答器的設計源文件和PROTUES仿真圖!
智能搶答器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(27.25 KB, 下載次數: 29)
下載附件
2017-12-3 01:06 上傳
單片機源程序如下:
#include "reg51.h" //51系列單片機定義文件
#include "intrins.h" //調用_nop_();延時函數用
#define IN P1 //顯示數據段碼輸出口
#define uchar unsigned char//無符號字符(8位)
#define uint unsigned int //無符號整數(16位)
uchar num; //搶答選手編號
uchar time=20; //搶答時間初值
uchar dtime=30; //回答時間初值
uchar n,m,num_1; //搶答時間臨時變量,秒計數值,搶答選手號
sbit key1=P3^0; //開始
sbit key2=P3^1; //停止
sbit key3=P3^2; //設定
sbit key4=P3^3; //確認
sbit key5=P3^4; //搶答時間加1
sbit key6=P3^5; //搶答時間減1
sbit key7=P3^6; //回答時間加1
sbit key8=P3^7; //回答時間減1
bit TZ=0; //調整標志位
bit RUN=1; //運行標志,=0,搶答計時=1,回答計時。
sbit W1=P2^4;
sbit W2=P2^5;
sbit W3=P2^6;
sbit W4=P2^7;
sbit busy =P2^0;
sbit dat =P2^1;
sbit rest =P2^2;
sbit point=P0^7;
void display();
void sound(uchar k);
/************************************/
uchar code dis_7[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0xFF,0x7F};
/* 共陽七段LED段碼表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" */
/********1毫秒延時子函數**********/
delay1ms(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++)
;
}
/********************************************************報數 程序********************************************************/
void sound(uchar k)
{uint i;
while(busy==0){display();}
rest=1;
display();
rest=0;
for(i=k;i>0;i--)
{dat=1;
display();
dat=0;
}
}
//******************************************顯示程序
void display()
{if(TZ==0)
{P0=dis_7[num]; W1=0; delay1ms(1); W1=1;
P0=0xbf; W2=0; delay1ms(1); W2=1;
P0=dis_7[n/10%10]; W3=0; delay1ms(1); W3=1;
P0=dis_7[n%10]; W4=0; delay1ms(1); W4=1;
}
else
{P0=dis_7[time/10%10]; W1=0; delay1ms(1); W1=1;
P0=dis_7[time%10];point=0; W2=0; delay1ms(1); W2=1;
P0=dis_7[dtime/10%10]; W3=0; delay1ms(1); W3=1;
P0=dis_7[dtime%10]; W4=0; delay1ms(1); W4=1;
}
}
/********************************************************/
/**********語音程序******************/
void nose(uchar x)
{ switch (x)
{ case 0:{sound(29);sound(17);break;}
case 1:{sound(num+1);sound(11);sound(12);sound(13);break;}
case 2:{sound(32);break;}
case 3:{sound(29);sound(25);break;}
case 4:{sound(num+1);sound(11);;sound(14);sound(12)break;}
case 5:{sound(28);sound(25);break;}
default: break;
}
}
/*掃描程序*/
/*****************************************/
void keyscan()
{
if(P1!=0xFF&&TR0==0&&TZ==0)
{num_1=P1;
switch(num_1)
{ case 0xfe: {num=1;nose(4);} break;
case 0xfd: {num=2;nose(4);} break;
case 0xfb: {num=3;nose(4);} break;
case 0xf7: {num=4;nose(4);} break;
case 0xef: {num=5;nose(4);} break;
case 0xdf: {num=6;nose(4);} break;
case 0xbf: {num=7;nose(4);} break;
case 0x7f: {num=8;nose(4);} break;
default: break;
}
while(key2==1){display();}
{sound(32);
num=0;
}
while(key2==0);
}
if(key1==0)
{delay1ms(20);
if(key1==0)
{ sound(32);
while(key1==0);
TR0=1;
RUN=0;
n=time;
while(TR0!=0&&P1==0xff)
{display();
if(key2==0)
{while(key2==0);
n=0;
num=0;
TR0=0;
}
}
TR0=0;m=0;
num_1=P1;
switch(num_1)
{ case 0xfe: {num=1;nose(1);RUN=1;n=dtime;TR0=1;} break;
case 0xfd: {num=2;nose(1);RUN=1;n=dtime;TR0=1;} break;
case 0xfb: {num=3;nose(1);RUN=1;n=dtime;TR0=1;} break;
case 0xf7: {num=4;nose(1);RUN=1;n=dtime;TR0=1;} break;
case 0xef: {num=5;nose(1);RUN=1;n=dtime;TR0=1;} break;
case 0xdf: {num=6;nose(1);RUN=1;n=dtime;TR0=1;} break;
case 0xbf: {num=7;nose(1);RUN=1;n=dtime;TR0=1;} break;
case 0x7f: {num=8;nose(1);RUN=1;n=dtime;TR0=1;} break;
default: break;
}
while(TR0!=0)
{display();
if(key2==0)
{while(key2==0);
n=0;
num=0;
TR0=0;
}
}
num=0;m=0;
}
}
if(key2==0)
{delay1ms(20);
if(key2==0)
{while(key2==0);
n=0;
num=0;
TR0=0;
TZ=0;
}
}
if(key3==0&&TR0==0&&num==0)
{delay1ms(20);
if(key3==0)
{while(key3==0);
TZ=1;
}
}
if(key4==0&&TR0==0&&num==0)
{delay1ms(20);
if(key4==0)
{while(key4==0);
TZ=0;
}
}
if(key5==0&&TZ==1)
{delay1ms(20);
if(key5==0)
{while(key5==0);
if(time>=89)
{time=90;
}
else
{time++;
}
display();
}
}
if(key6==0&&TZ==1)
{delay1ms(20);
if(key6==0)
{while(key6==0);
if(time<=6)
{time=5;
else
{time--;
}
display();
}
}
if(key7==0&&TZ==1)
{delay1ms(20);
if(key7==0)
{while(key7==0);
if(dtime>=89)
{dtime=90;
}
else
{dtime++;
}
display();
}
}
if(key8==0&&TZ==1)
{delay1ms(20);
if(key8==0)
{while(key8==0);
if(time<=6)
{dtime=5;
}
else
{dtime--;
}
display();
}
}
}
/*主程序*/
void main()
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png
(6.59 KB, 下載次數: 39)
下載附件
2017-12-3 01:05 上傳
所有資料51hei提供下載:
新建 WinRAR 壓縮文件.rar
(103.02 KB, 下載次數: 62)
2017-12-2 16:51 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
DWT0630
時間:
2018-12-3 09:44
謝謝大佬分享!
作者:
aaabbbcd
時間:
2020-6-21 18:50
謝謝大佬分享!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成人av激情
|
欧美jizzhd精品欧美巨大免费
|
99在线免费视频
|
99精品电影
|
欧美精品一区二区三区四区 在线
|
久久久久久一区
|
久久久一区二区
|
国产精品亚洲一区二区三区在线
|
国产在线视频在线观看
|
精品亚洲一区二区三区
|
欧美另类视频
|
97碰碰碰
|
在线一区二区三区
|
久久在线精品
|
欧美片网站免费
|
欧美区在线观看
|
国产91在线 | 亚洲
|
国产精品成人久久久久
|
久久久精彩视频
|
久久精品一区二区
|
中文字幕成人
|
性一爱一乱一交一视频
|
www.婷婷
|
四虎影音
|
色视频网站
|
韩日精品视频
|
国产aⅴ
|
av成人在线观看
|
亚欧洲精品在线视频免费观看
|
欧美一区二区在线观看
|
视频在线一区
|
91免费观看国产
|
日韩欧美中文
|
日本黄视频在线观看
|
国产日韩欧美激情
|
中文字幕精品一区二区三区在线
|
www.jizzjizz
|
国产日韩一区二区
|
国产a视频
|
av乱码
|
成人一区精品
|