单片机八路竞赛抢答器课程设计_(编辑修改稿)内容摘要:
此时的数码管显示如下图: 图 仿真时的数码管显示图 即抢答器完成了在规定时间内抢答并锁存的功能,即仿真成功。 武汉理工大学《数字电子技术 基础 》课程设计说明书 11 5 焊接与实物调试 完成焊接之后,实物图如下: 图 实物图 1( 未上电) 图 实物图 2(上电) 经过几次调试,结果符合要求,且效果比较良好。 武汉理工大学《数字电子技术 基础 》课程设计说明书 12 6 心得体会 通过此次的 课程设计 , 让我更进一步的巩固了单片机的各种知识。 我在设计电路板的时候,我在一开始设计的基础上稍微改变了一下 I/O 口的应用,使线的连接更加方便,在外围模块的设计上也稍微花了点功夫,虽然我们没有实现本来想实现的 LED 显示抢答成功选手的功能,但设计还是较成功的。 此次的 课程设计让我 相信 这 会对今后的学习工作生活都有非常重要的影响,而且大大的提高了动手能力,使我充分的体会到了创造过程中的探索的艰难和成功的 喜悦。 虽然这次做出的作品还存在很多需要改进的地方,但是在整个设计过程中所学习到的东西是这次实训所得到的最大收获跟财富,使我终身受益。 武汉理工大学《数字电子技术 基础 》课程设计说明书 13 参考文献 [1]李小坚 主编, 《 Protel DXP 电路设计与制版使用教程》 , 人民邮电出版社 , 20xx [2]徐进强 等 主编, 《单片机技术任务驱动式教程》 , 天津大学出版社 , 20xx [3]李海滨 主编, 《单片机技术课程设计与项目实例》 , 中国电力出版社 , 20xx [4]刘瑞新 主编, 《单片机原理与应用教程》 , 机械工业出版社 , 20xx [5]李广弟 等 主编, 《单片机基础》 , 冶金工业出版社 , 20xx [6]李全利 等 主编, 《基于 Proteus 的单片机可视软硬件仿真》 , 20xx 武汉理工大学《数字电子技术 基础 》课程设计说明书 14 附录 I 元件清单 表 1 器件选型方案的详细清单 器件名称 规格型号 数量 微处理器 AT89C51 1 极性电容 10uF 1 电阻 3WTT10K 9 电容 20PF 3 晶振 12MHZ 1 按钮 15 共 阳 4 位 7 段数码管 SMG SM410561K 1 扬声器 1 武汉理工大学《数字电子技术 基础 》课程设计说明书 15 附录Ⅱ 程序代码 //抢答器 // include define LED_DATA_PORT P0 //0 亮,共阳数码管 define ADJUST 0 //抢答器处于调整状态 define ANSWER 1 //抢答状态 //单片机 IO 口位声明 ,51 单片机可以对 IO 的每一位或 Px 八位单独进行读写操作 sbit 1=P1^3。 //1 亮 sbit 2=P1^2。 sbit 3=P1^1。 sbit 4=P1^0。 sbit key1=P2^1。 sbit key2=P2^3。 sbit key3=P2^5。 sbit key4=P2^7。 sbit key5=P2^0。 sbit key6=P2^2。 sbit key7=P2^4。 sbit key8=P2^6。 sbit key9=P3^5。 //倒计时减 sbit key10=P3^6。 //倒计时加 sbit key11=P3^7。 //清零端,控制端 sbit beep=P1^7。 //1 响 unsigned char num1=0,time=15。 //num1 是用来辅助定时器计数,累计时间到一秒, time 为倒计时 unsigned char shi=0,ge=0。 //倒计时 time 的十位和个位 unsigned char result=0。 //抢答结果 unsigned char state=ADJUST。 //抢答器状态,初始为调整状态 unsigned char flag=0。 //结束标识,状态标识, 0 复位,没有有效信号; 1 有人抢答,结束抢答过程; 2 时间到,无人抢答,结束抢答过 程 const unsigned char ledNum[] = {// 0 1 2 3 4 5 6 7 8 9 A b c d E F 不显示 o(18)H(19)h(20)C(21)0(22)n(23) 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8e,0xFF,0xbf,0xa3,0x89,0x8b,0xc6,0xc0,0xab 武汉理工大学《数字电子技术 基础 》课程设计说明书 16 }。 /* 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 0~65535 */ void Delay(unsigned int t) { while(t)。 } //延时函数, n 毫秒 void Delay_ms(unsigned int n) { unsigned int i,j。 for(i=n。 i0。 i) for(j=110。 j0。 j)。 } //开始声音 void SoundStart(void) { //开始声音 beep=1。 Delay_ms(200)。 beep=0。 } //报警声音 void SoundWarning(void) { unsigned char i。 for(i=0。 i20。 i++)//报警声音。单片机八路竞赛抢答器课程设计_(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。