编码显示器和六位7段数码管

本文介绍了如何使用8255并行拓展芯片来驱动编码显示器和实现六位7段LED显示器的动态显示。在编码显示器部分,当按键被按下时,8255的PC口输入二进制编码并转换为十进制在2位7段LED上显示。在6位7段LED显示器部分,利用8255的PA口和PB口动态显示000000到999999的十进制数据。设计思路涉及对8255芯片的工作方式配置以及使用XBYTE关键字操作外部存储。
摘要由CSDN通过智能技术生成

因为两个都用到了8255并行拓展芯片放一起搞定!

编码显示器

一、  任务

利用8255扩展并行端口(硬件电路参见CodeDisplay_8255.DSN)。当KEY按下时,利用8255的PC口输入二进制值编码(6位),将该值转换成十进制后显示在2位7段LED显示器上。

六位7段LED显示器动态显示

一、  任务

利用8255的PA口和PB口实现6位7段LED显示器动态显示(硬件电路参见6XLED_8255.DSN)。要求能够在显示器上显示任意000000~999999的十进制数据。


设计思路:

8255芯片:这个鬼芯片就是这两个实验的核心,也不难。程序通过单片机像控制外部存储器一样调戏这块芯片。ok一起调戏。


先看图中1,这个很明显了设置每个口口的功能通过这8位BIT,要啥功能就在第几位置个数,然后翻译成16进制数就可以了。控制字永远等于1就好了。工作方式永远0。<

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当单片机为AT89C52,4位七段数码管作为显示器时,我们需要将数码管的8个共阴极引脚(a~h)连接到单片机的8个I/O口(P0.0~P0.7)。同时,我们需要将数码管的4个阳极引脚(com1~com4)连接到单片机的4个I/O口(P2.0~P2.3)。下面是4位七段数码管的IO口设计: ``` sbit LED_A = P0^0; sbit LED_B = P0^1; sbit LED_C = P0^2; sbit LED_D = P0^3; sbit LED_E = P0^4; sbit LED_F = P0^5; sbit LED_G = P0^6; sbit LED_DP = P0^7; sbit LED_COM1 = P2^0; sbit LED_COM2 = P2^1; sbit LED_COM3 = P2^2; sbit LED_COM4 = P2^3; ``` 在使用4位七段数码管时,我们需要进行动态扫描。具体来说,我们需要将4个阳极引脚(com1~com4)依次连接到VCC,并将其余3个点亮的引脚(a、b、c、d、e、f、g、dp)与当前需要显示的数字进行匹配,以便显示正确的数字。下面是4位七段数码管动态扫描的示例代码: ``` void display(int num) { int i; int code[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; // 0~9的编码 for(i = 0; i < 4; i++) // 依次扫描4位数码管 { switch(i) // 选择当前需要显示的数码管 { case 0: LED_COM1 = 0; LED_COM2 = 1; LED_COM3 = 1; LED_COM4 = 1; break; case 1: LED_COM1 = 1; LED_COM2 = 0; LED_COM3 = 1; LED_COM4 = 1; break; case 2: LED_COM1 = 1; LED_COM2 = 1; LED_COM3 = 0; LED_COM4 = 1; break; case 3: LED_COM1 = 1; LED_COM2 = 1; LED_COM3 = 1; LED_COM4 = 0; break; } P0 = code[num % 10]; // 显示当前位的数字 num /= 10; // 取下一位数字 delay(1); // 延时一段时间,以便观察效果 P0 = 0x00; // 关闭所有数码管 } } ``` 在本示例代码中,我们使用了一个包含0~9的编码表,根据当前需要显示的数字选择对应的编码并显示。同时,我们通过依次扫描4位数码管的方式,实现了动态显示的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值