#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Table_OF_Digits[]=
{
0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00,
0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00,
0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,
0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,
0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,
0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00,
0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00,
0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00,
0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,
0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00,
};
uchar i=0,t=0,Num_Index = 0;
void main()
{
P3 = 0x80;
Num_Index = 0;
TMOD = 0x00;
TH0 = (8192-2000)/32;
TL0 = (8192-2000)%32;
TR0 = 1;
IE = 0x82;
while(1);
}
void LED_Screen_Display() interrupt 1
{
TH0 = (8192-2000)/32;
TL0 = (8192-2000)%32;
P3 = _crol_(P3,1);
P0 = ~Table_OF_Digits[Num_Index * 8 +i];
if(++i == 8) i = 0;
if(++t == 250)
{
t = 0x00;
if(++Num_Index == 10) Num_Index = 0;
}
}
8×8LED点阵屏显示数字51单片机PROTEUS仿真-36.rar
需积分: 0 201 浏览量
更新于2024-03-07
1
收藏 29KB RAR 举报
在本示例中,我们探讨的是如何使用51单片机通过PROTEUS软件进行8×8LED点阵屏的仿真,重点展示如何显示数字0到9。这个项目旨在教授初学者51单片机的基本操作,以及如何利用外部硬件接口进行数据驱动。
51单片机是经典的微控制器系列,广泛应用于各种嵌入式系统设计中。在这个项目中,它扮演着控制8×8LED点阵屏的角色,点阵屏通常用于显示简单的字符、图形或信息。74LS245是一种双向总线缓冲器,常用于扩展单片机的I/O能力,这里它作为点阵屏的行驱动器,使得单片机能同时驱动所有行LED。
点阵屏的显示原理是:8行LED与74LS245的输出端连接,而列由51单片机的P3端口控制。P3端口是51单片机的多功能I/O口,可以作为输入或输出使用。通过编程控制P3端口的电平,我们可以实现对列信号的选通,进而决定点亮哪个LED。
程序运行时,T0定时器中断被用来实现显示的刷新。定时器T0是51单片机内部的一个可编程定时/计数器,可以设置为工作在方式0、1、2或3。在这个例子中,它可能被配置为方式1,以提供一个固定的周期中断。每当定时器溢出时,会产生一个中断请求,单片机会执行中断服务子程序,改变列选通信号,从而显示下一个数字。
在PROTEUS仿真环境中,我们可以直观地观察到8×8LED点阵屏的动态显示效果。PROTEUS是一款强大的电子电路仿真软件,它支持硬件级的模拟,包括51单片机及各种外围设备,是学习和调试嵌入式系统的好工具。
压缩包中的文件列表包括了程序源代码和仿真所需的模型文件。源代码通常使用C语言编写,可能会包括初始化单片机、设置定时器、定义显示数字的矩阵、处理中断服务函数等部分。而仿真源文件则包含了PROTEUS中的电路图,用户可以通过打开这些文件在PROTEUS环境中搭建电路并进行仿真,验证程序的正确性。
总结起来,这个项目是51单片机初学者的一个好练习,它涵盖了单片机的I/O控制、定时器中断、以及硬件仿真等多个关键知识点。通过这个实例,学习者可以了解51单片机如何驱动LED点阵屏,并掌握基本的电路仿真技能。
达西西66
- 粉丝: 1225
- 资源: 556
最新资源
- 基于频域处理的图像去网纹方法及其应用
- Windows XP VM虚拟机文件
- Muc数字图像处理-频域处理+复原-去网纹实验代码
- matlab实现扩展卡尔曼滤波器(EKF)三维同步定位与建图(SLAM)及LQR轨迹控制研究-卡尔曼滤波-轨迹控制
- 基于opencv的目标检测 远程手势控制电脑音量项目 源代码 基于opencv实现的手势控制电脑音量项目 通过手部识别出21个关键点,并对21个关键点进行定位和着色,然后做出了个控制电脑音量小项目
- 数字图像处理领域中的甲骨文图符提取技术及其应用:边缘检测、多边形拟合与文字分割
- 双闭环永磁同步电机调速系统(SVPWM) 主电路采用两电平逆变器,永磁同步电机参数已设定,采用空间矢量PWM控制,扇区选择、中间变量、矢量作用时间、切点等模块均搭建完成 控制系统采用双闭环控制系统
- 基于最近电平逼近的开环MMC仿真 DC:12kV,N=12, 采用最近电平逼近调制, 采用基于排序的均压方法,冒泡排序+桥臂电流方向判断 连接负载,可以得到13电平相电压波形 子模块自行搭建,参数
- Muc数字图像处理-甲骨文图符提取代码及图料
- 飞跨电容型NPC逆变器仿真(SPWM) 仿真包含FCNPC拓扑、LCL滤波器、三相纯阻性负载构成主电路 采用SPWM,设计电容平衡模块,构成FCNPC逆变仿真系统 可以得到逆变器输出的三电平相电压
- fluent UDF 中文介绍.zip
- 二极管钳位型NPC逆变并网仿真(SPWM) Matlab 2021a 2016b均可 采用双环PI控制,SPWM,加设LCL滤波器,并网 可以得到逆变器输出为五电平线电压波形,滤波后输出电压,电流均
- 麻雀搜索算法(SSA)文章复现(改进Tent混沌初始化+改进Tent混沌扰动+高斯扰动)-CSSA 复现内容包括:改
- 直流电压源+双向DCDC变器+负载+锂离子电池+控制系统,Simulink仿真模型 有两种工作模式: 1锂离子电池经双向DCDC变器为负载供电 2电压源为负载供电同时经双向DCDC变器为锂离
- 2024年如何提升大模型任务能力报告.pptx
- DataFunSummit非数据中心GPU上的大模型并行训练.pptx