您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页基于单片机的自行车测速系统仿真

基于单片机的自行车测速系统仿真

来源:榕意旅游网


1、设计题目:

基于51单片机的自行车测速系统protues仿真

2、设计工具:

keil C51v612中文完全版 proteus7.5

3、设计要求:

3.1 编程要求:

主程序利用 C 语言编写。

3.2 实现功能:

ATC51单片机一个测量电动车车速的系统仿真,1602液晶显示。 实验现象:

用霍尔传感器,在车轮上固定一个小磁铁,旁边安装一个霍尔传感器,车轮每转一周,经过一次霍尔传感器,产生一个脉冲,将脉冲接到中断0上(仿真中采用一个数字码盘代替),开启定时器0计时,这样就可以计算自行车路程和速度了。经单片机处理后把自行车时速显示在1602液晶显示屏上。

3.3设计原理框图

第- 1 -页

4、设计相关知识:

4.1 硬件设计

4.1.1 ATC51简介

ATC51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM) ,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位处理器(CPU)和Flash存储单元,功能强大ATC51单片机可为您提 供许多高性价比的应用场合,可灵活应用于各种控制领域。

4.1.2 主要性能参数:

·与MCS-51产品指令系统完全兼容 ·4k字节可重擦写Flash闪速存储器 ·1000次擦写周期

·全静态操作:0Hz-24MHz ·三级加密程序存储器 ·128×8字节内部RAM ·32个可编程I/O口线 ·2个16位定时/计数器 ·6个中断源

·可编程串行UART通道 ·低功耗空闲和掉电模式

4.1.3 功能特性概述:

第- 2 -页

ATC51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部 RAM,32 个 I/O 口线,两个 16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,ATC51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及

中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 结构框图如图4-1:

结构框图4-1

4.1.4引脚功能说明: 引脚如下图4-2

第- 3 -页

引脚图4-2

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作

第- 4 -页

输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为ATC51的一些特殊功能口,如下表所示: 口管脚 备选功能

P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器

(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

4.1.5 振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

第- 5 -页

4.1.6 LCD显示器工作原理: ①液晶显示原理

液晶显示的原理是利用液晶的物理特性, 通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 ②液晶显示器的分类

液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。 ③液晶显示器各种图形的显示原理:

线段的显示

点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和暗线组成的虚线。这就是LCD显示的基本原理。

字符的显示

用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。

汉字的显示

汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完就可以LCD上得到一个完整汉字。

1602字符型LCD简介

第- 6 -页

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

1602LCD的基本参数及引脚功能

1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图10-所示:

1602LCD主要技术参数: 显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

引脚功能说明

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表4-3所示:

编号 符号 1 2 3 4 5 6 7 8 VSS VDD VL RS R/W E D0 D1 引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 使能信号 数据 数据 编号 9 10 11 12 13 14 15 16 符号 D2 D3 D4 D5 D6 D7 BLA BLK 引脚说明 数据 数据 数据 数据 数据 数据 背光源正极 背光源负极 引脚接口说明表4-3

第1脚:VSS为地电源。 第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接

第- 7 -页

地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。 10.8.2.3 1602LCD的指令说明及时序

1602液晶模块内部的控制器共有11条控制指令,如表4-4所示

: 序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示 0 0 0 0 0 0 0 0 0 1 光标返2 0 0 0 0 0 0 0 0 1 * 回 置输入3 0 0 0 0 0 0 0 1 I/D S 模式 显示开/4 0 0 0 0 0 0 1 D C B 关控制 光标或5 字符移0 0 0 0 0 1 S/C R/L * * 位 6 置功能 0 0 0 0 1 DL N F * * 置字符字符发生存贮器地址 发生存7 0 0 0 1 贮器地址 置数据显示数据存贮器地址 8 存贮器0 0 1 地址 读忙标计数器地址 9 志或地0 1 BF 址

第- 8 -页 写数到10 CGRAM或1 DDRAM) 从CGRAM11 或DDRAM1 读数 要写的数据内容 0 读出的数据内容 1 控制命令表4-4

1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H。

指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。

指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。 指令11:读数据。

本设计所使用的1602液晶显示屏

第- 9 -页

与HD44780相兼容的芯片时序表4-5如下: 读状态 输入 RS=L,R/W=H,E=H 写指令 输入 RS=L,R/W=L,D0—D7=指令码,E=高脉冲 读数据 输入 RS=H,R/W=H,E=H 写数据 输入 RS=H,R/W=L,D0—D7=数据,E=高脉冲 基本操作时序表4-5

读写操作时序如下图4-6和4-7所示:

输出 D0—D7=状态字 输出 无 输出 D0—D7=数据 输出 无

第- 10 -页

读操作时序4-6

写操作时序4-7

硬件原理图

