1252基于单片机16抢答器控制系统的设计
随着科学技术的发展和普及,各种竞争越来越多,抢答器的作用也越来越重要。本文设计出来AT89C以51单片机为核心的多路应答器采用数字显示器直接指示、自动锁定显示结果和自动复位的设计理念。它可以根据不同的应答输入信号进行控制和处理,产生不同的输出信号,最后通过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[]={" "};
文章转自电设屋,资料百度网盘下载地址
1252基于单片机16抢答器控制系统设计-毕设课设资料
1250基于单片机16层楼梯电梯仿真设计-毕设课设资料
1249基于单片机16X64点阵电子时钟仿真设计-毕设课设资料
1247基于单片机16x16点阵模拟电梯系统设计-毕设课设资料
1270基于单片机K型热电偶温度控制电机系统设计-毕设课设资料