使用keil及proteus实现数码管循环显示“0“-“F“

数码管循环显示"0"-“F”

一、数码管循环程序的编译

1.keil新建工程

打开project选择新建
在这里插入图片描述
打开ATmel,选择AT89C51
在这里插入图片描述
是否将标准8051启动代码复制到项目并将文件添加到项目中,此次项目可以不添加8051启动代码,选择否。
在这里插入图片描述

2.新建文本进行C语言编译

在这里插入图片描述
另存为"数码管循环显示.c"在这里插入图片描述
将该c程序添加进入工程
在这里插入图片描述
程序代码如下:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]=
{
  0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff
};
void DelayMS(uint x)
{
  uchar t;
while(x--)
for(t=120;t>0;t--);
}
void main()
{
  uchar i=0;
P0=0x00;
while(1)
{
  P0=~DSY_CODE[i];
i=(i+1)%16;/*显示0-f*/
DelayMS(400);
}
}

3.创建hex文件

点击该按钮进行设置
在这里插入图片描述

选择output并勾选创建hex文件
在这里插入图片描述
进行编译得到hex文件
在这里插入图片描述

二、使用proteus进行仿真

设计电路图如下
在这里插入图片描述
双击AT89C51添加hex文件
在这里插入图片描述
添加完成
在这里插入图片描述
仿真结果如下:
在这里插入图片描述
总结:本次学习了keil新建工程及对51芯片的c语言编译,并使用proteus进行仿真,收获颇多,在寻找元器件的过程中,对元器件英文名不熟悉,产生了许多错误,后面会进步的。

  • 10
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本系统的工作流程: 1)系统启动后,系统按程序给定的时间工作,即东西向通行60秒,南北向通行40秒,黄灯亮4秒,工作模式如表1所示。首先东西向通行,然后南北向通行,如此循环。 2)通行时间的设置:当需要更改主、次干道的通行时间时,可以用设置键、增加键、减少键”进行设置。 第一次按“设置键”时,东西向的绿灯亮,东西向的LED数码管显示当前东西向的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和南北向的LED数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向的通行时间,每按一次键,数码管显示时间增加1秒或减少1秒,长按键(按下的时间超过1秒钟以上),则数码管显示的时间按每秒钟增加或减少10的速度快速变化。 第二次按“设置键”时,东西向的黄灯亮,东西向的数码管显示当前东西向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和南北向的数码管熄灭,此时可以用“增加键”和“减少键”来改变东西向黄灯的点亮时间。 第三次按“设置键”时,南北向的绿灯亮,南北向的数码管显示当前南北向绿灯的通行时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向绿灯的通行时间。 第四次按“设置键”时,南北向的黄灯亮,南北向的数码管显示当前南北向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向黄灯的点亮时间。
"学 号: "201200558 " 单片机课程设计 "题 目 "动态数码管显示 " "学 院 "机电工程学院 " "专业班级 "电子信息工程12-1班 " "姓 名 " " "组 员 " " "指导教师 "张、王老师 " "2015 "年"5 "月"30 "日 " 课程设计量化评分标准 "指标 "最高分"评分要素 "评分 " "方案设计 "35 "方案选择合理,分析、设计正确,原理清 " " " " "楚,电路、程序流程图清晰,结构合理, " " " " "程序简洁、正确。 " " "调试 "15 "过程清晰,调试方案设计合理,测试点选 " " " " "择适当,程序编正确,调试步骤清楚。 " " "结果 "20 "电路及程序运行结果正确,达到预期效果 " " " " "。 " " "设计报告 "20 "报告结构严谨,逻辑严密,论述层次清晰 " " " " ",语言流畅,表达准确,重点突,报告 " " " " "完全符合规范化要求,用计算机打印成文 " " " " "。 " " "工作态度 "10 "工作态度认真,按时完成设计任务。 " " "总 评 成 绩 " " 目 录 一、概述 1 1. 单片机简介 1 2. Proteus简介 2 3. 设计任务与要求 3 二、硬件设计 3 1. 单片机最小系统设计 1 2. 数码管显示部分 4 3. 数码管驱动部分 5 三、软件设计 6 1. 仿真原理图 6 2. 仿真参数设置 6 3. 仿真结果 7 4. 程序流程图 8 5. 程序代码 .9 四、心得体会 ......11 五、参考文献 12 一、概述 1. 单片机简介 如图1.1和图1.2分别为PDIP封装的AT89C52引脚图和实物图 图1.1 引脚图 图1.2 实物图 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术 生产,兼容标准MCS- 51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中 有着广泛的应用。 AT89C52有40个引脚,32个外部双向输入/输(I/O)端口,同时内含2个外中断口,3 个16位可编程定时计数器,2个全双工串行通信口,2 个读口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理 器和Flash存储器结合在一起,特别是可反复擦的 Flash存储器可有效地降低开发成本。 AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。本课程 设计中使用的是PDIP封装的AT89C52单片机。 2.Proteus简介 如图1.3为Proteus7.0的工作界面图 图1.3 Proteus软件是英国Lab Center Electronics公司版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司 )。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比 较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好 者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。 Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外 围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世 界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理 器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等 ,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方 面,它也支持IAR、Keil和MATLAB等多种编译器。 在学习单片机的过程中Proteus软件可以很好地代替开发板进行仿真实验,可以使学生比 较灵活多样化的学习单片机。 3.动态数码管设计任务与要求 课程设计功能: 单片机采用定时器中断方法,制作一个简易时钟,要求用定时器实现精确定时,使用 数码管动态显示,完成时钟的秒走时显示。本课程设计是利用两位共阴极数码管显示数 字59,然后每隔1s顺序-1,减到00时,再循环从59-00. 课程设计内容: 1.掌握数码管的接口方法; 2.掌握数码管动态显示的原理; 3.掌握数码管动态显示的方法; 4.掌握单片机内部定时器的使用方法; 5.数码管动态显示的原理可参阅课本。 二、硬件设计 1.单片机最小系统设计 如图2.1所示 图2.1 单片机的最小系统是指使单片机能运行程序、正常工作的最简单电路系统

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值