




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 proteus 的 51 单片机仿真实例及应用开发说明 一、单片机系统的开发流程 1、搭建硬件电路; 2、编写控制程序; 3、将程序“装”到单片机里面; 4、运行单片机系统,并检查、调试运行结果。 二、学习单片机的基本条件 单片机是一门实践性很强的技术,它牵涉到软件和硬件的学习。 软件指的是单片机控制程序;硬件则是保证单片机运行的基本电路。无论是程序设 计还是电路设计,都需要经过大量的实践练习才能够准确理解和熟练掌握。 1 、软件条件: 单片机软件的开发流程是: 1)编写控制程序; 2)对程序进行编译、排错、 仿真、调试; 3)生成可以用特定软件能烧写到单片机里面的二进制或十六进制文件。
2、一般 的单片机的软件开发用到以下软件: 程序编写、编译软件(其中用到最广泛的 Keil51 ):用来编写、编译单片 机的控制程序(其中用到最广泛的是AVRf ighter 或者是 STCISPV38A); 仿真软件: proteus 软件能很好地模拟展示单片机程序是否完成了既定功能; 2 、硬件条件: 程序编写调试完成后,需要在硬件系统中运行,才能够组成一个完整的单片 机系统。一般的必备硬件有: 编程器:用来将程序烧录到单片机中的工具; 单片机学习板:用来演示和检验单片机系统是否实现了既定功能。 三、对于单片机的硬件电路的设计 需要指出的是, 单片机的硬件电路是千差万别的, 尤其是在制作电路板
3、的时候, 牵涉到 元器件的布局、 走线、 抗干扰等多种环境问题, 所以单单依靠一个仿真软件是很难真实模拟 单片机系统的工作的。 所以在这里的学习,只是作为一种辅助开发的手段,我们可以先将我们的电路和程序在 该软件上进行验证,验证通过后在制作电路板进行实际验证。 四、下面简单地对 proteus 软件的入门进行以下介绍 PROTEUS 软件是英国 Labcenter electronics 公司研发的 EDA 工具软件。它是一个集模 拟电路、数字电路、模 /数混合电路以及多种微控制器系统为一体的系统设计和仿真平台。 是目前同类软件中最先进、 最完整的电子类仿真平台之一。 它真正实现了在计算机上完
4、成从 原理图、电路分析与仿真、单片机代码调试与仿真、系统测试与功能验证到 PCB 板生成的 。双击该图标, 出现工作界面如 完整的电子产品研发过程。 已经安装了 Proteus ISIS7 软件的桌面上就会有图标 图 1 所示。界面中包括:标题栏、下拉主菜单、快捷按钮栏、标准工具栏、绘图工具箱、状 态栏、选择元器件按钮、预览对象方位控制按钮、仿真操作按钮、预览窗口、电路原理图编 辑窗口等。 1、电路图的绘制 运行的程序后 , 进入该仿真软件的主界面。 作图步骤: (1)绘图前 , 为了便于作图 , 可作一些设置。 如设置栅格、栅格捕捉精度、 图形界面颜色、 大小等。 (2)通过对象选择按钮 P
5、, 利用其搜索引擎 , 将所需元器件加入到对象选择器窗口。 列元件清单。 (3)放置元器件至图形编辑窗口 , 并调整到合适位置。 (4)修改属性,如电阻 , 设置电阻值 (5)放置总线至图形编辑窗口。 (6)完成元器件之间以及元器件与总线的连线。 (7)给与总线连接的导线贴标签 , 以便于系统识别。 图 1 proteus 工作界面 2、单片机所需的控制源程序的载入 双击原理图中的单片机就会弹出一个窗口, 点击窗口中的添加文件菜单, 将在编译器编 译后产生的 hex 文件装入单片机中即可。 如图所示 3、仿真电路模拟调试 点击窗口左下方的仿真按钮就可以进行对单片机的仿真工作 面是几个运用 pr
6、oteus 软件对单片机的仿真的一些实例。 例 1. 按键实现 4 级变速跑马灯的 proteus 仿真电路及 C 语言程序设计 以下是源程序 #define uchar unsigned char / 定义一下方便使用 #define uint unsigned int #define ulong unsigned long #include / 包括一个 52 标准内核的头文件 sbit P10 = P10; / 头文件中没有定义的 IO 就要自己来定义了 sbit P11 = P11; sbit P12 = P12; sbit P13 = P13; sbit K1= P32; sbit
7、K2= P35; sbit K3= P24; sbit K4= P25; bit ldelay=0; / 长定时溢出标记 ,预置是 0 uchar speed=10; /设置一个变量保存默认的跑马灯的移动速度 char code dx5163 _at_ 0 x003b;/ 这是为了仿真设置的 /自动变速的跑马灯试验 void main(void) / 主程序 uchar code ledp4=0 xfe,0 xfd,0 xfb,0 xf7;/ 预定的写入 P1 的值 uchar ledi; / 用来指示显示顺序 RCAP2H =0 x10; / 赋 T2 的预置值 0 x1000 ,溢出 30
8、次就是 1 秒钟 RCAP2L =0 x00; TR2=1; / 启动定时器 ET2=1; /打开定时器 2 中断 EA=1; / 打开总中断 while(1) / 主程序循环 if(ldelay) / 发现有时间溢出标记,进入处理 ldelay=0; / 清除标记 P1=ledpledi; / 读出一个值送到 P1 口 ledi+; / 指向下一个 if(ledi=4) ledi=0; / 到了最后一个灯就换到第一个 if(!K1)speed=20; / 检查到按键,设置对应的跑马速度 if(!K2)speed=12; if(!K3)speed=8; if(!K4)speed=10; /定时
9、器 2 中断 timer2() interrupt 5 static uchar t; TF2=0; t+; ,同时限制了最慢速度 if(t=speed)|(t30) / 比较一个变化的数值, 以实现变化的时间溢出 t=0; ldelay=1;/ 每次长时间的溢出,就置一个标记,以便主程序处理 例 2.1602LCD 字符显示的 proteus 仿真电路及 C 语言程序设计 其 c 语言源程序如下: #include #include #define uchar unsigned char #define uint unsigned int sbit rs=P33; sbit rw=P34;
10、sbit en=P35; sbit bflag=P27; uchar str116=welcome to: ; uchar str216= void delay(unsigned int z) unsigned int x; unsigned char y; for(x=z;x0;x-) for(y=20;y0;y-); void delay1() uchar j; for(j=2500;j0;j-); / 液晶模块 / void en_toggle() en=0; /_nop_(); delay1(); en=1; delay1(); / _nop_(); en=0;/由高电平变成低电平时,
11、执行命令 / 注意必须加延时,否则会出问题的 void is_ready() P2=0 x00;/ 设置为输入口 rs=0; rw=1; en=1;/ 高电平,读忙标志 while(bflag); en=0; void write_cmd(uchar cmd) is_ready(); rs=0; rw=0; P2=cmd; en_toggle();/ 下降沿,写指令代码 void write_data(uchar indata) is_ready(); rs=1; rw=0; P2=indata; en_toggle();/ 下降沿,写数据 _nop_(); void write_str(uc
12、har addr,uchar str16) uchar i; write_cmd(addr); for(i=0;i16;i+) write_data(stri); delay(2000); void init_lcd() 5*7 点阵字符 write_cmd(0 x38);/8 位数据接口,两行显示, write_cmd(0 x0c);/ 显示开关开 write_cmd(0 x06);/ 光标移动设置 write_cmd(0 x01);/ 清屏幕 delay1(); /ds1302 模块结束 void main() write_str(0 x80,str1); /液晶显示提示信息 write_
13、str(0 xc0,str2); /液晶显示提示信息 while(1) 例 3.16x32 点整显示 2 个汉字的 proteus 仿真电路及 C 语言程序设计 init_lcd(); /初始化 LCD 其 c 语言源程序如下: #include sbit SCLK=P10; sbit DAT=P12; sbit SLCK=P11; sbit P20=P20; sbit P21=P21; sbit P22=P22; sbit P23=P23; #define uchar unsigned char #define uint unsigned int uchar code table64=/0
14、x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x00, /0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x04,0 xFF,0 xFE,0 x01,0 x00,0 x02,0 x80, 0 x02,0 x
15、80,0 x02,0 x40,0 x04,0 x40,0 x04,0 x20,0 x08,0 x10,0 x10,0 x0E,0 x60,0 x04,0 x00,0 x00;/ 大 /0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, /0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, uchar code ta
16、ble164= 0 x22,0 x08,0 x11,0 x08,0 x11,0 x10,0 x00,0 x20,0 x7F,0 xFE,0 x40,0 x02,0 x80,0 x04,0 x1F,0 xE0, 0 x00,0 x40,0 x01,0 x84,0 xFF,0 xFE,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x05,0 x00,0 x02,0 x00,/ 学 /0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0
17、0, / 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00 ; void delay(void); uint offset; void display_595(uchar L1,uchar L2,uchar L3,uchar L4)/ uchar i; uchar j; uchar a3; a0=L1; a1=L2; a2=L3; a3=L4; SLCK=0; for(j=0;j4;j+) for(i=0;i8;i+)/ 把数组中的每一个数送到移位寄存器( 8 位的数) SCLK=0;/ 寄存器的时钟输入,上升沿有效 DAT=aj aj=aj1; / 将 a值左移一位 SCLK=1; SLCK=1; void main(void) TMOD=0 x01; TH0=0 xb1; TL0=0 xe0; ET0=1; EA=1; TR0=1; while
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内销采购合同范例
- 知识产权课程试题及答案
- 出国劳务外派合同样本
- 写涉外合同范例
- 中式快餐食堂合同范例
- 产学研服务合同样本
- 音乐考试核心技巧试题及答案
- 游泳复试题目及答案大全
- 音乐语言与表现力的重要性试题及答案
- 银行考试试题及答案英语
- 贝恩杯案例分析大赛初赛题目
- 2023年江苏省南京市中考语文默写题复习(附答案解析)
- 全国各省市邮编对照表
- 行政区域代码表Excel
- YS/T 837-2012溅射靶材-背板结合质量超声波检验方法
- 烧烤类菜单表格
- DB11∕T 583-2022 扣件式和碗扣式钢管脚手架安全选用技术规程
- 酒水购销合同范本(3篇)
- 海康威视系统图标
- 印染厂管理手册
- 保洁服务岗位检查考核评分标准
评论
0/150
提交评论