1602液晶显示模块可以和单片机ATC51直接接口,电路如图4-8所示。

第- 11 -页

图4-8 硬件原理图

1602的驱动程序11条指令,

(1)void Clear_display(); //清显示屏指令 (2)void Return_home(); //光标归位指令

(3)void Entry_mode_set(); //输入模式设置指令

(4)void Display_on_or_off(); //显示屏的开关控制指令

(5)void Cursor_or_Display_shift(); //设定显示屏或光标移动方

向指令

(6)void Function_set(); //功能设定指令

(7)void Set_character_address(); //设定CGRAM地址指令 (8)void Set_display_address(); //设定DDRAM地址指令 (9)void Read_busy_flag(); //读取忙信号或AC地址指令 (10)void Write_data(); //将数据写入DDRAM或CGRAM指令 (11)void Read_data(); //从CGRAM或DDRAM读出数据的指令

第- 12 -页

4.2 软件应用:

4.2.1 Proteus:

Proteus软件是来自英国Labcenter Electronics公司的EDA工具软件,Proteus软件除了其具有和其它EDA工具一样的原理布图,PCB自动或人工布线及电路仿真的功能外, 其性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出, 还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器,逻辑分析仪等, Proteus建立了完备的电子设计开发环境!

Proteus 是目前最好的模拟单片机外围器件的工具,它 可以仿真 51 系列、AVR,PIC 等常用的 MCU 及其外围电路 (如 LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分 SPI 器件,部分 IIC 器件)。

当然,软件仿真精度有限,而且不可能所有的器件都找得 到相应的仿真模型,用开发板和仿真器当然是最好选择,可是 对于单片机爱好者,或者简单的开发应该是比较好的选择。

Proteus 与其它单片机仿真软件不同的是,它不仅能仿真 单片机 CPU 的工作情况,也能仿真单片机外围电路或没有单片 机参与的其它电路的工作情况。因此在仿真和程序调试时,关 心的不再是某些语句执行时单片机寄存器和存储器内容的改 变,而是从工程的角度直接看程序运行和电路工作的过程和结 果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和 工程应用间脱节的矛盾和现象。

proteus 的工作过程

运行 proteus 的 ISIS 程序后,进入该仿真软件的主界面。 在工作前,要设置 view 菜单下的捕捉对齐和 system 下的颜色、图形界面大小等项目。通过工具栏中的 p(从库中选择元件命令)命令,在 pick devices 窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在 source 菜单的 Define code generation tools 菜单命 令下,选择程序编译的工具、路径、扩展名等项目;在 source 菜单的 Add/remove source files 命令下,加入单片机硬件电路的对应程序;通过 debug 菜单的相应命令仿真程序和电路的 运行情况。

Proteus 软件所提供了30多个元件库,数千种元件。元 件涉及到数字和模拟、交流和直流等。

4.2.2 Keil C51开发系统基本知识:

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

第- 13 -页

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。

C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

4.2.3 应用:

首先用Keil编写主程序“.C”文件,再用keil转换成“.hex”文件,再打开proteus7.5,画单片机仿真图,画好后鼠标右击图中的51单片机选择“编辑属性”,在Program File中载入之前的“.hex”文件,再点击“调试”中的“开始”或点击软件左下角的“”,即仿真开始运行。

5、主程序及注解:

#include \"d:\\c51\\reg51.h\" #include \"d:\\c51\\intrins.h\"

sbit LCM_RS=P3^0; sbit LCM_RW=P3^1; sbit LCM_EN=P3^7;

#define BUSY 0x80 //常量定义 #define DATAPORT P1 #define uchar unsigned char #define uint unsigned int #define L 50

uchar str0[16],str1[16],count; uint speed;

unsigned long time;

第- 14 -页

void ddelay(uint); void lcd_wait(void); void display(); void initLCM();

void WriteCommandLCM(uchar WCLCM,uchar BusyC); void STR(); void account();

/*********延时K*1ms,12.000mhz**********/

void int0_isr(void) interrupt 0 /*遥控使用外部中断0,接P3.2口*/ {

unsigned int temp; time=count; TR0=0; temp=TH0; temp=((temp << 8) | TL0); TH0=0x3c; TL0=0xaf; count=0; TR0=1; time=time*50000+temp; }

void time0_isr(void) interrupt 1 /*遥控使用定时计数器1 */ {

TH0 =0x3c; TL0 =0xaf; count++; }

