基于AT89C51单片机六路抢答器的设计

2026/1/14 0:31:28

合肥师范学院课程设计报告

3 软件设计

软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。

3.1 程序流程图

图3-1 程序流程图

图3-1为本实验的程序流程图。

3.2 系统程序

在本设计中包括了以下程序:主程序、p1.0-p1.5为六路抢答输入数码管段选P0口,位选P2口。

系统程序: #include sbit k1=P1^0; sbit k2=P1^1;

6

合肥师范学院课程设计报告

sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4; sbit k6=P1^5;

unsigned char DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82}; void delayms(unsigned int ms) {

unsigned int i,j; for(i=0;i

void main() {

unsigned char key,i; TMOD=0x01; TH0=0xff; TL0=0xff;

while(1) {

key=P1; if(key==0xff) {

for(i=1;i<7;i++) {

switch(i) {

case 1:P2=0x01;break; case 2:P2=0x02;break; case 3:P2=0x04;break; case 4:P2=0x08;break; case 5:P2=0x10;break; case 6:P2=0x20;break;

default : P2=0x01;break; }

7

合肥师范学院课程设计报告

P0=DSY_CODE[i]; delayms(10); } }

if(key!=0xff) } }

void Tim_T0() interrupt 1 using 0 { {

P2=0xff; P0=DSY_CODE[1]; }

if(k2==0&&k1!=0&&k3!=0&&k4!=0&&k5!=0&&k6!=0) {

P2=0xff; P0=DSY_CODE[2]; }

if(k3==0&&k1!=0&&k2!=0&&k4!=0&&k5!=0&&k6!=0) {

P2=0xff; P0=DSY_CODE[3]; }

if(k4==0&&k1!=0&&k2!=0&&k3!=0&&k5!=0&&k6!=0) {

P2=0xff; P0=DSY_CODE[4]; }

8

{EA=1; ET0=1; TR0=1; }

if(k1==0&&k2!=0&&k3!=0&&k4!=0&&k5!=0&&k6!=0)

合肥师范学院课程设计报告

if(k1!=0&&k6!=0&&k2!=0&&k3!=0&&k4!=0&&k5==0) {

P2=0xff; P0=DSY_CODE[5]; }

if (k6==0&&k1!=0&&k2!=0&&k3!=0&&k4!=0&&k5!=0) {

P2=0xff; P0=DSY_CODE[6]; } }

9


基于AT89C51单片机六路抢答器的设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于AT89C51单片机六路抢答器的设计 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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