8051单片机抢答器C程序
/******************************************************************
* 自定义Macro
*******************************************************************/
//编码的均为反向编码
#define CLEAR 0x7f //定义清空的反码
#define LED_BEGIN 0x01 // 定义开始时数码管的显示
#define LED_FOUL 0x38 // 犯规后显示字母"F",数码管编码
#define LED_C 0x31 // 字母"C"的编码
#define LED_L 0x71 // 字母"L"的编码,两个用来在主持人取消之后显示"CL"--cancel
#define GET 1 // 这个是作为一个函数的参数来混的,就是成功抢答的意思
#define FOUL 0 // 和上面的参数一起混的,犯规---这两个的用法在后面体现
#define READY 0x7e
/******************************************************************
* 自定义数据类型
*******************************************************************/
typedef unsigned char Byte; // 一个字节
typedef unsigned int Word; // 一个字,两个字节
typedef bit Bool; // 模仿布尔型变量
//typedef sbit Port; // 本想用自定义一个端口类型的变量,比较方便,但是这句话步知道为何通不过编译
/******************************************************************
* 定义MAX7219寄存器
*******************************************************************/
#define REG_NO_OP 0x00 // 定义空操作 register
#define DIG_1 0x01 // 定义数码管1 register
#define DIG_2 0x02 // 定义数码管2 register
#define DIG_3 0x03 // 定义数码管3 register
#define DIG_4 0x04 // 定义数码管4 register
#define DIG_5 0x05 // 定义数码管5 register
#define DIG_6 0x06 // 定义数码管6 register
#define DIG_7 0x07 // 定义数码管7 register
#define DIG_8 0x08 // 定义数码管8 register
#define REG_DECODE 0x09 // 定义解码控制 register
#define REG_INTENSITY 0x0a // 定义显示亮度 register
#define REG_SCAN_LIMIT 0x0b // 定义扫描限制 register
#define REG_SHUTDOWN 0x0c // 定义"shutdown"模式 register
#define REG_DISPLAY_TEST 0x0f // 定义"display test"模式 register
#define INTENSITY_MIN 0x00 // 定义最低显示亮度
#define INTENSITY_MAX 0x0f // 定义最高显示亮度
/*********************************************************************
* 定义硬件引脚连接
**********************************************************************/
sbit DA
sbit LOAD=P2^1; // MAX7219的锁存端口
sbit CLK=P2^2; // MAX7219的时钟端口
//sbit HOST_SWITCH=P0^0; // 主持人开关的接口
sbit HOST_START=P0^0; //主持人按键,用来重新开始的按键 start
sbit HOST_CANCEL=P0^1; //主持人用来取消抢答的按键 clear
sbit SWITCH1_3=P1^4; // 调节倒计时时间的拨码开关,下划线前面的号代表开关的序号,下划线后面的号代表该开关的数值
sbit SWITCH2_2=P1^5; // 同上
sbit SWITCH3_2=P1^6; // 同上
sbit SWITCH4_1=P1^7; // 同上
sbit BEEP=P0^7; //定义蜂鸣器端口
sbit LS138_C=P2^4; //定义译码器输入端
sbit LS138_B=P2^5; //同上
sbit LS138_A=P2^6; //同上
sbit LS138_E1=P2^7; //定义译码器使能端
/*********************************************************************
* 定义全局变量
**********************************************************************/
Byte da
Byte da
Byte da
Byte da
Bool da
Bool da
Bool da
Byte da
co
/***********************************************************************
* 共阴极七段数码管显示对应段查询表(数字0-9分别对应co
***********************************************************************/
Byte co
{0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};
Byte co
{0x01,0x4f,0x12,0x06,0x4c,0x24,0x20,0x0f,0x00,0x04};
/***********************************************************************
* 函数
8051单片机抢答 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)