实验三 6LED静态串行显示
一、实验目的
1、掌握数字、字符转换成由数码管显示的八段码的软件译码方法及译码过程;
2、静态显示的原理和相关程序的编写。

二、实验电路
静态显示 电路如图3-2所示。显示器由6个LED数码管组成。输入只有三个信号,它们是串行数据输入SER和移位脉冲信号SRCLK,锁存信号RCLK。6个串行输入/并行输出锁存移位寄存器芯片74HC595首尾相连。每片的并行输出作为LED数码管的段码。
74HC595的引脚如图3-1

74HC595为8位串入并出移位寄存器。
QA--QH: 八位并行输出端,可以直接驱动数码管的8个段。
: 级联输出端。接下一个74HC595的SER端。
SER: 串行数据输入端。,SRCLK为移位时钟脉冲,上升沿移入一位;RCLK为锁存时钟脉冲,上升沿锁存。
(10脚): 低电平时将移位寄存器的数据清零。通常将它接Vcc。
:输出使能端,一般接地。

图3-1 74HC595介绍

三、实验内容及步骤
内容:
单片机的P2.0作数据串行输出接口,P2.1作移位脉冲输出,P2.2作数据锁存输出。程序功能使静态显示单元的数码管显示123456.
步骤:
1、 根据硬件连接电路,编写程序并编译生成*.hex文件;
2、打开实验箱电源;
3、参照STC12C5A60S2下载说明中STC_ISP软件使用说明,给单片机下载程序;
4、用信号线分别将单片机最小系统单元的P2.0、P2.1、P2.2与静态显示单元的SER、SRCLK、RCLK对应相连;
5、打开静态显示单元开关;
6、观察数码管显示情况,静态数码管显示123456。若显示结果不正确,请修改该程序,重复以上操作。

 #include <reg51.h>
#include <intrins.h> unsigned char buf1 [] = { ,,,,, };
unsigned char buf2 [];
unsigned char code table[] = { 0x3F , 0x06 , 0x5B , 0x4F , 0x66 ,
0x6D , 0x7D , 0x07 , 0x7F , 0x6F };
sbit ser = P2 ^ ;
sbit srclk = P2 ^ ;
sbit rclk = P2 ^ ;
void main () {
unsigned char i , j , temp1 ,temp2 ;
while () {
srclk = ;
rclk = ;
for ( i = ; i < ; i++ ){
buf2[i] = table[ buf1[i] ];
temp1 = buf2[i];
for ( j = ; j < ; j++ ){
srclk = ;
temp2 = ( temp1 & 0x80 );
if ( temp2 ){
ser = ;
}else {
ser = ;
}
srclk = ;
_nop_();
temp1 <<= ;
rclk = ;
}
}
rclk = ;
} }

【单片机实验】6LED静态串行显示的更多相关文章

  1. 串行CPU设计

    一.概述 串行CPU工作流程 串行CPU的时序流程如下图所示:取指.译码.执行.回写. 其中,取指.回写是与存储器打交道:而译码与执行则是CPU内部自个儿的操作. 我们究竟想要CPU干什么?     ...

  2. 自制单片机之十五……可串行驱动LCD12864的应用

    在网上搜了一下,ST7920控制器的LCD产品可以提供8位,4位并行和串行接口可选,并行的控制接口的LCD较多,前面的贴子也介绍过,我们在这儿不说了,这儿我们讲的是串口控制LCD12864. 买了块S ...

  3. 自制单片机之六……串行I2C总线E2PROM AT24CXXX的应用

    这一篇介绍I2C存储器的使用.主要是介绍AT24CXX系列器件,它分为两类,主要是通过被存储容量地址来分的,一类是AT24C02-AT24C16,它的存储容量从256字节到2048字节.另一类是AT2 ...

  4. 十天学会单片机Day4串行口通信

    并行与串行基本通信方式 1.并行通信方式 通常是将数据字节的各位用多条数据线同时进行传送. 并行通信控制简单.传输速度快:由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难. 2.串行通 ...

  5. PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

      前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象 ...

  6. STM32L476应用开发之三:串行通讯实验

    在我们的项目需求中,有两个串口应用需求,一个是与炭氢传感器的通讯,另一个是与显示屏的通讯.鉴于此,我们需要实验串行通讯. 1.硬件设计 串行通讯一个采用RS232接口,另一个直接采用TTL方式.我们在 ...

  7. GCD中的dispatch_sync、dispatch_sync 分别与串行、并行队列组合执行小实验

    平常开发中会经常用gcd做一下多线程任务,但一直没有对同步.异步任务在串行.并行队列的执行情况做个全面的认识,今天写了个demo跑了下,还是有些新发现的. 代码如下: - (void)touchesB ...

  8. html中,纯数字或纯英文的一串字符超出父容器不会折行显示,如何解决?

    这种情况在软件使用过程中一般不会出现,只有测试人员在测试的时候手比较贱会给你弄一个这种数据,当然这也算是bug吧. 如图:“经营范围”的值严重超出父容器长度,并且没有像“服务信息”一样折行显示.这种情 ...

  9. 路由器基本配置实验,静态路由和动态RIP路由

    实验涉及命令以及知识补充 连线 PC和交换机FastEtherNet接口 交换机和路由器FastEtherNet接口 路由器和路由器Serial接口 serial是串行口,一般用于连接设备,不能连接电 ...

随机推荐

  1. MessageFomat学习

    MessageFomat 提供了一种以与语言无关的方式生成连接消息的方法. 用它来构造消息,显示给最终用户. 1.MessageFormat的格式 MessageFormatPattern:Forma ...

  2. E20180518-hm

    priority  n. 优先,优先权; (时间,序上的) 先,前; 优先考虑的事; [数] 优先次序;

  3. HDU1829【种类并查集】

    题意: 检验给出条件是否有同性恋. 思路: 条件并查集. 还是一个类似的前缀和,sum[x]是x到根这段路径上的和,根一定是坐标越小的, 那么如果说对于同类(同一个集合)的判断就sum[a]是否等于s ...

  4. hdu3257【模拟】

    题意: 从案例找: 思路: 就是16进制,然后到2进制= =.就是个模拟= =.注意格式: #include <bits/stdc++.h> using namespace std; ty ...

  5. 求无向图的割点和桥模板(tarjan)

    一.基本概念 1.桥:若无向连通图的边割集中只有一条边,则称这条边为割边或者桥 (离散书上给出的定义.. 通俗的来说就是无向连通图中的某条边,删除后得到的新图联通分支至少为2(即不连通: 2.割点:若 ...

  6. uoj#282. 长度测量鸡(构造)

    传送门 打表题--只有\(n\leq 3\)有解否则无解→_→ 或者严格证明的话是这样,因为算上端点一共\(n+1\)个点,共\(\frac{n(n+1)}{2}\)个点对,所以点对之间两两距离不相等 ...

  7. Python 学习 Part1

    1. 斐波那契数序列 >>> a,b=0,1 >>> a 0 >>> b 1 >>> while b<10: print( ...

  8. assembly x86(nasm)画三角形等图形的实现

    参考了一位大佬的博客 https://blog.csdn.net/qq_40298054/article/details/84496944传送门 https://blog.csdn.net/qq_40 ...

  9. 01 | VIM基础攻略

    启动 vim 后,vim 处于 normal 模式. Step One: "i" -> insert 模式, ESC -> normal 模式: "x&quo ...

  10. git 创建分支并关联远程分支

    从master分支,重新拉取出一个新的分支,名字为dev,具体命令如下: 1. 切换到被copy的分支(master),从服务器拉取最新版本 $git checkout master $git pul ...