当前位置:首页 > 芯闻号 > 充电吧
[导读]——以“单片机89C2051 输出口的正弦波输出设计”为例 摘要:以学习单片机为目的,为在没有仿真器和目标板的情况下对单片机内部程序运行时有感性的认识,以常用的89C2051 单片机为核心,利用Proteus 仿真软件的硬件仿

——以“单片机89C2051 输出口的正弦波输出设计”为例

摘要:以学习单片机为目的,为在没有仿真器和目标板的情况下对单片机内部程序运行时有感性的认识,以常用的89C2051 单片机为核心,利用Proteus 仿真软件的硬件仿真模块建立一个正弦波发生电路,并运用C 语言编写相应程序,结合所设计电路在Proteus 仿真软件的软件仿真功能进行了综合仿真,并把仿真结果和实际电路与程序运行的结果进行了比较。据此,通过从实践出发来,把实践与理论结合在一起的学习方法来达到入门单片机知识。

1 引言

       对于单片机的学习,由于其比较抽象,特别是在编写程序时,完全只是凭借程序员周密的逻辑思维来进行程序设计,为了让程序设计员更好的理解和调试其所设计的程序,所有单片机生产厂家都针对他们的单片机系列设计生产了相应的仿真器。然而这些仿真器的价格却不菲,无凝这是初次学习单片机时重要考虑的因素。而目前随着我国电子技术的飞速发展,我们所有生活上所用到、见到的电子产品都离不开单片机的身影,这也愈加激起我们对单片机的学习热情。然而在具体学习这门技术时,特别是高校教学时,因为实验设备不够和教学课时少等原因,往往都是采用纯理论性的或集体性的实验。而通过这种学习之后,以我个人在校学习时的经历和对一些高校学生的了解,大部分学习者最终都是知识考试过了关,却什么都不会。针对这一现象,在此本文提倡运用仿真的方法结合具体的设计来学习单片机知识。

目前国外很多软件设计公司都针对单片机的学习而设计了许多仿真软件,这使得单片机学习者只需要一台个人电脑就可以完成单片机程序的设计和调试,大大降低了我们的学习成本,方便了我们的学习。其中,Proteus[1]是由英国Labcenter 公司开发的具有硬件电路分析、实物仿真软件和程序仿真功能的仿真软件。通过软件安装在个人电脑后,可以实现了单片机和SPICE 电路相结合的仿真。在此运用该仿真软件,设计以AT89C2051[2]的P1 口输出正弦波为目的的硬件电路和相应程序,通过这一具体的项目设计,把理论与实践结合起来,以期引导入门单片机学习

2设计Proteus里的仿真电路

为了对单片机内部程序运行时有感性上的理解,在此利用Proteus7 Professional 下的ISIS7 Professional 仿真电路设计软件设计了如下图1 所示的电路,该电路所预达到的功能是通过单片机AM89C2051 的P10-P17 口输出准正弦波并通过虚拟示波器显示出来,为了避免可能由电路元器件引起后面的调试工作,电路所有采用的元器件都采用软件自带的标准库里的元器件。


 
图1 Proteus 中基于AT89C2051 单片机的准正弦波电路[!--empirenews.page--]

图1 所示电路的核心部件是信号处理器U1,双击它时可对它进行相应的设定,完成相应的设定后其功能就完全可以用来履行已烧入程序代码的CPU 的功能;时钟电路有晶体振荡器Y1 和瓷片电容C7、C8 组成;信号由U1 的P10-P17 这8 个输出口输出,信号再经过上来电阻RP1、R1-R8 分压输出和通过电压跟随器电路转化成近似于正弦波信号。

电阻R1 至R8 满足如下方程:


于是得出S0-S8 分别约为:0、0.0381、0.1464、0.3087、0.5、0.6913、0.8536、0.7619和1。S(n)值确定后,作出S(n)的值在EXCEL 里折线图如图2 所示,从图表中可以看出其形状类似于正弦信号在-90°到+90°象限内的波形。再依据以上结果,由式(3)可计算出R1-R8 的阻值关系,并按照常用电阻阻值规则,可取定如图1 电路图所示电阻阻值。


 
图2 S(n)的在Excel 里的折线图

