8路抢答器课程设计报告(2)
#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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




