当前位置: 首页 > news >正文

作业二6位数码管显示

文章目录

    • 1.效果图:显示6个9
    • 1.代码
    • 2.效果图:第1、6位显示7
    • 2.代码
    • 3.效果图:6位0到9轮流显示
    • 3.代码
    • 4.效果图:中间两位0到9轮流显示
    • 4.代码
    • 5.效果图(显示1,2,3,4,5,6)
    • 5.代码
    • 6.效果图(显示1,3.,1,4.,1,5)
    • 6.代码

1.效果图:显示6个9

1.代码

#include<reg52.h>// 头文件// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U2(位选)// 主函数voidmain(){// 1.位选控制wela=1;// 打开位选P0=0xc0;// 位选6个数码管 1100 0000wela=0;// 关闭位选// 2.段选控制dula=1;// 打开段选P0=0x6f;// 数码管显示“9”dula=0;// 关闭段选// 3.保持while(1);}

2.效果图:第1、6位显示7

2.代码

#include<reg52.h>// 头文件// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U2(位选)// 主函数voidmain(){// 1.位选控制wela=1;// 打开位选P0=0xde;// 位选第1、6个数码管 1101 1110wela=0;// 关闭位选// 2.段选控制dula=1;// 打开段选P0=0x07;// 数码管显示“7”dula=0;// 关闭段选// 3.保持while(1);}

3.效果图:6位0到9轮流显示

3.代码

#include<reg52.h>// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U3(位选)// 共阴极数码管段码表uchar code seg_code[]={0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 延时函数voiddelay(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}// 数码管展示函数voiddisplay_digit(uchar digit){P0=seg_code[digit];// 发送数字对应的段码dula=1;// 打开段选delay(5);// 稳定信号dula=0;// 关闭段选}// 主函数voidmain(){uchar digit;while(1){// 1.位选控制wela=1;// 打开位选P0=0xc0;// 位选6个数码管 1100 0000wela=0;// 关闭位选// 2.段选控制for(digit=0;digit<10;digit++)// 轮流显示0到9{display_digit(digit);// 显示当前数字delay(500);// 适当延时,以便观察每个数字// 补充代码}}}

4.效果图:中间两位0到9轮流显示

4.代码

#include<reg52.h>// 头文件#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dula=P3^4;// 锁存器U2(段选)sbit wela=P1^6;// 锁存器U3(位选)// 共阴极数码管段码表uchar code seg_code[]={0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 延时函数voiddelay(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}// 数码管展示函数voiddisplay_digit(uchar digit){P0=seg_code[digit];// 发送数字对应的段码dula=1;// 打开段选delay(5);// 稳定信号dula=0;// 关闭段选}// 主函数voidmain(){uchar digit;while(1){// 1.位选控制wela=1;// 打开位选P0=0xf3;// 位选中间2个数码管 1111 0011wela=0;// 关闭位选// 2.段选控制for(digit=0;digit<10;digit++)// 轮流显示0到9{display_digit(digit);// 显示当前数字delay(500);// 适当延时,以便观察每个数字// 补充代码}}}

5.效果图(显示1,2,3,4,5,6)

5.代码

#include<reg52.h>// 头文件 ```c#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dula=P3^4;// 段选锁存器U2sbit wela=P1^6;// 位选锁存器U3// 数码管的段码表(定义0-9的段码)uchar code TableDula[]={//0x3F, // 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 数码管显示位码,对应第1到第6个数码管(需要将2进制转换成16进制)uchar code TableWela[]={0xFE,// 1111 1110 -> 第1位数码管(P0.0 低电平)0xFD,// 1111 1101 -> 第2位数码管(P0.1 低电平)0xFB,// 1111 1011 -> 第3位数码管(P0.2 低电平)0xF7,// 1111 0111 -> 第4位数码管(P0.3 低电平)0xEF,// 1110 1111 -> 第5位数码管(P0.4 低电平)0xDF// 1101 1111 -> 第6位数码管(P0.5 低电平)// 补充代码// 1111 1110 -> 第1位(P0.0 置低,其它为高)=> 选中第1位数码管// 1111 1101 -> 第2位(P0.1 置低)=> 选中第2位数码管// 1111 1011 -> 第3位(P0.2 置低)=> 选中第3位数码管// 1111 0111 -> 第4位(P0.3 置低)=> 选中第4位数码管// 1110 1111 -> 第5位(P0.4 置低)=> 选中第5位数码管// 1101 1111 -> 第6位(P0.5 置低)=> 选中第6位数码管};// 延时函数voiddelay(uchar x){uchar j;while(x--){for(j=0;j<125;j++);}}// 主函数voidmain(){uchar i;while(1){for(i=0;i<6;i++){P0=0x00;// 清空之前的输出dula=0;wela=0;P0=TableWela[i];// 先送位码,依次选中1-6位数码管wela=1;// 锁存位码wela=0;P0=TableDula[i];// 再送段码,第1个数码管显示0,第2个数码管显示1...dula=1;// 锁存段码dula=0;delay(2);// 保持一段时间}}}

