介绍一个非常好用的单片机仿真软件PROTEUS(带下载链接)
首先把proteus软件链接发给需要的朋友
百度网盘链接:https://pan.baidu.com/s/1gaWBwyVgbQGEDL-29Zkqhg
提取码:ddgd
想自学低端单片机的小伙伴们,可以延续我以下的思路自学。
从事单片机教学多年,虽说不够精通,但带领学生入门单片机足够了。说实话,一个从没有接触过计算机语言的初学者,因为没有程序的概念,学习单片机是有一定难度的。但如果方法得当,则能再最短时间内入门,也会为之后的深入学习打好一个良好的基础。以下我将从几方面来总结入门单片机需要做的几步。
首先,选好设备。一台电脑是必备,计算机可用来写程序,也可用来做仿真。最好能买一块单片机的开发板,最简单的那种,包含流水灯,数码管,按键,显示屏即可,淘宝网价钱不等,100不到就能买到好的。这样能接触到实物,直接用实物进行调试,更易于单片机的学习和开发。
其次,学会安装并使用软件,包括程序软件和仿真软件。程序软件现在已经发展到Keil 4版本了,仿真软件proteus的使用也非常方便,布置流水灯,电子表,点阵,1602,12864等都可以练习。其实我觉得用仿真软件入门单片机足够了。
在设计产品之前,有必要做一些理论上的充电。需要预备的理论基础包括进制、数字电平、发光二极管、keil软件和proteus软件的使用。
以下简单介绍以下proteus软件的实用。
仿真软件proteus的使用方法和步骤
1、打开软件
2、保存,选路径,取名字。
3、从元件库中选择元器件。
点击元件库,点击P,填写元器件型号或者关键字,双击或者单击ok。
选中某个元器件,在图面上双击鼠标左键,该元件便放在图面上了。
上图中红色单片机框形是单击鼠标时的情形,再单击就放下了。
4、连线
将鼠标放在你想要连线的起始端(会出现一个红色小方框),单击,移动鼠标至你想要连接的终端(出现红色小方框),单击,这样便完成一条连接线了。
5、将keil软件生成的*.hex文件下载至单片机中。
双击单片机,在program file右边路径中选取找到*.hex文件并添加,ok。
6、点击运行图标,运行程序看仿真效果。
51单片机驱动 LCD1602液晶显示 PROTEUS仿真 LCD指令解释
最近后台有小伙伴留言和我说老师给他们留了一个设计作业要用单片机去驱动LCD1602液晶显示任意字符,我利用空闲时间做了一个小实验,希望能帮到他做一个参考,更希望你们看后能有所收获。
51单片机驱动 LCD1602液晶显示系统 PROTEUS仿真及源代码设计
废话不多说先上实物图
LCD1602+51单片机最小系统应用仿真及制作
好了,接下来正式进入制作环节:
第一步:仿真
绘制好原理图,仿真时单片机最小系统只放一个单片机就可以了,但实际电路中需要加上电源模块、复位模块。如下图:
原理图文件请在附件中找。
原理图绘制好后,编写代码并生成hex文件。参考代码如下:
/*************************功能************************/
/*使用外部中断INTO改变LED状态,并且用1602显示出其状态*/
#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]=" HELLO 1602 ";
uchar code table0[]="1602 TEST ";
uchar code table1[]="RESULT: "; //空格是写到LCD了,即空格也是内容
uchar code table2[]="OK!";
uchar code table3[]="liang";
uchar code table4[]="mie";
uchar num;
sbit led=P1^7;
sbit lcden=P2^0; //液晶使能端
sbit lcdrs=P2^2; //液晶数据命令选择端选择写数据还是写命令
void delay(uint z) // 延时函数
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar com) //写入
{
lcdrs=0; //LCD 选择输入命令
P0=com; //向P0 口输入命令 39-32端口
delay(5); //延时
lcden=1; //打开LCD 使能
delay(5); //一个高脉冲
lcden=0; //关闭LCD 使能
}
void write_data(uchar date)
{
lcdrs=1; //设置为输入数据
P0=date; //将数据赋给P0 口
delay(5); //延时
lcden=1; //置高
delay(5); //高脉冲
lcden=0; //置低完成高脉冲
}
void init() //LED 初始化
{
lcden=0;
write_com(0x38);//设置16x2 显示5x7 点阵,8 位数据接口
write_com(0x0c); //设置开始显示不显示光标 (指令4)
write_com(0x06); //写一个字符后地址指针加1 (指令3)
write_com(0x01); //显示清零数据指针清零 (指令1)
}
void display(unsigned char *p)//按指针 地址写入数据
{
while(*p!='\0')
{
write_data(*p); //写数据
p++;
delay(1);
}
}
void main()
{
TCON=0x01; //设置中断为INTO
IE=0x81;
led=0;
init();
write_com(0x80); //将数据指针第一行第一个字处,
display(table); //调用函数的方式写入数据
delay(800);
write_com(0x80); //将数据指针第一行第一个字处,
display(table0); //调用函数的方式写入数据
write_com(0x80+0x40); //定义指针位置 将数据指针第二行第一个字处
for(num=0;num<7;num++)
{
write_data(table1[num]);
delay(5);
}
write_com(0x80+0x4c); //按1602的地址单个写入数据
write_data(table2[0]);
write_com(0x80+0x4d); //按1602的地址单个写入数据
write_data(table2[1]);
write_com(0x80+0x4e); //按1602的地址单个写入数据
write_data(table2[2]);
while(1);
}
void key_can() interrupt 0
{
delay(20); // 消除按键抖动
if(P3^3==0)
{
if(P3^3==0)
{
led=!led;
}
if(led==1)
{
write_com(0x80+0x4b);
display(table3);
}
else if(led==0)
{
write_com(0x80+0x4b); //按1602的地址单个写入数据
display(table4);
write_com(0x80+0x4f);
write_data(table1[8]); //按1602的地址单个写入数据
write_com(0x80+0x4e);
write_data(table1[8]);
}
}
}
原理图和代码都有了,仿真的准备工作就完了,现在正式进入仿真。
将代码加载进单片机中,仿真结果如下图:
元器件清单
原件布局及效果图如下:
最后按照要求全部焊接好,上电烧程序测试就可以了。
应该写得够详细了吧,最后,如果有什么意见或者建议欢迎直接给我留言,让我们共同学习一起进步,如果需要完整的代码或设计文件,请在下方留言或者私信我,看到后会第一时间回复。
谢谢!
如果喜欢我的文章请评论转发加关注哦。
相关问答
proteus 怎么添加 单片机 程序?1.使用其他的编写软件编写单片机程序,并生成.hex文件.2.在proteus中,直接双击芯片在其中的程序路径中添加你的代码文件.hex格式.3.仿真1.使用其他的编写软...
proteus 引脚怎么接?proteus怎么编辑引脚,1、画第一根线,从引脚出发,到达一定长度后双击鼠标完成,之后每一根线的画法只需要在引脚端点双击即可!!!2、画完线后,在英文输入模...p...
proteus单片机 是哪个?Proteus单片机是一种虚拟仿真软件,它可以模拟各种单片机的运行情况,包括常见的51、AVR、PIC等。用户可以在软件中进行电路设计、编程、调试等操作,以验证自己...
单片机 滑动变阻器怎么找?1.proteus滑动变阻器怎么调1、打开proteus软件后,点击P键进入器件库;2、在关键词中填入POT,Category选择Resistors;3、在查找结果Result中下拉找到POT-...
proteus 做 单片机 仿真时候,引脚旁边的红点表示高电平,蓝点表示低电平,请问灰色点表示什么呢?P0口是开漏输出口,不接上拉电阻的话,输出是高阻状态。所以是灰色显示。P0口是开漏输出口,不接上拉电阻的话,输出是高阻状态。所以是灰色显示。
proteus 中 单片机 怎么显示接地和电源管脚?接地端和电源端的管脚都省略没有画出来,仿真时会自动连接的。这一点不用费心啦。各种单片机在Proteus都一样。除非你自己画的。在protel中也存在这样的情况。...
单片机 在 proteus 上仿真时四位数码管显示时不停闪烁移动,这是为什么?显然从你的图上看,你用的是动态显示,动态显示是每位的显示时间在1-2ms,如果你的时间大于此值就会出现闪烁。如果你的显示间隔时间没问题,那请不要纠结此事,...
proteus 如何查看源代码?1、要查看Proteus的源代码,需要首先下载并安装Proteus的开源版本,并确保你有充分的权限来访问和修改源代码。2、然后,你可以使用适合你的集成开发环境(IDE...
51 单片机 在protues中输入什么可以找到?在protues中找不到的该如何处理?在Proteus输入“AT89C51”,就可以找到了,Proteus对于51单片机的支持,就限于AT89CXX系列的,如果你要住址别的,比如SST的或者STC公司的,Proteus里没有,不过...
在win7系统中打开 单片机 模拟仿真软件 proteus 时,点击元件库P...你遇到的问题可能是Proteus找不到预装的元件库。试着更新你的软件版本或者从官方网站下载最新的元件库补丁。另外,确认你的硬盘空间足够大,因为大型库可能会占...