八路抢答器电子线路设计(附C语言程序) 下载本文

电子系统课程设计

第四章 系统软件设计

4.1 抢答器流程图

流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。

流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。为便于识别,绘制流程图的习惯做法是:

方框表示:要执行的处理(Process) 平行四边型表示:代表资料输入(Input)

不规则图形代表资料输出(Output)或报表输出(Print) 菱形表示:决策或判断(例如:If...Then...Else)

12

电子系统课程设计

开始 初始化部分 N P3.2= =0 Y 启动中断,数码管开始计时20秒 N 若有选手抢答 Y 中断停止,数码管显示选手的标号及选中时间 结束 图4-1-1抢答器主程序流程图

4.2 抢答器程序

#include #define uint unsigned int #define uchar unsigned char //共阴极数码管编码表 0 - f 显示

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //变量定义 sbit BEEP=P3^1;

sbit start_stop = P3^2; sbit reset = P3^3;

13

电子系统课程设计

sbit key1 = P1^0; sbit key2 = P1^1; sbit key3 = P1^2; sbit key4 = P1^3; sbit key5 = P1^4; sbit key6 = P1^5; sbit key7 = P1^6; sbit key8 = P1^7; sbit state = P3^0; bit start_stop_flag = 0; bit key1_flag = 0; bit key2_flag = 0; bit key3_flag = 0; bit key4_flag = 0; bit key5_flag = 0; bit key6_flag = 0; bit key7_flag = 0; bit key8_flag = 0; bit reset_flag = 0; bit action = 0; uchar second = 20; uchar timer0_count = 0; uchar number = 0; uchar number_display = 0; uint flag = 1; //延时函数 void delay(uint z) {

uint x,y;

14

电子系统课程设计

for(x=z;x>0;x--)

for(y= 120;y>0;y--); }

//蜂鸣器发声延时 void DelayMS(uint x) { }

//数码管显示驱动函数

void display(uchar number,uchar second) {

uchar second_first,second_second; uchar t; while(x--)

for(t=0;t<100;t++);

second_first = second / 10; second_second = second % 10;

P0 =0x00;

P2 = 0xfe;

P0 = table[number]; delay(2); P0 =0x00; P2 = 0xfd; P0 = 0x40; delay(2);

P0 =0x00;

P2 = 0xfb;

P0 = table[second_first]; delay(2);

P0 =0x00;

15