毕业设计 基于51单片机+Proteus仿真案例

51单片机毕业设计 STC12C5A60S2 DS12887 单片机毕业设计 51单片机项目 数码管显示的合成出租车计价器设计 Synthetic taxi meter digital display design 学生姓名: 学生学号: 10700121 专业名称: 电子信息工程 指导教师: 计算机与信息工程学院 2014年6月13日 独创性声明 本人声明所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作和取得的研究成果,除了文中特别加以引用标注之处外,论文中不包含其他人已经发表或撰写过的研究成果,没有伪造数据的 阅读详情


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机+Proteus仿真案例

第 01 篇 基础程序设计

01 闪烁的LED

/* 名称:闪烁的LED                                                              

说明:LED按设定的时间间隔闪烁

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit LED=P1^0;

//延时

void DelayMS(uint x)                 

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

while(1)

{

LED=~LED;

DelayMS(150);

}

}

02  从左到右的流水灯

/* 名称:从左到右的流水灯

说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果

*/

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

P0=0xfe;

while(1)

{

P0=_crol_(P0,1); //P0的值向左循环移动

DelayMS(150);

}

}

03  8只LED左右来回点亮

/* 名称:8只LED左右来回点亮

说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果

*/

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

uchar i;

P2=0x01;

while(1)

{

for(i=0;i<7;i++)

{

P2=_crol_(P2,1); //P2的值向左循环移动

DelayMS(150);

}

for(i=0;i<7;i++)

{

P2=_cror_(P2,1); //P2的值向右循环移动

DelayMS(150);

}

}

}

04  花样流水灯

/* 名称:花样流水灯

说明:16只LED分两组按预设的多种花样变换显示

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code Pattern_P0[]=

{

 0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,

 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,

 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

uchar code Pattern_P2[]=

{

 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,

 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,

 0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

//延时

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//主程序

void main()

{

uchar i;

while(1)

{ //从数组中读取数据送至P0和P2口显示

for(i=0;i<136;i++)

{

P0=Pattern_P0[i];

P2=Pattern_P2[i];

DelayMS(100);

}

}

}

05  LED模拟交通灯

/* 名称:LED模拟交通灯

说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit RED_A=P0^0;    //东西向灯

sbit YELLOW_A=P0^1;

sbit GREEN_A=P0^2;

sbit RED_B=P0^3;    //南北向灯

sbit YELLOW_B=P0^4;

sbit GREEN_B=P0^5;

uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量

//延时

void DelayMS(uint x)

{

uchar i;

while(x--) for(i=0;i<120;i++);

}

//交通灯切换

void Traffic_Light()

{

switch(Operation_Type)

{

case 1: //东西向绿灯与南北向红灯亮

RED_A=1;YELLOW_A=1;GREEN_A=0;

RED_B=0;YELLOW_B=1;GREEN_B=1;

DelayMS(2000);

Operation_Type=2;

break;

case 2: //东西向黄灯闪烁,绿灯关闭

DelayMS(300);

YELLOW_A=~YELLOW_A;GREEN_A=1;

if(++Flash_Count!=10) return; //闪烁5次

Flash_Count=0;

Operation_Type=3;

break;

case 3: //东西向红灯,南北向绿灯亮

RED_A=0;YELLOW_A=1;GREEN_A=1;

RED_B=1;YELLOW_B=1;GREEN_B=0;

DelayMS(2000);

Operation_Type=4;

break;

case 4: //南北向黄灯闪烁5次

DelayMS(300);

YELLOW_B=~YELLOW_B;GREEN_B=1;

if(++Flash_Count!=10) return;

Flash_Count=0;

Operation_Type=1;

}

}

//主程序

void main()

{

while(1) Traffic_Light();

}

06  单只数码管循环显示0~9

/* 名称:单只数码管循环显示0~9

说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示

*/

#include<reg51.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,0xff};

//延时

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

//主程序

void main()

{

uchar i=0;

P0=0x00;

while(1)

{ /* for(;i<11;i++){ P0=~DSY_CODE[i]; DelayMS(300);}  //注:另一方案 */

P0=~DSY_CODE[i];

i=(i+1)%10;

DelayMS(300);

}

}

07  8只数码管滚动显示单个数字

/* 名称:8只数码管滚动显示单个数字

说明:数码管从左到右依次滚动显示0~7,程序通过每次仅循环选通一只数码管

*/

#include<reg51.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};

