news 2026/5/11 10:03:36

作业4:独立按键+数码管操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
作业4:独立按键+数码管操作

文章目录

  • 1、测试代码照片
  • 2、流水灯
  • 3、独立按键(点亮4个灯)
  • 4.独立按键视频(点亮8个灯)
  • 5、数码管显示“111111”
  • 6、123456
  • 7、11.12.13
  • 8、HH8800.

1、测试代码照片

2、流水灯

#include <reg51.h> #define uchar unsigned char void delay(unsigned int time) { unsigned int i, j; for (i = 0; i < time; i++) for (j = 0; j < 120; j++); } uchar code table[] = { // 加 code 关键字将数组存储在 ROM 中,节省 RAM 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F }; void main() { uchar i; while(1) { for(i = 0; i < 8; i++) { P1 = table[i]; // 修正为 P1 delay(200); } } }

3、独立按键(点亮4个灯)

独立按键点亮4个灯

#include <REGX51.H> // 定义按键(按下为低电平) sbit KEY1 = P3^4; sbit KEY2 = P3^5; sbit KEY3 = P3^6; sbit KEY4 = P3^7; // 定义 LED(低电平点亮),仅保留 D1, D3, D5, D7 sbit LED1 = P1^0; // D1 sbit LED3 = P1^2; // D3 sbit LED5 = P1^4; // D5 sbit LED7 = P1^6; // D7 // 延时函数(12MHz晶振下约1ms) void delay_ms(unsigned int ms) { unsigned int i, j; for(i = 0; i < ms; i++) for(j = 0; j < 123; j++); } void main() { P1 = 0xFF; // 所有LED初始熄灭(低电平点亮,写1熄灭) while(1) { // 检测 KEY1 → 控制 D1 if(KEY1 == 0) { delay_ms(10); // 消抖 if(KEY1 == 0) { LED1 = ~LED1; // 翻转D1 while(!KEY1); // 等待按键松开 } } // 检测 KEY2 → 控制 D3 if(KEY2 == 0) { delay_ms(10); if(KEY2 == 0) { LED3 = ~LED3; while(!KEY2); } } // 检测 KEY3 → 控制 D5 if(KEY3 == 0) { delay_ms(10); if(KEY3 == 0) { LED5 = ~LED5; while(!KEY3); } } // 检测 KEY4 → 控制 D7 if(KEY4 == 0) { delay_ms(10); if(KEY4 == 0) { LED7 = ~LED7; while(!KEY4); } } } }

4.独立按键视频(点亮8个灯)

独立按键点亮8个灯

5、数码管显示“111111”

6、123456

7、11.12.13

8、HH8800.

HH8800.

#include <reg52.h> #define uchar unsigned char sbit dula = P2^6; // 段选锁存 sbit wela = P2^7; // 位选锁存 // 段码表(共阴极,0-9 及字母 H) // 段码顺序:dp g f e d c b a (高位到低位) uchar code TableDula[] = { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F, // 9 0x76 // H (b c e f g 段亮: 0111 0110 = 0x76) }; // 位码表(低电平选中第1-6位) uchar code TableWela[] = { 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF }; // 每位显示的数字/字母索引(0-9对应数字,10对应H) uchar code DisplayNum[] = { 10, // 第1位:H 10, // 第2位:H 8, // 第3位:8 8, // 第4位:8 0, // 第5位:0 0 // 第6位:0(将带小数点) }; // 各位是否需要小数点(1表示需要,0表示不需要) uchar code DisplayDot[] = { 0, // 第1位无小数点 0, // 第2位无小数点 0, // 第3位无小数点 0, // 第4位无小数点 0, // 第5位无小数点 1 // 第6位显示小数点 }; void delay(uchar x) { uchar j; while(x--) { for(j = 0; j < 125; j++); } } void main() { uchar i; while(1) { for(i = 0; i < 6; i++) { P0 = 0x00; // 清空数据总线 dula = 0; wela = 0; // 1. 送位码(选择当前位) P0 = TableWela[i]; wela = 1; wela = 0; // 2. 送段码(数字 + 可选小数点) P0 = TableDula[DisplayNum[i]]; if(DisplayDot[i]) { P0 |= 0x80; // 点亮小数点(共阴极小数点段为最高位) } dula = 1; dula = 0; delay(2); // 延时,保持亮度 } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 9:58:55

Translumo实时屏幕翻译工具:打破语言壁垒的终极解决方案

Translumo实时屏幕翻译工具&#xff1a;打破语言壁垒的终极解决方案 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 在全球…

作者头像 李华
网站建设 2026/5/11 9:47:15

云原生AI模型部署策略:构建高效的模型服务体系

云原生AI模型部署策略&#xff1a;构建高效的模型服务体系 概述 在云原生时代&#xff0c;AI模型部署不再是简单的模型上线&#xff0c;而是涉及模型优化、服务架构、自动化运维等多个层面的复杂工程问题。本文将深入探讨云原生环境下AI模型部署的核心策略、技术选型和最佳实践…

作者头像 李华
网站建设 2026/5/11 9:46:56

政务远程帮办部署踩坑实录——从互联网到政务外网

政务远程帮办部署踩坑实录——从互联网到政务外网非科班野生程序员&#xff0c;深耕政务信息化20年。这篇博客记录政务远程帮办在真实政务网络环境下的部署过程&#xff0c;两个关键踩坑点的完整复盘。背景 政务远程帮办要在政务网络环境中部署&#xff0c;而政务网络和互联网是…

作者头像 李华
网站建设 2026/5/11 9:42:31

5G载波聚合(CA)技术解析:提升网络速度与容量的关键手段

5G载波聚合&#xff08;CA&#xff09;技术解析&#xff1a;提升网络速度与容量的关键手段 在5G通信技术不断演进的进程中&#xff0c;载波聚合&#xff08;Carrier Aggregation&#xff0c;简称CA&#xff09;作为一项重要技术&#xff0c;正逐渐成为提升网络性能、满足用户多…

作者头像 李华