3 设计相应程序

参照前面所设计电路,利用时间中断程序来产生频率为1KHz 的正弦波,所设计程序源代码及相关注释如下:

3.1定义P1端口的输出值

首先定义P1 端口的输出,P1 端口将按照数组P1_out[ ]给出的值不停的输出,也类似于P1 端口的P10 置“1”其他端口置“0”后不停的左移和右移。之所以该数组的大小为16是因为将输出正弦波周期在时域上分成16 等分。

code char P1_out[16]=
{0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x02,0x04,0x06,0x10,0x20,0x40,0x80};

3.2初始化时钟中断0和1

在此程序中主要是初始化有关时钟中断寄存器。

void int_init(void)
{ EA=0;//关闭所有中断,以保证在调用此子程序时中断不会发生
TMOD=0x11; //#00000001B ;定义时钟中断0 为16 位时钟发生器
TCON=0x50; //#00010000B ; 使能时钟中断0
IE=0x0a; //#00000010B ; 运行时钟中断0
IP=0x02; //#00000010B ; 时钟中断0 优先
TL0= (65535-1000/16);
TH0= ((65535-1000/16)>>8); /*初始化时钟中断0 的计数寄存器,系统时钟12MHz, 所以中断计数时间为1us,中断发生时间为1000/16X1us=1/16ms, 频率为16KHz,除以16 是因为一个周期被分成16 等分*/

EA=1; //允许中断发生
} [!--empirenews.page--]

3.3主程序

#include
#include
#include
void main(void)
{
static short P1_out_cnt=0; //定义对P1 口输出时计数
int_init(); //调用中断初始化子程序
while(1) //下面为一个无限循环
{
_nop_();
}
}

3.4时钟中断子程序

void timer_0 (void) interrupt 1 using 1
{ TL0= (65535-1000/16);
TH0= ((65535-1000/16)>>8); //重置时钟中断0 的时间计数寄存器值
P1=P1_out[P1_out_cnt]; //P1 口按数组给定值输出
P1_out_cnt++; //指向数组中下一个值
P1_out_cnt&=0x0f; //00001111B,保证0≤P1_out_cnt≤15
}

4 仿真与实验

在以上工作完成之后,通过仿真软件Proteus7 professional 下面的ISIS7 Professional 菜单窗口里对一些参数进行设定,为了简单完成仿真,在此只对必要的参数进行设定:首先对Design/Configure Power Rail 下的电源Vcc=5V 和GND=0 进行设定,其次是对Source/add or remove source code file 下的源程序代码名和Code generation tool=ASEM51 进行设定,在次是对双击单片机U1 弹出的菜单进行Clock Frequency 和Program file 目标代码(有源代码编译后产生的HEX 后缀名文件)的设定。最后点击Debug/Execute 便开始仿真运行,在运行过程中可以看到电脑屏上电路图中U1 输出口的输出状态,虚拟示波器上显示如图3 所示的波形。

为了对所仿真的结果做进一步的认证,在此设计了实际的电路来与之加以比较,如图4所示是按照图1 电路图设计了实际电路板之后,用示波器对其输出进行测试所得实际波形,实验表明仿真的结果与实际的测试结果相一致。


图3 仿真输出波形

 
图4 实际输出波形

5 结束语

对所设计的C 语言程序结合硬件电路的进行了仿真,并通过虚拟示波器显示了所设计程序运行的结果,并比较了仿真与实际电路运行输出结果,表明了通过Proteus 仿真软件可以达到与通过实际电路来学习单片机的效果。

完整的设计了一个项目的硬件电路和C 程序,通过真实具体的正弦波发生电路及其程序的设计来达到学习单片机引路作用,增强了学习者对单片机工作原理和应用设计的理解,为单片机初学者提供了一种切实可行的方法。
 
附图实际测试电路板
注:实际电路板上包涵了文中图1 的电路

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度
关闭
关闭