单片机IO口扩展设计(3)
时间:2026-01-18
时间:2026-01-18
单片机IO口扩展设计
图2.8X8点阵LED结构图
从图2中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现。
2.5.流水灯设计的总电路图
流水灯设计的总电路图在最小系统的基础上加上了由9014三极管驱动的蜂鸣器、外部中断的两个开关(实现外部中断控制)、P0和P2口的跳线(实现外扩展)、还有用三极管驱动的8*8位LED显示元件XY1588ASR(24脚共阳管)。
单片机IO口扩展设计
图4. 总电路图
2.7.仿真运行效果图
最终调试仿真运行结果如下图:
图6.效果图
3.单片机I/O口扩展程序的主程序
#include <atmel\regx52.h>
#define int8 unsigned char
#define int16 unsigned int
#define int32 unsigned long
int8 code num_tab[][8]={
/*--8*8--阴码--逐行扫描--逆向(低位在前)--*/
{0x00,0x00,0x00,0x38,0x44,0x38,0x00,0x00},/*"0",0*/
{0x00,0x00,0x40,0x78,0x48,0x00,0x00,0x00},/*"1",1*/
{0x00,0x00,0x00,0x4C,0x54,0x6C,0x00,0x00},/*"2",2*/
{0x00,0x00,0x00,0x74,0x4C,0x6C,0x00,0x00},/*"3",3*/
{0x00,0x00,0x00,0x7C,0x28,0x10,0x00,0x00},/*"4",4*/
{0x00,0x00,0x00,0x74,0x54,0x7C,0x00,0x00},/*"5",5*/
{0x00,0x00,0x70,0x54,0x54,0x38,0x00,0x00},/*"6",6*/
{0x00,0x00,0x04,0x7C,0x04,0x00,0x00,0x00},/*"7",7*/
{0x00,0x00,0x00,0x6C,0x54,0x6C,0x00,0x00},/*"8",8*/
{0x00,0x00,0x00,0x3C,0x54,0x1C,0x00,0x00},/*"9",9*/
{0x00,0x00,0x00,0x38,0x44,0x38,0x00,0x00},/*"0",10*/
{0x00,0x00,0x40,0x78,0x58,0x68,0x00,0x00},/*"a",11*/
上一篇:管理基础知识 第一章
下一篇:初中语文教师一学期教学工作总结