• 51单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真+程序+原理图+报告+讲解视频)


    51单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

    51单片机电子钟六位数码管显示整点提醒仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

    仿真图proteus7.8及以上

    程序编译器:keil 4/keil 5

    编程语言:C语言

    设计编号:S0047

    1.主要功能:

    本设计旨在设计一个基于51单片机的电子钟proteus仿真设计

    1.设置一个开机控制显示按键、一个时/分切换按键、一个加1按键;

    2.每到整点蜂鸣器鸣响

    3.用6位一体数码管显示时、分、秒,开机显示12:00:00。

    给定单片机频率为12MHz。设计硬件电路图并用图纸绘制电路图,在keil中编写代码并在Proteus上做出仿真并撰写课程设计说明书。

    需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。原理图一样的情况下,本设计无论stc还是at都兼容,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

    以下为本设计资料展示图:

    2.仿真

    开始仿真

    打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后,数码管没有显示,需要按下开机显示按键。

    img

    按下开机显示按键后,数码管显示时间12.00.00,刚好整点,蜂鸣器提示2秒后待机,时间逐秒递增。

    img

    显示时间的情况下,按下时分调整键进入设置模式,时钟闪烁表示当前正在设置时钟,按下加按键,时钟+1,加到23后到0重新递加。再按下时分调整键进入分钟设置模式,分钟闪烁,再按下时分调整键进出设置模式,数码管正常显示。

    img

    3. 程序代码

    使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

    img

    主函数代码

    //主函数
    void main()
    {
    	uchar k=0;
    	TMOD|=0X01;
    	TH0=0X3C;
    	TL0=0XB0;	
    	ET0=1;//打开定时器0中断允许
    	EA=1;//打开总中断
    	TR0=1;//打开定时器
    	while(1)
    	{
    		//按键检测
    		if(!k1 &&(k!=1))//时分
    		{
    			k=1;
    			if(mode<2)
    				mode++;	   //设置模式变化
    			else
    				mode=0;
    		} 
    		if(!k2 &&(k!=2))//加按键
    		{
    			k=2;
    			if(mode==1)//设置时间
    			{
    				if(shi<23)//时间+1
    					shi++;
    				else
    					shi=0;//时间从0开始加
    			}
    			if(mode==2)//设置分钟
    			{
    				if(fen<59)//分钟+1
    					fen++;
    				else
    					fen=0;//分钟从0开始加
    			}
    		}
    		if(k1 && k2)
    			k=0;
    		if(!k3)//软件复位,时间回复到默认时间
    		{
    			shi=SETSHI;
    			fen=SETFEN;
    			miao=SETMIAO;
    			mode=0;
    		}
    		//显示
    		if(mode==0)
    		{
    			P0=smgduan0[shi/10];smg1=0;delay(100);smg1=1;
    			//P0先给数据,位选给0,选中数据位,数据稳定后,位选给1取消位选
    			P0=smgduan1[shi%10];smg2=0;delay(100);smg2=1;
    			P0=smgduan0[fen/10];smg3=0;delay(100);smg3=1;
    			P0=smgduan1[fen%10];smg4=0;delay(100);smg4=1;
    			P0=smgduan0[miao/10];smg5=0;delay(100);smg5=1;
    			P0=smgduan0[miao%10];smg6=0;delay(100);smg6=1;
    		}
    		if(mode==1)
    		{
    			if(time<11)//做闪烁效果,如果time小于11,显示时钟,否则时钟不显示
    			{
    			P0=smgduan0[shi/10];smg1=0;delay(100);smg1=1;
    			P0=smgduan1[shi%10];smg2=0;delay(100);smg2=1;
    			}
    			P0=smgduan0[fen/10];smg3=0;delay(100);smg3=1;
    			P0=smgduan1[fen%10];smg4=0;delay(100);smg4=1;
    			P0=smgduan0[miao/10];smg5=0;delay(100);smg5=1;
    			P0=smgduan0[miao%10];smg6=0;delay(100);smg6=1;
    		}
    		if(mode==2)
    		{
    			P0=smgduan0[shi/10];smg1=0;delay(100);smg1=1;
    			P0=smgduan1[shi%10];smg2=0;delay(100);smg2=1;
    			if(time<11)//做闪烁效果,如果time小于11,显示分钟,否则分钟不显示
    			{
    			P0=smgduan0[fen/10];smg3=0;delay(100);smg3=1;
    			P0=smgduan1[fen%10];smg4=0;delay(100);smg4=1;
    			}
    			P0=smgduan0[miao/10];smg5=0;delay(100);smg5=1;
    			P0=smgduan0[miao%10];smg6=0;delay(100);smg6=1;
    		}
    		//整点
    		if(mode<3)
    		{
    		if((fen==0)&&(miao<1))//整点判断
    			beep=0;
    		else
    			beep=1;
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93

    4. 原理图

    原理图使用AD绘制,可供实物参考,仿真不同于实物,经验不足不要轻易搞实物。

    img

    Proteus仿真和实物作品的区别:

    1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

    2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

    电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

    3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

    4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

    参考元器件清单

    元件 型号 数量
    单片机 AT89C51 1
    电容 10uf 1
    电容 30pf 2
    晶振 12MHZ 1
    电阻 10k 1
    按钮 3
    电阻 1k 1
    三极管 PNP 1
    蜂鸣器 有源 1
    数码管 6位共阴 1
    排阻 10k 1

    电源部分
    排针 2P 1
    电容 0.1uf 2
    电容 100uf 2
    稳压器 7805 1

    5. 设计报告

    7000+字设计报告,内容包含设计框图,引言,硬件设计介绍,软件设计介绍,仿真调试,总结和参考文献。

    img

    6. 设计资料内容清单

    资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

    0、常见使用问题及解决方法–必读!!!!

    1、仿真图

    2、程序源码

    3、开题报告

    4、原理图

    5、功能要求

    6、元器件清单

    7、设计报告

    8、软硬件流程框图

    9、讲解视频

    Altium Designer 软件资料

    KEIL软件资料

    Proteus软件资料

    单片机学习资料

    答辩技巧

    设计报告常用描述

    鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

    img

    资料下载链接(可点击):

  • 相关阅读:
    Ubuntu目录和linux内核文件用途
    FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
    Nacos 服务治理(服务注册中心)
    uni-app---- 点击按钮拨打电话功能&&点击按钮调用高德地图进行导航的功能【安卓app端】
    删除字符串中的*
    埃菲尔之月手表口红礼盒情迷法式浪漫
    竟然有人把VSCode玩成了IDEA的效果,有点厉害
    js bom
    【shell】交互式自动化执行命令
    List获取差集产生的问题
  • 原文地址:https://blog.csdn.net/weixin_52733843/article/details/132700640