//延时

void DelayMS(uint x)

{

uchar t;

while(x--) for(t=0;t<120;t++);

}

//主程序

void main()

{

uchar i,wei=0x80;

while(1)

{

for(i=0;i<8;i++)

{

P2=0xff;    //关闭显示

wei=_crol_(wei,1);

P0=DSY_CODE[i];  //发送数字段码

P2=wei;    //发送位码

DelayMS(300);

}

}

}

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!

51单片机12864大液晶屏proteus仿真 51单片机竞赛设计实例程序44例(Proteus仿真资料),可以做参赛设计的参考,可以用来做毕业设计,也可以做项目参考,平时的练习项目,带源码,可以说费了很多时间才集齐的,希望对你们有帮助,闯客网技术论坛还有更多关于单片机proteus毕业设计和项目案例,我们的资料获取和交流的群:613377058 资料下载地址:https://bbs.usoftchina.com/thread-20576... 阅读详情

相关推荐

proteus仿真51单片机实现温湿度监控:实战案例解析

通过proteus仿真51单片机搭建温湿度监控系统,结合传感器数据采集与显示模块,完整呈现从电路设计到程序调试的全过程,是嵌入式学习中极具实用价值的实战案例

weixin_42561464的博客 777

51单片机毕业设计设计

51单片机毕业设计开发板,用来对51单片机的设计。

毕设分享|基于51单片机基于Proteus的温控系统设计与仿真

15现下人们最主要使用的单片机有两个电源标准,分别是5v与3.3v这两种电压,也有着一些单片机系统的使用电压比较低的情况,这些特殊情况被特殊地方与场合所使用,在当前的学习阶段我们不对此有着过多的研究,本次设计被采用的AT89C51这种型号的单片机,所要求的供电电压为5v这个标准,本次设计是利用软件进行仿真实现其功能,然后也可以通过所购买的开发板进行实物测试,开发板的接口就是与电脑连接的5v电压。从而能够达到掩盖光源以及渗入光源的主要目标,来显示其中的深度与浅度不同样的层次感以及与其错落有致的影响效果。

Sen_091的博客 2528

Proteus单片机仿真入门指南

本文介绍了Proteus单片机仿真的入门攻略,并提供了一个简单的示例代码。通过Proteus的强大仿真功能,你可以在不实际搭建硬件电路的情况下,进行单片机的功能验证和调试。在仿真过程中,用户可以通过添加合适的外围电路元件,如LED、按键等,来模拟实际的硬件环境。在Proteus中,按照前面的步骤创建新工程,选择AVR系列的ATmega16单片机和LED,然后连接它们的引脚。添加电路图:在新工程中,点击"Library"菜单,选择"Pick Devices",然后选择所需的单片机型号和其他外围元件。

loop_class349的博客 616

基于51单片机Proteus虚拟示波器仿真工程(含ADC0832采样与12864波形显示)

