2009年全国技工教育和职业培训
优秀教研成果评选活动参评论文
PROTEUS仿真教学
-数字电路篇
-51单片机篇
引言:技工学校的电子类专业教学,重在操作,重在实践.但在教学过程中必须以理论作为指导.但单纯的一本教案,一支笔的模式进行理论或技能教学,往往在学生中达不到应有的效果,随着科技的发展,这种模式显然不能适应现代教学的要求.因此应用多媒体进行电子专业教学,激发学生的视觉感官,把不可视的电子运动转为实际效果,即节省操作过程中的电子制作时间,也可快速掌握并消除理论中的晦涩点与重点,激发学生的学习热情与兴趣.
PROTEUS仿真教学(上)
-数字电路篇
常州市电子技工学校(213014) 何海滨 0519-88980011
Proteus软件是英国Labcenter electronics公司的EDA工具软件.功能强化.Proteus软件除了具有原理布图,PCB制板及电路仿真的功能外,其革命性的功能是:针对微处理器的应用,直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器,Proteus为您建立了完备的电子设计开发环境!
应用Proteus软件进行数字电路的仿真教学,用生动形象的仿真效果来理解数字电路中的数字集成电路功能,时序电路,数字单元电路功能等,可以达到事半功倍的效果.
PROTEUS仿真集成电路功能教学
数字电路中,数字集成电路教学是重点之一.如何认识数字电路集成块功能成了学生学习当中的难点.对于这方面的教学,教材讲得很抽象,学生很不易学会,常规教学借助于数字实验箱来学习集成电路功能.但采用Proteus软件仿真集成电路的功能,更易理清集成电路的真值表功能.
CD4511是输出高电平有效的CMOS七段显示译码器.其输入是8421BCD码,输出驱动7段共阴数码管.其真值表如图一:
要想理解上图的真值表含义,光用列表方式讲解学生不易接受,但用仿真形式来说明,却是非常容易理解.在PROTEUS软件中绘图如下图二:U1(CD4511)周围用高低电位设置其工作环境:LT(3),BI(4)接高电位1,LE/STB(5)接低电平0,BCD码从脚6217输入,对应DCBA,图中电位分别是:0011,也就是十进制的3,运行以后,在输出端数码管显示3.从图中还可以从CD4511引脚上的方点颜色看出高低电位,其中红为高,蓝为低.同理拔动W1可以验证真值表中其它项.图三显示9.根据图二,三电路仿真CD4511的功能,完全可以让学生寓学于仿真中.
2,PROTEUS仿真时序教学
触发器,移位寄存器,振荡器等电路均是有关时序的电路.时序电路基本上是由集成电路完成.在这介绍移位寄存器的仿真.74HC595是美国国家半导体公司生产的串进串,并出通用移位寄存器芯片.并行输出端具有输出锁存功能.主要引脚功能为:DS:串入数据输入端;SH_CP:移位脉冲输入端; ST_CP:锁存脉冲输入端;/MR:移位寄存器清零端;/OE:输出允许端(低电平有效).Q0Q7:并出端子;Q7'串出端子.其真值表如下图四:
按照真值表,设计一电路图按照74HC595引脚要求进行仿真设置.电路图如下图五:点击运行后,按住图中按钮S1适当时间后松开,就可在U3条状灯中产生移动亮灭的移位效果.同时也可打开图六中数字示波器,观察SH_CP,ST_CP引脚上升沿脉冲波形.
3,PROTEUS仿真秒脉冲发生器电路功能.如下图七,可以产生1Hz的矩形脉冲波.点击运行按钮后,示波器A踪可以显示电路形成的1Hz波形,B踪显示标准1Hz波形,如果形成的波形与1Hz有误差,可以调节RV1校准.
使用PROTEUS对数字电路进行仿真,还有很多内容可以学习,在这抛砖引玉,希望大家从学习PROTEUS软件中可以更多感受它的优点.
篇后感言:PROTEUS的最大优势在于能仿真多种单片机功能,下一篇习作《PROTEUS仿真(下)-51单片面篇》
PROTEUS仿真教学(下)
-51单片机篇
常州市电子技工学校(213014) 何海滨 0519-88980011
PROTEUS软件是电子EDA软件,与其它相关软件相比,其优势在于能仿真实际电路运行状态,从而解决了很多实际中可能遇到的错误点,缩短电路开发的周期与成本.同类软件还有Multisim,但PROTEUS软件的创新点在于能针对大部分单片机进行仿真.
在单片机的教学过程中,绝大多数师生均认为:教者难,学者更难.如何解决这一困境 应用PROTEUS仿真单片机进行教学,让学生更易理解单片机指令,编程的思路以及调试的方法.因为通过仿真可以把抽象的程序变成实际的运行效果,直接让学生收获成功的快乐,更加激发学生的学习热情.绝大多数学校单片机教学主要以51系列单片机为主,因此在这主要以51单片为范例进行仿真.
流水灯程序主要让学生能理解单片机的口线操作,常作为教学中单片机入门编程之一.使用PROTEUS,可以清楚的演示流水效果.准备工作如下:①,在WAVE环境下编程2051.asm,并编译成2051.HEX;②,在PROTEUS环境下绘制如下电路图一;③然后在PROTEUS环境下打开U1属性图二,修改Program File,把2051.HEX文件加入到U1中.点击运行后,就会出现程序所要求的流水灯效果.WAVE中修改程序段可以得到不同的流水效果.
数字钟程序主要是让学生了解51单片机中的硬件资源:中断,定时器等.同时也综合学习动态扫描显示,键盘处理等知识点,应用PROREUS仿真,可以让学生分模块,分程序段进行调试仿真,收到的效果可以说事半功倍,值得同行借鉴与学习.首先确定硬件电路如图三.
根据硬件软件编写与调试初步可以分如下几步完成:一,完成上电显示00∶00功能,完整程序为89C51Display.C,编译后形成89C51Display.HEX文件.二,修改上电显示12∶00,并且自动计数运行.完整程序为89C51Add.C,编译后形成89C51Add.HEX文件.三,加入键盘程序,可以调节时钟.完整程序为89C51Clock.C,编译后形成89C51Clock.HEX文件.上述三步形成的运行效果图如下:
液晶驱动在单片机教学中也是不好理解的内容之一,然而有了PROTEUS仿真,困难也就迎刃而解了.在PROTEUS环境下绘制如下图四电路图:
按照液晶模块的技术资料,编程形成文件1602.C,编译后形成1602.HEX,导入到89C51当中,点击运行,就可得到如下运行效果:
运用PROTEUS软件进行单片机仿真教学,可以化难为简,化抽象为生动,为单片机的多媒体教学提供了平台,值得推荐与学习.
注:本文所用程序请查看附件.
附件:包含:2051.asm ,89C51CLOCK.C ,1602.C
2051.asm
ORG 0000H
LJMP 0030H
ORG 0003H
RETI
ORG 0030H
MAIN:MOV P1,#0FEH
LCALL DELAY
MOV P1,#0FDH
LCALL DELAY
MOV P1,#0FBH
LCALL DELAY
MOV P1,#0F7H
LCALL DELAY
MOV P1,#0EFH
LCALL DELAY
MOV P1,#0DFH
LCALL DELAY
MOV P1,#0BFH
LCALL DELAY
MOV P1,#7FH
LCALL DELAY
JMP MAIN
DELAY: MOV R3,#04H
DELAY1:MOV R4,#0FFH
DELAY2:MOV R5,#0FFH
DELAY3:DJNZ R5,DELAY3
DJNZ R4,DELAY2
DJNZ R3,DELAY1
RET
END
89C51CLOCK.C
#include //定义51头文件//
#define uchar unsigned char
#define uint unsigned int
uchar code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code disp[]={0xfe,0xfd,0xfb,0xf7}; //定义数码管显示段码数组以及位数组.//
uchar time,segbit,second,minter,hour;
uint time1;
sbit P1_0=P1^0;
sbit S1=P1^1;
sbit S2=P1^2; //定义8位,16位变量以及位变量//
void reset(void)
{TMOD=0x02;
TH0=0x06;
TL0=0x06;
EA=1;
time=0;
time1=0;
P1=0xff;
segbit=0;
hour=12;
minter=0;
second=0;
ET0=1;
TR0=1;} //初始化定时器0模式2,自动重装载.初始化变量及开定时器中断//
void delay(uint count)
{uchar i;
while(--count != 0)
{
for(i = 0; i < 125; i++); // ";" 表示空语句,CPU空转.
} // i 从0加到125,在12M晶体下CPU大概耗时1毫秒
}
void keyboard(void)
{if(!S1)
{delay(200);
hour++;
if(hour==24)hour=0;
}
if(!S2)
{delay(200);
second=0;
minter++;
if(minter==60)minter=0;
}
}
void main(void)
{reset();
while(1)
{keyboard();
}
} //主程序进行初始化工作后,查询键盘,并处理,本程序未进行任何处理.//
void intt0(void) interrupt 1 using 1
{++time;
if(time==4) //1MS到否 //
{time=0;
P2=disp[segbit]; //P2送位选号:a若为0则选中时十位;为1选中时个位;为2选中分十位;为3选中分个位.//
switch(segbit)
{case 0:P0=dispcode[hour/10];break;
case 1:P0=dispcode[hour%10];break;
case 2:P0=dispcode[minter/10];break;
case 3:P0=dispcode[minter%10];break;
default:break;
} //P0送相应位对应数据.//
++segbit;
if(segbit==4) segbit=0; //更改位选,显示能从时十位(0)到分个位(3)循环.//
++time1;
}
if(time1==1000) //1S到否 //
{time1=0;
++second;
P1_0=~P1_0; //秒指示//
if(second==60) //60秒到否 //
{second=0;
++minter;
if(minter==60) //60分到否 //
{minter=0;
++hour;
if(hour==24) hour=0; //24小时到时,归0.//
}
}
1602.C
#include
#define LCM1602_DB0_DB7 P0 // 定义LCM1602的数据总线
sbit LCM1602_RS=P2^0; // 定义LCM1602的RS控制线
sbit LCM1602_RW=P2^1; // 定义LCM1602的RW控制线
sbit LCM1602_E=P2^2; // 定义LCM1602的E控制线
sbit LCM1602_Busy=P0^7; // 定义LCM1602的测忙线
unsigned char code Disign[] = {"Disign by:czhhb"};
void I2C_Delay(unsigned char count)
{
while(count!=0) count--;
}
void LCM1602_Delay(unsigned char count){
unsigned char i;
while(--count != 0)
{
for(i = 0; i < 125; i++);
}
}
void LCM1602_TestBusy(void){
do{
LCM1602_DB0_DB7 = 0xff;
LCM1602_RS = 0;
LCM1602_RW = 1;
LCM1602_E = 0;
LCM1602_Delay(2);
LCM1602_E = 1; }
while(LCM1602_Busy);
}
void LCM1602_WriteCMD(unsigned char LCM1602_command) {
LCM1602_TestBusy();
LCM1602_DB0_DB7 = LCM1602_command;
LCM1602_RS = 0;
LCM1602_RW = 0;
LCM1602_E = 0;
LCM1602_E = 1;
}
void LCM1602_WriteData(unsigned char LCM1602_data){
LCM1602_TestBusy();
LCM1602_DB0_DB7 = LCM1602_data;
LCM1602_RS = 1;
LCM1602_RW = 0;
LCM1602_E = 0;
LCM1602_E = 1;
}
void LCM1602_Init(void){
LCM1602_WriteCMD(0x01);// 显示清屏
LCM1602_WriteCMD(0x38);// 显示模式设置:显示2行,每个字符为5*7个像素
LCM1602_WriteCMD(0x06);// 显示光标移动设置:文字不动,光标右移
LCM1602_WriteCMD(0x0c); // 显示开及光标设置:显示开,光标关,闪烁关
}
void print(unsigned char a,unsigned char *str){
LCM1602_WriteCMD(a);
while(*str != '\0'){
LCM1602_WriteData(*str++);
}
*str = 0;
}
void print1(unsigned char a,unsigned char t){
LCM1602_WriteCMD(a);
LCM1602_WriteData(t);
}
void main(void)
{LCM1602_Init();
print(0x84,"LCD TEST");
print(0xc0,Disign);
while(1){;}
}
}
}
- proteus设计电路图 > 2009年全国技工教育和职业培训
-
2009年全国技工教育和职业培训
下载该文档 文档格式:DOC 更新时间:2009-11-05 下载次数:0 点击次数:3文档基本属性 文档语言: Simplified Chinese 文档格式: doc 文档作者: 创编 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- DOC格式下载
- 更多文档...
-
上一篇:Proteus自学教程(下册)
下一篇:电子创新大赛章程
点击查看更多关于proteus设计电路图的相关文档
- 您可能感兴趣的
- 电路图弄到proteus里 proteus proteus视频教程 proteus7.8破解版下载 proteus下载 proteus7.8 proteus仿真论坛 proteusisis免费下载 proteus仿真软件下载
- 大家在找
-
- · 2008年卫生部高值集中采购
- · 螺杆机工作原理动画
- · 小学二年级下册数学(租船)一课课件苗圃网
- · 博物馆讲解员面试
- · gd.7t9.com充值
- · 开封市工艺美术研究所
- · 电力拖动控制图
- · 脡陆唇庐禄露赂猫
- · 卡扎菲红色旅
- · 穿越yy下载
- · 2012年星座运势书籍
- · 广州蝎子养殖技术视频
- · 高一英语unit1说课稿
- · 中国工商银行客服电话
- · 电喷发动机工作原理图
- · 高职院校特色专业建设
- · 百变小樱魔术卡1avi
- · pcb电路板厂招聘
- · 财税2010121号全文
- · 通州张家湾开发区招聘
- · 劳动版电工基础
- · 陈式83式太极拳谱
- · 金一南党史开讲
- · 2011英语四级试卷
- · 氢气通入氧化铜加热
- · 2010注册给排水真题
- · 线性代数课件下载
- · AUTOCAD考证试卷
- · macbookpro装win7
- · 天龙90星宿套装
- · 推土机手招聘出国
- · 英语语法技巧课件
- · d7000遮光罩
- · func1030
- · 数控车床编程入门书籍
- · 北京地铁几点发车
- · 布鲁氏疾病症状
- · 六年级升初中分班考试
- · 深圳市教育网学生保险
- · 数据结构课程设计报告doc
- 赞助商链接