当前位置:首页 > 芯闻号 > 充电吧
[导读]——以“单片机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 的电路

 

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