仿真图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文件路径,然后开始仿真。开始仿真后,数码管没有显示,需要按下开机显示按键。
按下开机显示按键后,数码管显示时间12.00.00,刚好整点,蜂鸣器提示2秒后待机,时间逐秒递增。
显示时间的情况下,按下时分调整键进入设置模式,时钟闪烁表示当前正在设置时钟,按下加按键,时钟+1,加到23后到0重新递加。再按下时分调整键进入分钟设置模式,分钟闪烁,再按下时分调整键进出设置模式,数码管正常显示。
3. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。
主函数代码
//主函数
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;
}
}
}
4. 原理图
原理图使用AD绘制,可供实物参考,仿真不同于实物,经验不足不要轻易搞实物。
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+字设计报告,内容包含设计框图,引言,硬件设计介绍,软件设计介绍,仿真调试,总结和参考文献。
6. 设计资料内容清单
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、仿真图
2、程序源码
3、开题报告
4、原理图
5、功能要求
6、元器件清单
7、设计报告
8、软硬件流程框图
9、讲解视频
Altium Designer 软件资料
KEIL软件资料
Proteus软件资料
单片机学习资料
答辩技巧
设计报告常用描述
鼠标双击打开查找更多51 STM32单片机课程毕业设计.url
资料下载链接(可点击):