void main(void) {

TMOD=0x01; /*TMOD T0选用方式1(16位定时) */

IP|=0x01; /*INT0 中断优先*/

TCON|=0x11; /*TCON EX0下降沿触发,启动T0*/

第- 15 -页

IE|=0x83; TH0=0x3c; TL0=0xaf; initLCM();

WriteCommandLCM(0x01,1); //清显示屏 for(;;) { account(); display(); } }

void account() { unsigned long a; if (time!=0) { a=L*360000000/time; } speed=a; }

void STR() { str0[0]='S'; str0[1]='p'; str0[2]='e'; str0[3]='e'; str0[4]='d'; str0[5]=' '; str0[6]=(speed%100000)/10000+0x30; str0[7]=(speed%10000)/1000+0x30; str0[8]=(speed%1000)/100+0x30; str0[9]='.'; str0[10]=(speed%100)/10+0x30; str0[11]=speed%10+0x30; str0[12]='k'; str0[13]='m';

第- 16 -页

str0[14]='/'; str0[15]='h'; }

void ddelay(uint k) {

uint i,j;

for(i=0;ifor(j=0;j<60;j++) {;} } }

/**********写指令到LCD子函数************/

void WriteCommandLCM(uchar WCLCM,uchar BusyC) {

if(BusyC)lcd_wait(); DATAPORT=WCLCM;

LCM_RS=0; /* 选中指令寄存器*/ LCM_RW=0; // 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_();

LCM_EN=0; }

/**********写数据到LCD子函数************/

void WriteDataLCM(uchar WDLCM) {

lcd_wait( ); //检测忙信号 DATAPORT=WDLCM;

LCM_RS=1; /* 选中数据寄存器 */ LCM_RW=0; // 写模式 LCM_EN=1; _nop_();

第- 17 -页

_nop_(); _nop_();

LCM_EN=0; }

/***********lcd内部等待函数*************/

void lcd_wait(void) {

DATAPORT=0xff; //读LCD前若单片机输出低电平,而读出LCD为高电平,则冲突,Proteus仿真会有显示逻辑黄色 LCM_EN=1; LCM_RS=0; LCM_RW=1; _nop_(); _nop_(); _nop_();

while(DATAPORT&BUSY) { LCM_EN=0; _nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_(); }

LCM_EN=0; }

/**********LCD初始化子函数***********/ void initLCM( ) { DATAPORT=0; ddelay(15); WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号 ddelay(5);

WriteCommandLCM(0x38,0); ddelay(5);

WriteCommandLCM(0x38,0);

第- 18 -页

ddelay(5);

WriteCommandLCM(0x38,1); //8bit数据传送,2行显示,5*7字型,检测忙信号

WriteCommandLCM(0x08,1); //关闭显示,检测忙信号 WriteCommandLCM(0x01,1); //清屏,检测忙信号

WriteCommandLCM(0x06,1); //显示光标右移设置,检测忙信号

WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号 }

/****显示指定坐标的一个字符子函数****/

void DisplayOneChar(uchar X,uchar Y,uchar DData) {

Y&=1; X&=15;

if(Y)X|=0x40; //若y为1(显示第二行),地址码+0X40 X|=0x80; //指令码为地址码+0X80 WriteCommandLCM(X,0); WriteDataLCM(DData); }

/*******显示指定坐标的一串字符子函数*****/

void DisplayListChar(uchar X,uchar Y,uchar *DData) {

uchar ListLength=0; Y&=0x01; X&=0x0f; while(X<16) {

DisplayOneChar(X,Y,DData[ListLength]); ListLength++; X++; } }

第- 19 -页

void display() { STR(); DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); }

6 仿真运行图:

第- 20 -页

7 设计心得:

这次这个计算机过程控制的课程设计我和汪江是一个课题,在大三下半学期我们学习了单片机这门课,而且也进行了单片机实验课,虽然做过几次实验,但在后来的这次课程设计的过程中遇到了很多困难,最后在我们不懈努力和周雪松学长的帮助下完成了。对单片机能做什么或者说以我们的水平能让单片机做什么根本没有一个清晰的认识,很担心自己的选题最后做不出来,所以当时选题时的原则是尽量的简单可行,毕竟我们实验课不多,在周雪松学长不断的讲解下,我们才有了清晰的认识。因为这是课程设计的时间比较短,所以我们无法在硬件上去实现它,我们就使用了Proteus仿真软件,它是来自英国Labcenter Electronics公司的EDA工具软件,Proteus软件除了其具有和其它EDA工具一样的原理布图,PCB自动或人工布线及电路仿真的功能外,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出, 还能看到运行后输入输出的效果。

通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵的赵括。

第- 21 -页

8 参考文献:

(1)单片机应用系统设计. 何立民. 北京航空航天大出版社。

(2)基于PROTEUS 的电路及单片机系统设计与仿真, 周润景.航空航

天大学出版社。

(3)单片机原理及接LI技术, 于风明.中国轻工业出版社。 (4)单片机原理及其接口技术, 胡汉才.清华大学出版社。 (5)单片机C语言开发技术.龚运新.清华大学出版社。

第- 22 -页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务