C51蜂鸣器和数码管动静态显示
蜂鸣器代码
#include<reg52.h>
#include<intrins.h>#define uint unsigned int
#define uchar unsigned charsbit beep=P2^3;
uchar temp;
void delay(void) //误差 -0.000000000023us
{unsigned char a,b;for(b=221;b>0;b--)for(a=207;a>0;a--);
}
void main()
{temp=0xf0;P1=temp;while(1){temp=_crol_(temp,1);P1=temp;beep=~beep;//~是按位取反,蜂鸣器给0响,给1不响delay();}}
数码管:
数码管由a到dp分别接的是P0.0到P0.7
a是低位dp是高位, 若想输出一则b、c输出高电压,由高位到低位排序二进制是00000110,然后将二进制转换为16进制是0x06。原理就是这样的,下面是数字显示对应16进制的数:
位选和段选:
a~dp是段选,公共脚是位选
静态显示:
#include<reg52.h>
#include<intrins.h>#define uint unsigned int
#define uchar unsigned charsbit beep=P2^3;
sbit DUAN =P2^6;//数码管段选
sbit WEI=P2^7; //数码管位选
uchar temp;
void main()
{WEI=1;//打开位选锁存器P0 = 0xfe;//1111 1110 给第一个数码管接地,让它工作WEI =0;//关闭位选锁存器,进行段选(显示数字)DUAN=1;//打开段选锁存器P0 = 0x06;DUAN =0;//锁存段选锁存器
}
动态显示:
#include<reg52.h>
#include<intrins.h>#define uint unsigned int
#define uchar unsigned charsbit beep=P2^3;
sbit DUAN =P2^6;//数码管段选
sbit WEI=P2^7; //数码管位选
uchar temp;
//共阴极数码管段选表0——9,code表示数组中的数据在程序执行过程中不能被修改
//加code存放的是ROM区不加code存放的是RAM区
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(void) //误差 -0.000000000001us
{unsigned char a,b;for(b=15;b>0;b--)for(a=152;a>0;a--);
} void display(uint i)
{ uint bai,shi,ge;bai=i/100;shi=i%100/10;ge=i%10;P0=0xff;//清除断码WEI=1;//打开位选锁存器P0 = 0xfe;//1111 1110 给第一个数码管接地,让它工作WEI =0;//关闭位选锁存器,进行段选(显示数字)DUAN=1;//打开段选锁存器P0 =table[bai];DUAN =0;//锁存段选锁存器delay();P0=0xff;//清除断码WEI=1;P0 = 0xfd;WEI =0;DUAN=1;P0 = table[shi];DUAN =0;delay();P0=0xff;//清除断码WEI=1;P0 = 0xfb;WEI =0;DUAN=1;P0 = table[ge];DUAN =0; delay(); }void main()
{while(1){display(999);}
}
C51蜂鸣器和数码管动静态显示相关推荐
- 【51单片机】数码管的静态显示
数码管的静态显示 锁存引脚高电平表示直通状态,为低电平表示锁存状态 段锁存定位显示数字,位锁存定位用哪段数码管 12M的晶振接两个30pf的电容,6M的晶振接20pf的电容 三态:高电平,低电平,高阻 ...
- 51单片机入门—共阳数码管的静态显示
共阳数码管的静态显示 共阳数码管的原理图 共阳数码管的原理图 数码管的类型 CT107D单片机综合实训平台上使用的数码管是F3461BH,倒数第2个字母是"B",说明这个数码管是共 ...
- 蓝桥杯单片机学习日记1-LED 蜂鸣器 继电器 数码管的简单驱动
此片文章用于记录蓝桥杯单片机的学习. LED 蜂鸣器 继电器 数码管 这些都是比赛时常用的外设,如下原理图: LED部分: 蜂鸣器和继电器部分(图中还有步进电机部分): 数码管部分: 可见,上述 ...
- 任务11:“数码管”的静态显示和动态显示
本系列教程以AVR单片机为对象,介绍单片机的快速开发方法. 参考教材:<单片机技术及应用项目教程> 栾秋平 电子工业出版社 2019.6 第1版 本文介绍"数码管"的静 ...
- 【蓝桥杯-单片机学习笔记(三)】共阳数码管的静态显示
一.要求 在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复. 二.数码管 1.七段数码管 七段数码管,其实内部由8个发光二极管构 ...
- 51单片机怎么显示当前时间_(进阶篇)51单片机之按键控制蜂鸣器、数码管、按键值移位显示...
一.实操演示- 按键控制蜂鸣器 1.图文详细 独立按键硬件电路 蜂鸣器硬件电路 2.连接方式: J20的第3号引脚连接到J7引脚,即P15连接J7. J29的第7.8号引脚连接到JP1的第1.2号引脚 ...
- 5动态显示图片_单片机入门 数码管的静态显示和动态显示 壁纸
首先是静态显示,代码如下 #include "reg52.h"sbit dula=P2^6; sbit wela=P2^7;main() {wela=1;//打开位选,控制哪个数码 ...
- 蓝桥杯学习03-共阳数码管的静态显示
要点:数码管的显示原理与对应段码:数码管显示的相关思维 1.原理图接口对应: [注] Y6C控制公共端com,Y7C控制段码显示: com端:公共端控制数码管数字的显示: 2.共阳数码管F3461BH ...
- 学习笔记——共阳数码管的静态显示
目录 一.任务简述 二.实现方法 三.参考代码 一.任务简述 在CT107D单片机上实现8个数码管分别单独依次显示0-9,然后所有数码管同时显示0-9,以此循环. 二.实现方法 实现方法很简单,先弄清 ...
最新文章
- MQTT:物联网的神经系统
- IDEA出现import org.junit.Test飘红解决方案
- excel如何把顺序倒过来_Excel 中的计算运算符和优先顺序级别
- 【解题报告+感想感言】2019年第十届蓝桥杯【C++省赛B组】【第五题:迷宫】
- oracle32位客户端安装教程,Win7系统32位Oracle11g客户端安装详述
- Vs2010架构设计-层图(Layer Diagram)
- python中监控错误的语句_Python学习_07_错误、异常
- Java程序员已经饱和了,还有必要培训Java编程嘛
- 使用webpack搭建vue项目;webpack+vue
- window电脑垃圾清理脚本
- kingbase之时间日期加减
- tomcat服务器连接数问题解决
- 第二章 一阶逻辑 2.2 一阶逻辑合式公式及解释
- 哔哩哔哩2020年Q4及全年财报:全年营收120亿元,同比增长77%
- 微信小程序支付开发具体步骤
- Java项目:SSM药品进货销售仓储信息管理系统
- java实现16支球队分成4组
- 浏览器中利用js打包下载所有类型文件
- 神鱼:未来PoS是更好的选择,Staking和Defi可能会形成博弈
- 解决C3P0在Linux下Failed to get local InetAddress for VMID问题
热门文章
- 【Python函数】——sort,sorted
- python字典格式_python – 格式self,这是一个字典
- python怎样分析文献综述怎么写_怎么写文献综述?
- RE validation in Java EE
- bzoj 3157 bzoj 3516 国王奇遇记 —— 推式子
- php-fpm配置笔记
- C# Redis实战(二)
- UltraGrid中实现下拉Grid(UltraDropDown)
- mysql几个timeout参数_MySQL中 timeout相关参数解析
- 涂鸦WIFI模组方案(模组 SDK)