多路抢答器的设计与制作课程设计报告(3)

2019-02-15 17:45

五、软件设计

1.程序流程图

开始(复位) 电路初始化 开始抢答 计时器开始倒计时 数码管显示时间 是否有键按下 Y 显示选手号码 剩余时间 N 允许答题时间到 禁止抢答 扬声器发声 结束 2.主程序

#include

#define uchar unsigned char #define uint unsigned int sbit LE=P3^4; sbit dula=P3^0; sbit wela=P3^1;

10

sbit speak= P2^3; bit start=0; bit rest=0; bit flag=0; uchar person=0; uchar num=0; uchar time=0; uchar c=0; uchar

table0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; uchar

table1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() {init(); while(1) {if(time==0) start=~WR; rest=~RD; if(start==1) {time=40; start=0; TR0=1; LE=1; }

if(rest==1) {time=0;

TL0=(65536-50000)%6; TH0=(65536-50000)/256;

11

num=0x00; P2=0xff; }

if(time!=0) if(flag==1) {flag=0; speak=0; delay_ms(5000);

speak=1;

switch(person)

{case 0xfe:num=0x01;speak=0; delay_ms(5000);

speak=1;

break;

case 0xfd:num=0x02; break; case 0xfb:num=0x03;break; case 0xf7:num=0x04;break; case 0xef:num=0x05;break; case 0xdf:num=0x06;break; case 0xbf:num=0x07;break; case 0x7f:num=0x08;break; default:; }

}

display(0,time/10); display(1,time); display(2,num); }

}

12

六、调试

1建立工程和仿真图

(1)打开proteus软件,新建一个工程,然后在工作窗口内画好原理图并保存。 (2)打开keil软件新建一个工程,选择所用单片机的型号,然后新建一个文件保存为.c文件并添加到工程中去,开始写源程序,写好后编译生成Hex文件。 (3)将生成的Hex文件下载到单片机内,观察结果,并调试,观察数码管上是否有相应正确的变化。若结果不正确,思考问题的所在,修改源程序,继续调试,直到观察到正确的运行结果。

2.keil软件调试结果

13

3.proteus软件仿真结果

14


多路抢答器的设计与制作课程设计报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:家庭暴力案例

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: