按键盘数码管流动显示实验
显示 实验 键盘 数码管 流动
2023-09-27 14:29:23 时间
#define LEDLen 6
xdata unsigned char OUTBIT _at_ 0x8002; // 位控制口
xdata unsigned char OUTSEG _at_ 0x8004; // 段控制口
xdata unsigned char IN _at_ 0x8001; // 键盘读入口
unsigned char LEDBuf[LEDLen]; // 显示缓冲
code unsigned char LEDMAP[] = { // 八段管显示码 (点不显示,0-F)
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
};
code unsigned char KeyTable[] = { // 键码定义
0x16, 0x15, 0x14, 0xff,
0x13, 0x12, 0x11, 0x10,
0x0d, 0x0c, 0x0b, 0x0a,
0x0e, 0x03, 0x06, 0x09,
0x0f, 0x02, 0x05, 0x08,
0x00, 0x01, 0x04, 0x07
};
void Delay(unsigned char CNT)
{
unsigned char i;
while (CNT-- !=0)
for (i=100; i !=0; i--);
}
void DisplayLED()
{
unsigned char i;
unsigned char Pos;
unsigned char LED;
Pos = 0x20; // 从左边开始显示
for (i = 0; i LEDLen; i++) {
OUTBIT = 0; // 关所有八段管
LED = LEDBuf[i];
OUTSEG = LED;
OUTBIT = Pos; // 显示一位八段管
Delay(2);
Pos = 1; // 显示下一位
}
}
unsigned char TestKey()
{
OUTBIT = 0; // 输出线置为0
return (~IN 0x0f); // 读入键状态(高四位不用)
}
unsigned char GetKey()
{
unsigned char Pos;
unsigned char i;
unsigned char k;
i = 6;
Pos = 0x20; // 找出键所在列
do {
OUTBIT = ~ Pos;
Pos = 1;
k = ~IN 0x0f;
} while ((--i != 0) (k == 0));
// 键值 = 列 x 4 + 行
if (k != 0)
{
i *= 4;
if (k 2)
i += 1;
else if (k 4)
i += 2;
else if (k 8)
i += 3;
OUTBIT = 0;
do
Delay(10); while (TestKey()); // 等键释放
return(KeyTable[i]); // 取出键码
} else return(0xff);
}
void main()
{ unsigned int i=0;
LEDBuf[0] = 0x00; //如果设置为3F那么最初第一个数码管显示为0
LEDBuf[1] = 0x00;
LEDBuf[2] = 0x00;
LEDBuf[3] = 0x00;
LEDBuf[4] = 0x00;
LEDBuf[5] = 0x00;
while (1) {
DisplayLED();
if (TestKey())
{
LEDBuf[i++%6] = LEDMAP[GetKey() 0x0f];
//LEDBuf[5]=LEDMP[GetKey() 0x0f];
}
}
实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开) 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
案例分享:Qt工程机械真空激光焊接系统软件产品定制(西门子PLC,mysql数据库,用户权限控制,界面配置,参数定制,播放器,二维图标,rgv小车,期限控制,参数调试等) 基于Qt的真空焊接系统工程机械案例分享。1.ui由本司美工承担设计,显示分辨率1280 x 1024,同时支持鼠标操作。2.权限控制:三种权限,分为管理员(可以定制模块界面,修改产品名称等定制化软件和其他权限,同时具备编程员和操作员权限),编程员(新建工件,参数,调试功能等与生产相关的权限,同时具备操作员权限),操作员(加工相关的操作权限),三个等级对所有界面进行区分使用,并可进行管理;3.专家可增删改编程员,操作员;编程员可增删改操作员;4.与西门子PLC通讯,兼容S7全系,项目使用S7-1500...
蓬莱仙羽 麦子学院讲师,游戏蛮牛专栏作家,CSDN博客专家,热爱游戏开发,热爱Coding!
xdata unsigned char OUTBIT _at_ 0x8002; // 位控制口
xdata unsigned char OUTSEG _at_ 0x8004; // 段控制口
xdata unsigned char IN _at_ 0x8001; // 键盘读入口
unsigned char LEDBuf[LEDLen]; // 显示缓冲
code unsigned char LEDMAP[] = { // 八段管显示码 (点不显示,0-F)
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
};
code unsigned char KeyTable[] = { // 键码定义
0x16, 0x15, 0x14, 0xff,
0x13, 0x12, 0x11, 0x10,
0x0d, 0x0c, 0x0b, 0x0a,
0x0e, 0x03, 0x06, 0x09,
0x0f, 0x02, 0x05, 0x08,
0x00, 0x01, 0x04, 0x07
};
void Delay(unsigned char CNT)
{
unsigned char i;
while (CNT-- !=0)
for (i=100; i !=0; i--);
}
void DisplayLED()
{
unsigned char i;
unsigned char Pos;
unsigned char LED;
Pos = 0x20; // 从左边开始显示
for (i = 0; i LEDLen; i++) {
OUTBIT = 0; // 关所有八段管
LED = LEDBuf[i];
OUTSEG = LED;
OUTBIT = Pos; // 显示一位八段管
Delay(2);
Pos = 1; // 显示下一位
}
}
unsigned char TestKey()
{
OUTBIT = 0; // 输出线置为0
return (~IN 0x0f); // 读入键状态(高四位不用)
}
unsigned char GetKey()
{
unsigned char Pos;
unsigned char i;
unsigned char k;
i = 6;
Pos = 0x20; // 找出键所在列
do {
OUTBIT = ~ Pos;
Pos = 1;
k = ~IN 0x0f;
} while ((--i != 0) (k == 0));
// 键值 = 列 x 4 + 行
if (k != 0)
{
i *= 4;
if (k 2)
i += 1;
else if (k 4)
i += 2;
else if (k 8)
i += 3;
OUTBIT = 0;
do
Delay(10); while (TestKey()); // 等键释放
return(KeyTable[i]); // 取出键码
} else return(0xff);
}
void main()
{ unsigned int i=0;
LEDBuf[0] = 0x00; //如果设置为3F那么最初第一个数码管显示为0
LEDBuf[1] = 0x00;
LEDBuf[2] = 0x00;
LEDBuf[3] = 0x00;
LEDBuf[4] = 0x00;
LEDBuf[5] = 0x00;
while (1) {
DisplayLED();
if (TestKey())
{
LEDBuf[i++%6] = LEDMAP[GetKey() 0x0f];
//LEDBuf[5]=LEDMP[GetKey() 0x0f];
}
}
实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开) 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
案例分享:Qt工程机械真空激光焊接系统软件产品定制(西门子PLC,mysql数据库,用户权限控制,界面配置,参数定制,播放器,二维图标,rgv小车,期限控制,参数调试等) 基于Qt的真空焊接系统工程机械案例分享。1.ui由本司美工承担设计,显示分辨率1280 x 1024,同时支持鼠标操作。2.权限控制:三种权限,分为管理员(可以定制模块界面,修改产品名称等定制化软件和其他权限,同时具备编程员和操作员权限),编程员(新建工件,参数,调试功能等与生产相关的权限,同时具备操作员权限),操作员(加工相关的操作权限),三个等级对所有界面进行区分使用,并可进行管理;3.专家可增删改编程员,操作员;编程员可增删改操作员;4.与西门子PLC通讯,兼容S7全系,项目使用S7-1500...
蓬莱仙羽 麦子学院讲师,游戏蛮牛专栏作家,CSDN博客专家,热爱游戏开发,热爱Coding!
相关文章
- 笔记本开机显示phoenix securecore解决方案
- 利用TLD2131组成LED矩阵显示实验电路板
- 【FPGA教程案例67】硬件开发板调试7——基于HDMI接口的彩色显示器图像显示实验
- 35Vue - 显示过滤/排序结果
- 为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 alias vi='vim'此时,经过上面配置已经可以显示语法高亮了
- 《HTML5实战》——2.3 计算金额总计,显示表单输出结果
- PC上图标显示异常 白色框框处理方案
- SwiftUI 图表教程之 06 绘制折线图显示标题GeometryReader(教程含源码)
- Python+ITchart实现微信中男女比例,城市分布统计并可视化显示
- telnet一个端口后显示建立连接,但是很快就close退出了
- Ubuntu终端改成显示相对路径
- 小程序图片 mode 设置为 widthFix 图片显示瞬间竖向拉伸变形闪烁
- js实现文本框文本域光标处插入图片文本的插件(并且光标在插入内容的内容后显示)
- 【HarmonyOS】【JAVA UI】鸿蒙怎么对图片编码为base64和base64解码为PixelMap,并显示在控件上
- 【正点原子FPGA连载】第二十四章SD卡读BMP图片LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
- 【正点原子FPGA连载】第二十三章PS通过VDMA驱动LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
- 【正点原子FPGA连载】第十六章DP彩条显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
- 【正点原子FPGA连载】 第三十四章双目OV5640摄像头RGB-LCD显示实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0
- 【正点原子FPGA连载】第三十三章OV5640摄像头HDMI显示实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0
- 【正点原子STM32连载】第四十七章 汉字显示实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- 【正点原子STM32连载】第二十三章 OLED显示实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- 【正点原子FPGA连载】第四十八章SD卡读BMP图片HDMI显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【正点原子FPGA连载】第四十七章SD卡读BMP图片LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【正点原子FPGA连载】第四十四章MT9V034摄像头HDMI显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【正点原子FPGA连载】第三十九章OV7725摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- odoo 设置中左栏图标显示问题
- 开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
- 为什么CAD模型空间中彩色图形全部显示为白色?
- CAD(dxf、dwg格式)文件的读取和显示,真正实现通过代码预览CAD文件,包含解析dwg、dxf文件,可以提取标注信息,可以转换为pdf、png、tiff、gif等6种格式的文件,可以永久免费实用
- Windows7系统不显示.gitignore文件名
- 微信base64图片显示问题