在四位共阴极数码上显示“2 3 5 8”四个数字
前言:学机械的,软硬兼修必需!从基础再学起。
1. 基础
(1)数码管(7SEG-MPX4-CC-BLUE)
数码管是一种半导体发光器件,其基本单元是发光二极管。下见数码管结构图。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮;反之为高电平时不亮。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
数码管按段数分为七段数码管和八段数码管(多一个小数点显示);按能显示多少个“8”,可分为1位、2位、3位、4位等数码管。
驱动方式分静态式和动态式两类。静态驱动编程简单,显示高度高,但占用I/O端口多,增加硬件电路的复杂性;动态驱动通过分时轮流控制各个数码管的选通控制打开,就使各个数码管轮流受控显示。只要扫描的速度足够快,二极管的余辉效应给人印象就是一组稳定的显示数据,不会有闪烁感,能够节省大量的I/O端口,而且功耗更低。
2. 仿真电路设计
(1)元件:
单片机(AT89C51)、4位共阴极数码管(7SEG-MPX4-CC-BLUE)。
(2)内容:
对于数码管,P1段控,P2位控。
(3)电路连线:
3. 程序设计
(1)内容:
共阴极数码管,低电平位有效;数码管位控以逐位显示,段控以输出当位内容;数码管发光,各位显示延时,产生常亮错觉。
(2)代码:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned charvoid Delay(uint);
voidLedScan(void);// common cathode(共阴极)
// Led code, "0~9, A~F"
ucharLedOfNum[] =
{0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
};/******************** Main function ********************/
void main(void)
{P2 = 0xFF;while (1){LedScan();}
}/******************** Led scan ********************/
// P1控制段码显示
// P2位控(共阴极)
voidLedScan(void)
{uchar k;for (k=0; k<150; k++){P1 = LedOfNum[2];P2 = 0x0E; // 0000 1110BDelay(1000); P1 = 0x00; // 0000 0000BP1 = LedOfNum[3];P2 = 0x0D; // 0000 1101BDelay(1000);P1 = 0x00; // 0000 0000BP1 = LedOfNum[5];P2 = 0x0B; // 0000 1011BDelay(1000);P1 = 0x00; // 0000 0000BP1 = LedOfNum[8];P2 = 0x07; // 0000 0111BDelay(1000);P1 = 0x00; // 0000 0000B}
}/******************** Delay function ********************/
void Delay(uint x)
{uchar k;while (x--)for(k=0;k<125; k++) ;
}
4. 仿真操作
(1)装入HEX文件,运行。
(2)运行结果:
a. 常显
b. 分解(改延时delay1000)
5. 实物确认
一开始有两根线接错,后来再一步步检查线路找出来。延时时间略短,亮度有点不足,或限流电阻太大了。
在四位共阴极数码上显示“2 3 5 8”四个数字相关推荐
- 四位共阴极数码管显示“12.34”的主程序
四位共阴极数码管显示"12.34"的主程序 本程序使用共阴极数码管,使用了TM1650驱动芯片,在stm32F103调试成功 #include "gpio.h" ...
- 四位共阳极数码管显示函数_【项目8-任务10-小组13】利用四位数码管实现动态扫描显示...
学习任务 1.四位数码管的电路结构与显示原理 (什么是位选.什么是段选.共阴与共阳的区别.显示4位数字,需要多少条口线?显示n位数字呢?) 2.Arduino直接连接四位数码管实现四位阿拉伯数字显示 ...
- 四位共阳极数码管显示函数_数码管模块.doc
数码管模块 数码管 1.概 述 数码管模块采用四位共阳极数码管,用于显示数字和少数特殊字符.可以在机器人项目中使用该模块,用于显示速度.时间.分数.温度.距离等传感器的值.同时,Makeblock提供 ...
- 利用四位共阳数码管显示小数
目录 前言 实现过程 思路 具体方法 其他代码 效果 利用数码管显示舵机的实际转速 总结 前言 前段时间利用TMS320F2335实现了对四位共阳数码管的控制(链接在这),不过当时只实现了利用数码管显 ...
- 入门必做的51单片机实验2----》利用外部中断的方法来控制发光二极管和共阴极数码管显示十六进制的0到F
嘿!各位中午好! 我是肖肖的猪会飞 欢迎收看肖小猪频道 刚刚做了个单片机实验->ヽ( ̄ω ̄( ̄ω ̄")ゝ 分享一下 文章目录 前言 一,实验题目 二,程序 三,仿真效果 前言 此实验为 ...
- 八位一体共阴极数码管显示电子时钟+闹铃+温度检测
老师一枚,服务于学生,制作了电子时钟融合温度检测的系统. 首先在焊接式前一定要仿真,更要注意仿真引脚和实际引脚的不同. 下面这个链接是常用元器件实物引脚图和解释. CSDNhttps://mp.csd ...
- 四位共阳极数码管显示函数_Verilog笔记
github传送门(练习写的代码,约束文件,仿真文件) 文章目录 Vivado 基本流程 关于封装IP核和使用Block Design Verilog module / 模块 always块 组合逻辑 ...
- 四位共阳极数码管显示函数_新手求助四位共阳数码管显示函数
#include #include "DS1302.H" sbit K_S = P1^0; //显示模式sbit K_M = P1^1; //修改sbit K_I = ...
- c语言编计分秒时的程序,用c语言编写程序,用于c51单片机四位共阴数码管显示,显示分秒的计时器。...
匿名用户 1级 2014-05-07 回答 /*************************************************************************** 标 ...
- 四位共阳极数码管显示函数_74LS164驱动4位共阳数码管代码
#include "reg52.h" #define u16 unsigned int #define u8 unsigned char sbit CLK=P2^0; sbit D ...
最新文章
- ftp部署一个可供centos6、centos7系统使用的yum网络仓库
- SQLPLUS SPOOL命令使用详解
- golang sync.Mutex 互斥锁 使用实例
- libreadline.so.6: undefined symbol
- UILabel 调整行间距
- 【任务脚本】0523更新京东618叠蛋糕任务脚本全自动脚本,大神更新了京东任务全自动程序...
- 点集的视点特征直方图的评估
- 阿拉伯数字转化为中文汉字(大、小写) - PHP
- Android开发入门二之AndroidManfest.xml文件详细说明 .
- 如何调整转场时间和移动转场效果
- 《湮灭》脑洞:行星级癌变与人的自我救赎
- pythonjam怎么使用_jam怎么用啊多多举例子啊各种词意的用法
- QCC3007--打印库文件 log
- Idea不识别Java项目
- 使用echarts制作拓扑图
- python定义一个函数实现整数的幂运算_Leetcode练习(Python):第326题:3的幂:给定一个整数,写一个函数来判断它是否是 3 的幂次方。...
- Android快速开发推荐10个框架Android 快速开发框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、
- JVM各内存区域存放内容
- Premiere Pro之字幕添加(三)
- Java Class类文件的结构