proteus的单片机仿真用不同的数据类型控制LED灯的闪烁频率_第1页
proteus的单片机仿真用不同的数据类型控制LED灯的闪烁频率_第2页
proteus的单片机仿真用不同的数据类型控制LED灯的闪烁频率_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机的程序设计离不开对各种数据的处理,数据在单片机内存中的存放情况由数据结构决定。c语言的数据结构是以数据类型出现的。数据类型可分为基本数据类型和复杂数据类型,复杂数据类型是由基本数据类型构造而成的。C语言中的基本数据类型有:char,int,short,long,float和double这几种。其中char,int,short,long常用于指示整型数据,因此有包含有符号型和无符号型两种,float和double常用于表示实型数据。另外在c51中还有一些用于实现位操作和寄存器操作的数据类型。接下来我们将利用几个实例来演示数据类型、数据运算等操作1、本例分别使用无符号整型数据和无符号字符型数

2、据来设计延时函数,跟别用于控制D1和D2的闪烁,从而研究这两种数据的特性。2、实现方法为比较两种数据的使用效果,本例中将延时函数的循环次数设置相同,然后通过比较延时时间,直观地观察两种数据类型的使用效果。3、在keil c51中新建工程ex5,编写如下程序代码,并编译生成ex5.hex文件/实例5,用不同数据类型的延时函数控制LED灯的闪烁时间#include <reg51.h>/*函数功能:用整型数据延时一段时间*/void int_delay(void) /定义整型数据实现的延时函数unsigned int i,j; /定义无符号整型变量,双字节数据,数值范围0-65535fo

3、r(j = 0;j < 200;j+)for(i = 0;i < 200;i+); /无任何操作的空循环,起到延时作用/*函数功能:用字符型数据延时一段时间*/void char_delay(void) /定义整型数据实现的延时函数unsigned char i,j; /定义无符号字符型变量,单字节数据,数值范围0-255for(j = 0;j < 200;j+)for(i = 0;i < 200;i+); /无任何操作的空循环,起到延时作用/*函数功能:主函数*/void main(void)unsigned char i;while(1)for(i = 0;i &l

4、t; 3;i+)P1 = 0xfe; /点亮p1.0口上的LED灯int_delay(); /延时一段较长时间P1=0xff; /熄灭p1.0口上的LED灯int_delay();for(i = 0;i < 3;i+)P1 = 0xef; /点亮p1.4口上的LED灯char_delay(); /延时一段较短时间P1=0xff;char_delay();4、在proteus中新建应用电路ex5,电路如下所示,为便于观察,在电路中增加了虚拟示波器,示波器的两个通道分别检测P1.0和P1.4端口的输出波形。虚拟示波器的添加步骤如下图所示3 天前 上传下载附件 (59.85 KB)启动仿真后,双击示波器原理图符号,弹出如下图所示的对话框,根据图中的提示步骤,可以更改示波器的各项参数。3 天前 上传下载附件 (443.4 KB)下图是仿真运行后,观察两个LED的闪烁速度,可以看出,D1的闪烁速度要慢于D2的闪烁速度。通过观察P1.0口和P1.4口的输出波形也可以得出同样的结论。那么为什么延时函数的数值一样,只是数据类型不一样,延时的时间却有差别呢?原因就在于数据类型的差别上!由于无符号整型数据占两个字节,而无

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论