6.效果图(显示1,3.,1,4.,1,5)

6.代码

#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbit dula=P3^4;// 段选锁存器sbit wela=P1^6;// 位选锁存器// 数码管的段码表(0~9)uchar code TableDula[]={0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 数码管段码表(0~9,带小数点)uchar code TableDulaPoint[]={0xBF,// 0.0x86,// 1.0xDB,// 2.0xCF,// 3.0xE6,// 4.0xED,// 5.0xFD,// 6.0x87,// 7.0xFF,// 8.0xEF// 9.};// 数码管显示位码,对应第1到第6个数码管uchar code TableWela[]={0xfe,// 1111 1110 -> 第1位(P0.0 置低,其它为高)=> 选中第1位数码管0xfd,// 1111 1101 -> 第2位(P0.1 置低)=> 选中第2位数码管0xfb,// 1111 1011 -> 第3位(P0.2 置低)=> 选中第3位数码管0xf7,// 1111 0111 -> 第4位(P0.3 置低)=> 选中第4位数码管0xef,// 1110 1111 -> 第5位(P0.4 置低)=> 选中第5位数码管0xdf// 1101 1111 -> 第6位(P0.5 置低)=> 选中第6位数码管};// 延时函数voiddelay(uchar x){uchar j;while(x--){for(j=0;j<125;j++);}}voidmain(){uchar i;// 显示数据:对应的数字内容uchar displayData[6]={1,3,1,4,1,5};// 小数点标志位:1表示该位需要小数点uchar pointFlag[6]={0,1,0,1,0,0};// 第2位和第4位显示带小数点while(1){for(i=0;i<6;i++){P0=0x00;// 清除显示dula=0;wela=0;// 位选P0=TableWela[i];wela=1;wela=0;// 段码:判断是否需要小数点if(pointFlag[i]==1){P0=TableDulaPoint[displayData[i]];}else{P0=TableDula[displayData[i]];}dula=1;dula=0;delay(2);// 稍作延时}}}
http://www.jsqmd.com/news/616062/

相关文章:

  • OpenClaw+SecGPT-14B实战:Git仓库敏感信息自动化审计
  • 慧谷新材深交所上市:市值73亿 年营收9.85亿,净利2亿
  • 学习嵌入式:单片机、MCU、RTOS、Linux 到底该学啥?
  • 2026年纯正弦波逆变器权威厂家盘点:储能电源/光伏控制器/太阳能控制器/磷酸铁锂电池/逆变器/锂电池/储能电池/选择指南 - 优质品牌商家
  • 财税行业AI落地:记账、报税、风控的自动化解决方案
  • 【单片机0.2】
  • AI搜索时代,跨境电商获客的核心逻辑变了
  • 账号没有明显违规却突然受限很多时候问题藏在哪些地方
  • 想学ARM/Linux,必须要先学会单片机吗?
  • 大金重工冲刺港股:年营收62亿,利润11亿 金鑫控制40%股权
  • Java 的4 种核心内部类
  • Keep平台API开发实战指南:从设计理念到生产落地
  • 2026届最火的六大AI学术平台实测分析
  • 2026年微软Dynamics365BC选购指南:微软Dynamics365BusinessCentral、微软微软Dynamics 365 BC代理商推荐选择指南 - 优质品牌商家
  • 跨境电商AI搜索优化,最容易踩的4个坑
  • 个人知识库助手:OpenClaw+Qwen3-14B构建智能检索系统
  • 九岭锂业IPO被终止:年营收43.8亿 曾拟募资34亿
  • 全球首发 | 「AI智能库」正式官宣,智库智能重新定义仓库!
  • OpenClaw备份方案:Phi-3-mini-128k-instruct智能归类云端与本地存储
  • LM-Studio-0.4.10 安装完,不显示显卡信息
  • OpenClaw+千问3.5-9B:自媒体内容生成流水线
  • 2026年比较好的山西废气治理/有机废气治理推荐品牌厂家 - 行业平台推荐
  • 刚刚,Claude Mythos敲响末日警钟!超级智能已在悬崖,Hassabis深感恐惧
  • EEPROM_Rotate:ESP8266 Flash 耐久性与断电安全增强方案
  • 阿姆智创15.6寸工业工控触摸一体机,赋能机器视觉与SMT产线场景,源头工厂ODM定制方案
  • 3个核心优势:d2s-editor存档编辑工具完全指南
  • DigitLed72xx库:工业级MAX7219/7221数码管驱动方案
  • 2026年Q2对刀仪哪里有卖:全自动对刀仪、刀具预调仪、智能对刀仪、测刀仪、刀具检测仪、对刀仪选择指南 - 优质品牌商家
  • UE5 材质 制作滑块功能
  • Spring with AI (): 搜索扩展——向量数据库与RAG(下)谋