教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

8路抢答器课程设计报告(2)

来源:网络收集 时间:2026-01-30
导读: #define keyboard P1; sbit W1=P2^4; sbit W2=P2^3; sbit CLK=P2^1; sbit DAT=P2^2; sbit CLC=P2^0; sbit RET=P3^4; sbit REE=P3^5; sbit WAR=P2^5; /*---------程序预定义---------*/ void Send(unsigned int f);

#define keyboard P1;

sbit W1=P2^4;

sbit W2=P2^3;

sbit CLK=P2^1;

sbit DAT=P2^2;

sbit CLC=P2^0;

sbit RET=P3^4;

sbit REE=P3^5;

sbit WAR=P2^5;

/*---------程序预定义---------*/

void Send(unsigned int f);

void display(void);

void sounds(void);

void sound(unsigned int m,unsigned int n);

/*---------延时程序---------*/

void delay(unsigned int n)

{

unsigned int i,j;

for(j=0;j<n;j++)

{

for(i=0;i<5;i++);

}

}

void delays(unsigned int n)

{

unsigned int i;

for(i=0;i<n;i++) ;

- 8 -

8路抢答器课程设计报告

}

/*---------定时器0、1初始化---------*/ void Init_Timer(void)

{

TMOD|=0X11;

TH0=0X00;

TL0=0X00;

TH1=0X00;

TL1=0X00;

EA=1;

ET1=1;

TR1=1;

}

/*---------中断0、1初始化---------*/ void Int(void)

{

EA=1;

EX1=1;

IT0=1;

IT1=1;

}

void main()

{

WAR=1;

RET=1;

Init_Timer();

Int();

while(1)

{

}

}

/*---------显示程序---------*/

void display(void)

{

unsigned int i;

- 9 -

8路抢答器课程设计报告

for(i=0;i<2;i++)

{

Send(DM1[p%10]);

delay(1);

W1=0;

delay(20);

W1=1;

CLC=0;

delay(1);

CLC=1;

Send(DM2[p/10]);

delay(1);

W2=0;

delay(20);

W2=1;

CLC=0;

delay(1);

CLC=1;

}

}

/*---------定时器0服务程序---------*/ void Timer0_serve(void) interrupt 1

{

TH0=0X00;

TL0=0X00;

if(a<50)

a++;

else

{

a=0;

sounds();

if(p==0&&c==2)

{

sound(100,20);

RET=0;

- 10 -

8路抢答器课程设计报告

delay(1);

RET=1;

delay(1);

p=15;

c=1;

EX0=1;

}

else if(p==0&&c==1)

{

REE=0;

delay(1);

REE=1;

ET0=0;

TR0=0;

c=0;

EX0=0;

}

else

p--;

}

}

void Timer0_ser1(void)interrupt 3

{

TH1=(65536-2000)/256;

TL1=(65536-2000)%256;

display();

}

/*---------中断0服务程序---------*/ void Int_ser0(void) interrupt 0

{

unsigned int l,h,g;

h=0;

l=keyboard;

if(l!=0xff&&l!=0x00)

{

- 11 -

8路抢答器课程设计报告

ET0=0;

TR0=0;

EX0=0;

do

{

h++;

g=l&0x01;

l=l>>1;

}while(g);

p=h;

}

display();

}

/*---------中断1服务程序---------*/ void Int_ser1(void) interrupt 2

{

c=2;

p=3;

ET0=1;

TR0=1;

}

/*------------显示数据发送-------------*/ void Send(unsigned int f)

{

unsigned char i;

for(i=0;i<8;i++)

{

CLK=0;

DAT=f&0x01;

delay(1);

CLK=1;

delay(1);

CLK=0;

f=f>>1;

}

- 12 -

8路抢答器课程设计报告

}

/*------------发声函数-------------*/

void sound(unsigned int m,unsigned int n) {

unsigned int i;

ET0=0;

TR0=0;

for(i=0;i<m;i++)

{

WAR=1;

delays(n);

WAR=0;

delays(n);

}

ET0=1;

TR0=1;

WAR=1;

}

/*------------声音提示判断程序-------------*/ void sounds(void)

{

if(p<11&&c==1)

{

if(p<6)

{

if(p==0)

{

sound(10,23);

}

else if(p==5)

{

sound(15,50);

}

}

else if(p==10)

- 13 -

8路抢答器课程设计报告

- 14 - {

sound(20,60);

}

}

}

第四章:总结

经过近两个星期的努力 ,在老师的指导下我成功地完成了八路抢答器的设计,通过此次课程设计,我重新认识到了对书本上的知识要独立运用的道理。在抢答器设计过程中,发现了很多细节性的问题,也出现了很多错误,经过不断思考和查阅资料找到问题出现的原因!通过此次的抢答器的设计,让我对以前所学习的电子知识和C 语言知识有了更深的记忆,也使我加深了对单片机及接口技术的理解和应用,由于知识水平的局限,设中可能会存在着一些不足,我真诚的接受老师和同学的批评和指正。

参考文献

1.C 程序设计 ,谭浩强,清华大学出版社,2005

2.单片机原理及接口技术(第3版),李朝青,北京航空航天大学出版社,2002

3. 基于Proteus 的51系列单片机设计与仿真(第3版),陈忠平

4. 单片机课程设计实例指导,李光飞,北京航天航空大学出版社,2004

…… 此处隐藏:753字,全部文档内容请下载后查看。喜欢就下载吧 ……
8路抢答器课程设计报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/123901.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)