51单片机控制流水灯和数码管

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 灯光在微电脑控制之下完成由亮到暗的逐 渐变化,感觉像是在呼吸。 • 实现灯不同亮度的两种方法: 1 调节灯的保护电阻, 2 使用PWM。
数码管的操作
• 数码管的介绍 • 数码管的操作
g f GND a b a a f e d g b c dp b c d e f g dp a b c d e f g dp
任务
• 第一次一个管亮流动一次,第二次两个管 亮流动,依次到8个管亮,然后重复整个过 程。 • 先奇数亮再偶数亮,循环三次;一个灯上 下循环三次;两个分别从两边往中间流动 三次;再从中间往两边流动三次;8个全部 闪烁3次;关闭发光管,程序停止。 • 用8个发光管演示出8位二进制数累加过程。
呼吸灯的操作
较复杂,成本较高。
动态显示
动态显示的特点是将所有位数码管的段选线并 联在一起,由位选线控制是哪一位数码管有效。选 亮数码管采用动态扫描显示。所谓动态扫描显示即 轮流向各位数码管送出字形码和相应的位选,利用 发光管的余辉和人眼视觉暂留作用,使人的感觉好 像各位数码管同时都在显示。动态显示的亮度比静 态显示要差一些,所以在选择限流电阻时应略小于 静态显示电路中的。
C51库函数 instrins.h
• 循环左移 unsigned char _crol_(unsigned char c,unsigned char b);
C语言中的<<和>>
• 每执行一次<<操作,被操作数高位数丢失, 低位补零;
C语言中的<<和>>
• 每执行一次<<操作,被操作数低位数丢失, 高位补零;
流水灯的操作
2013.0பைடு நூலகம்.22
• 点亮第一个灯; • 让第一个灯闪烁; • 从第一个灯依次点亮至最后一个灯;
实现流水灯左移和右移的方法
1 用C51自身的库函数实现; 2 用C语言中的<<和>>实现;
C51库函数 instrins.h
• 循环左移 unsigned char _crol_(unsigned char c,unsigned char b);
+5V
·
e d GND c dp
(a)
(b)
LED数码显示方式及电路
静态显示方式
LED显示器工作方式有两种:静态显示方式和动态显示 方式。静态显示的特点是每个数码管的段选必须接一个8位 数据线来保持显示的字形码。当送入一次字形码后,显示字 形可一直保持,直到送入新字形码为止。这种方法的优点是
占用CPU时间少,显示便于监测和控制。缺点是硬件电路比
相关文档
最新文档