1252基于单片机16抢答器控制系统设计-毕设课设资料
随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计出以AT89C51单片机为核心的多路抢答器,采用了数字显示器直接指示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LED数码管显示相应的路数,即使两组的抢答时间相差几微秒,也可分辨出是哪组优先按下的按键,充分利用了单片机系统结构简单、功能强大、可靠性好、实用性强的特点。
本设计是以抢答为出发点。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,发光二极管和蜂鸣器发出提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;满时后系统计时自动复位及主控强制复位;按键锁定。
关键词:抢答器;AT89C51;LED数码管显示;定时/计数器。
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
#define uchar unsigned char; //定义数据类型 程序中遇到unsigned char 则用uchar替换
#define uint unsigned int; //定义数据类型 程序中遇到unsigned int 则用uint替换
sbit add=P2^0;
sbit jian=P2^1;
sbit beep=P2^2; //定义报警输入端口
sbit start=P2^3;
sbit WEI=P2^7; //定义锁存使能端口 位锁存
sbit DUAN=P2^6; //定义锁存使能端口 段锁存
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 key9=P3^0;
sbit key10=P3^1;
sbit key11=P3^2;
sbit key12=P3^3;
sbit key13=P3^4;
sbit key14=P3^5;
sbit key15=P3^6;
sbit key16=P3^7;
uchar code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
uchar code dofly_WeiMa[10]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码
uchar code table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar TempData[8]; //存储显示值的全局变量
1250基于单片机16层楼梯电梯仿真设计-毕设课设资料
/*************************电梯主程序*****************************/
#include "reg51.h"
#include "intrins.h"
/*********************程序选择****************************/
#define USE_MODE 0 //0-定时模拟 1-传感器
/****************************************************************/
/*********************平台移植部分代码****************************/
//定时器模拟版接口:
#if (USE_MODE==0)
sbit DOOR=P3^5; //电梯门开关控制信号
sbit ElevMotor_P=P3^6; //电梯电机正极控制信号
sbit ElevMotor_N=P3^7; //电梯电机负极控制信号
sbit SHCP=P0^5; //74HC595 LED、数码管显示驱动
sbit DS=P0^6; //74HC595 LED、数码管显示驱动
sbit STCP=P0^7; //74HC595 LED、数码管显示驱动
#define KeyPort_X P1 //矩阵按键接口
#define KeyPort_Y P2 //矩阵按键接口
#endif
//除以上定义的IO外,还需用到P33作为矩阵键盘的中断触发引脚
//8路与门可用芯片:CD4068或74LS30(芯片是与非门)+出端接一个三极管反向电平。
//传感器版接口:
#if (USE_MODE==1)
sbit DOOR_CLOSE_SENSOR=P3^4;//电梯门关闭检测传感器输入
sbit DOOR=P3^5; //电梯门开关控制信号
sbit ElevMotor_P=P3^6; //电梯电机正极控制信号
sbit ElevMotor_N=P3^7; //电梯电机负极控制信号
sbit SHCP=P0^5; //74HC595 LED、数码管显示驱动
sbit DS=P0^6; //74HC595 LED、数码管显示驱动
sbit STCP=P0^7; //74HC595 LED、数码管显示驱动
#define KeyPort_X P1 //矩阵按键接口
#define KeyPort_Y P2 //矩阵按键接口
#endif
//除以上定义的IO外,还需用到P33作为矩阵键盘的中断触发引脚
//需用到P32作为楼层限位开关触发中断引脚
//每个楼层一个限位开关,接在N路输入的与门芯片上
//如果大于8层,可用两个8路输入的与门芯片+一个2路的与门芯片组合
//8路与门:用8路与非门CD4068或74LS30+输出端接一个三极管反向电平。
/****************************************************************/
1249基于单片机16X64点阵电子时钟仿真设计-毕设课设资料
晶振: 22.1184M
时间:
外部器件: 16*64点阵,ds1302
接线: 见DS1302.h,DS18B20.h和本主文件
***********************************************************/
#include <REGX52.H>
#include "DS1302.h"
#include "DS18B20.h"
#include "nongli.h"
#include "zimo.h"
#define H_PORT P0 //ABCD P1
sbit RData = P2^0; //RData=P2^0,GData=P2^1
sbit GData = P2^1;
sbit L_CLK = P2^2;
sbit L_STB = P2^3;
sbit R_OE = P2^4; //R EN=P2^4,G EN=P2^5
sbit G_OE = P2^5;
//sbit Data=P2^1; //RData=P2^0,GData=P2^1
//sbit OE=P2^6; //R EN=P2^5,G EN=P2^6
sbit key_add=P3^1;
sbit key_dec=P3^2;
sbit key_adj=P3^0;
sbit key_esc=P3^3;
1247基于单片机16x16点阵模拟电梯系统设计-毕设课设资料
#include <reg51.h> //51系列单片机头文件
#define uchar unsigned char //宏定义
#define uint unsigned int //宏定义
/******************************************************
基础定义
*******************************************************/
uchar m=0,n=0;
uchar o,p,d;
uchar time=0;
/******************************************************
数码显示数据定义
*******************************************************/
sbit a=P2^4; //154芯片使能
sbit b=P2^5;
uchar code led[][32]={
{0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x04,0x0C,0x1C,0x3F,0x7F,0x7F,0x3F,0x1C,0x0C,0x04,0x00,0x00,0x00,},//下箭头
{0x00,0x00,0x00,0x00,0x10,0x18,0x1C,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x7F,0x7F,0x7F,0x60,0x60,0x60,0x00,0x00,0x00,},//1
{0x00,0x00,0x20,0x70,0x78,0x08,0x0C,0x0C,0x0C,0x0C,0x8C,0xDC,0xF8,0x70,0x00,0x00,
0x00,0x00,0x30,0x30,0x38,0x3C,0x3E,0x36,0x33,0x33,0x31,0x31,0x30,0x38,0x00,0x00,},//2
{0x00,0x00,0x20,0x30,0x38,0x0C,0x0C,0x0C,0x8C,0x8C,0x8C,0xF8,0x78,0x20,0x00,0x00,
0x00,0x00,0x18,0x38,0x78,0x60,0x60,0x61,0x61,0x61,0x21,0x33,0x1E,0x1E,0x00,0x00,},//3
{0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0xF8,0xF8,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x0E,0x0E,0x0F,0x0D,0x0C,0x6C,0x6C,0x7F,0x7F,0x7F,0x6C,0x6C,0x60,0x00,},//4
1270基于单片机K型热电偶温度控制电机系统设计-毕设课设资料
#include <reg51.h>
#include <Intrins.h>
#include <LCD1602.H>
#include <math.H>
#define C02_write 0xa0 //c02写地址
#define C02_read 0xa1 //c02读地址
#define uchar unsigned char
#define uint unsigned int
sbit MAX6675_CS=P1^2; //MAX6675冷端温度补偿,将K型热电偶信号转为数字信号
sbit MAX6675_SCK=P1^1;
sbit MAX6675_SO=P1^0;
sbit normal=P2^3; //LED灯表示温度正常,过高,过低
sbit upper=P2^4;
sbit lower=P2^5;
sbit direction=P2^6;
sbit stop=P2^7;
sbit SCL=P1^3; //EEPROM,256byte
sbit SDA=P1^4;
sbit beep=P1^7; //蜂鸣器
bit ack,flag=0,flag1=0;
uint tz;
int sth=0,stl=0,t_zhi=0;
uchar data temp1[]={'+','1','2','0','0',0},temp2[]={'-' ,'1','0','0','0',0};
uchar data temp[7];
char code keytab[]={0xEE,0xDE,0xBE,0x7E,0xED,0xDD,0xBD,0x7D,0xEB,0xDB,0xBB,0x7B,0xE7,0xD7,0xB7,0x77};
unsigned char code str1[]={"STH STL"}; //system temperature high,low
unsigned char code str2[]={"PARAMTER STEUP"};
unsigned char code str3[]={" "};
文章转自电设屋,资料百度网盘下载地址 https://www.aiesst.cn/share.html
目录
1249基于单片机16X64点阵电子时钟仿真设计-毕设课设资料
1247基于单片机16x16点阵模拟电梯系统设计-毕设课设资料