一套面向初学者和课程设计Proteus仿真级虚拟示波器方案,以STC89C52为核心控制器,搭配ADC0832完成0–5V模拟信号模数转换,通过AMPIRE128X64型128×64点阵液晶实时绘制波形曲线。工程包内含完整Keil C工程文件:main.c主程序、ADC0832.c驱动模块、AMPIRE128X64.c液晶显示模块,以及对应头文件、汇编启动代码(STARTUP.A51)、已编译hex固件、Proteus原理图(.DSN)、仿真数据库(.DBK)、流程图(.bmp)、元件清单(Sheet1.

joy55的博客 293

电子科学与技术毕设题目选题推荐

🥇 近期不少学弟学妹询问学长关于电子科学与技术专业相关的毕设选题,学长特意写下这篇文章以作回应!以下是学长亲手整理的物联网相关的毕业设计选题,都是经过学长精心审核的题目,适合作为毕设,难度不高,工作量达标,对毕设有任何疑问都可以问学长哦!相对容易工作量达标题目新颖,含创新点。

m0_71572576的博客 4998

单片机毕设如何选题 如何避坑

🥇 近期不少学弟学妹询问学长关于电子信息工程专业相关的毕设选题,学长特意写下这篇文章以作回应!以下是学长亲手整理的物联网相关的毕业设计选题,都是经过学长精心审核的题目,适合作为毕设,难度不高,工作量达标,对毕设有任何疑问都可以问学长哦!相对容易工作量达标题目新颖,含创新点。

m0_71572576的博客 1706

AT89C51单片机毕业设计实战:从模块选型到完整系统集成避坑指南

通过以上步骤,一个基于AT89C51的温控报警系统就从概念变成了稳定运行的作品。这个过程不仅锻炼了硬件选型、电路设计、模块化编程和调试排错的能力,更培养了一种系统性的工程思维。功能扩展:加入矩阵键盘,允许用户动态设置温度报警阈值;增加串口通信(利用AT89C51的UART),将温度数据上传至电脑,实现数据记录与远程监控。性能优化:研究如何让系统进入空闲(Idle)或掉电(Power Down)模式,以极低的功耗运行,仅由外部中断(如按键)或定时器唤醒,这对于电池供电的应用至关重要。可靠性提升。

2600_94960159的博客 407

51单片机基于PROTEUS仿真LCD1602示例

51单片机基于PROTEUS仿真LCD1602示例 【下载地址】51单片机基于PROTEUS仿真LCD1602示例 本资源文件提供了基于PROTEUS仿真软件的51单片机仿真示例,重点展示了如何使用PROTEUS进行51单片机程序的仿真和调试,并通过LCD1602显示屏进行数据显示 ...

gitblog_09717的博客 788

【008】【毕业设计】基于51单片机的烟雾报警系统proteus仿真与实物设计

【008】【毕业设计】基于51单片机的烟雾报警系统proteus仿真与实物设计

小邓子分享官的博客 2634

51单片机C语言编程与Proteus仿真:智能温控器设计

本文还有配套的精品资源,点击获取 简介:本资源集合为51单片机C语言编程和Proteus仿真软件在智能温控器设计中的综合应用教程和实例,旨在帮助初学者和毕业设计学生掌握相关技能。智能温控器项目涵盖了温度检测、数据处理、显示输出以及控制执行器等环节,让学生能够在实践中学习和巩固嵌入式系统开发的相关知识。 1. 51单片机C语言编程基础 1.1 单片机基础介绍 ...

weixin_32102617的博客 3285

【006】基于51单片机的简易电子计算器Proteus仿真设计

【006】基于51单片机的简易电子计算器Proteus仿真设计

小邓子分享官的博客 2164

基于51单片机病房呼叫系统仿真电路设计

*单片机设计介绍,基于51单片机病房呼叫系统仿真电路设计。

2201_75940997的博客 1704

基于c51单片机毕业设计——智能温度控制

本设计采用AT89C51单片机为控制芯片,硬件上用dsb18202做温度采集(有需要也可以采用dht11温湿度模块)直流电机作为降温风扇,用户可通过按键来控制转速的大小,用继电器来控制电阻丝提高温度。用lcd1602显示屏来显示环境温度并且通过按键来设置模式与最高温和最低温。 实验现象: 首先它能显示环境的温度并能设置上下限阀值,这是最基本的功能,系统上电的时候显示的是当前环境温度和设定的温度阀值,我们可以通过按键来修改温度上下限阀值。我们看,按下这个K1键会进入温度阀值设置界面,每按...

weixin_51322363的博客 2万+

毕业设计 基于51单片机的视觉导航小车的设计

序🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的视觉导航小车的设计。

Nueve_Y的博客 1766

毕业设计 基于51单片机家用电器远程控制系统的设计

序 🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机家用电器远程控制系统的设计1 硬件设计 主要器件:AT89C51单片机、ISD1420、 FM92701.1 AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROM的低电压,高性能CMOS8位微处理器,俗称

Nueve_Y的博客 2090

基于51单片机简易计算器仿真设计(proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

基于51单片机简易计算器仿真设计(proteus仿真+程序+原理图+PCB+设计报告+讲解视频)仿真版本:proteus 7.8 原理图PCB:Altium Designer 程序编译器:keil 4/keil 5 编程语言:C语言设计编号:S0001

weixin_52733843的博客 9712

100道KEIL+Proteus仿真实例

🧑‍🎓 个人主页:花棉袄 📖 本章内容:【Proteus仿真:0-10】 👑 版权: 本文由【花棉袄】原创💝在CSDN首发💝需要转载请联系博主

学习笔记 9471
上一篇: 毕业设计 基于51单片机红外遥控电子钟的设计
下一篇: 毕业设计 基于51单片机电机转速测量系统的设计
汪老师单片机
博客等级 码龄3年 2万+粉丝 · 248原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值