交大单片机实验31khz分频陈连坤老师单片机课.docx

上传人:b****1 文档编号:2341232 上传时间:2023-05-03 格式:DOCX 页数:11 大小:343.13KB
下载 相关 举报
交大单片机实验31khz分频陈连坤老师单片机课.docx_第1页
第1页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第2页
第2页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第3页
第3页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第4页
第4页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第5页
第5页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第6页
第6页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第7页
第7页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第8页
第8页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第9页
第9页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第10页
第10页 / 共11页
交大单片机实验31khz分频陈连坤老师单片机课.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

交大单片机实验31khz分频陈连坤老师单片机课.docx

《交大单片机实验31khz分频陈连坤老师单片机课.docx》由会员分享,可在线阅读,更多相关《交大单片机实验31khz分频陈连坤老师单片机课.docx(11页珍藏版)》请在冰点文库上搜索。

交大单片机实验31khz分频陈连坤老师单片机课.docx

交大单片机实验31khz分频陈连坤老师单片机课

 

单片机实验报告

——1KHz分频10分频

 

一、实验内容:

实现对1KHz信号的十分频

二、实验目的:

学习并掌握利用51内核单片机的定时器/计数器0

(1)的计数功能实现对外部信号的分频。

三、实验环境:

WindowsXP操作系统,keiluvision4软件。

四、实验过程:

1.建立新的工程fenpin10。

打开uvision4,在project的下拉菜单中选newuvisionproject建立新的工程,命名fenpin10,存储在电脑的相应文档中,在cpu的选择中选取80/87c52。

2.新建文件

main.c:

主程序,将文件命名为main.c,并加入到刚刚建好的工程中。

3.将程序写入main.c中,并点击编译。

4.编译无误后,点击

进行软件仿真。

5.建立按钮。

在DEBUG中选择functioneditor一项进入,将程序代码输入窗口中,然后点击SAVE,保存为.INI的文件。

并点compile,如果操作正确会出现所编辑的按钮。

进入编辑按钮

输入代码

保存为INI的文件

出现所编辑的按钮

6.退出DEBUG,点击

,在DEBUG中

(1)将晶振的频率改为12.0MHz。

(2)加入刚刚所编辑好的按钮BUTTON.INI。

再次进入DEBUG后,按钮便直接显示出来了。

 

7、在逻辑分析仪中加入输入信号和输出信号。

(1)加入输入信号port3.5。

(2)加入输出信号P1.0

8、点击run进行全速运行,点击按钮,观察逻辑分析仪的波形,并进行测量。

测量输入信号:

可以看出:

约为1KHZ

测量输出信号:

可以看出:

信号约为100HZ。

由以上两图可以看出,输入一个1KHZ的信号,输出信号为100HZ,即单片机实现了对1KHZ的10分频。

五、实验代码分析

(一)文件main.c分析

1、#include

标准8032器件描述。

2、sbitP1_0=P1^0:

定义输出引脚

3、unsignedintdataf_div=10:

定义分频系数。

在前面定义可以方便以后改动,使得程序使用起来更加灵活方便。

4、voidTIM1_INIT(unsignedintdiv):

声明定时器1的初始化函数。

其中形参为需要的分频系数。

5、main函数。

TIM1_INIT(f_div);

EA=1;

while

(1);

调用定时器1的初始化函数,由于定时器1的初始化只需要进行一次即可,所以将调用初始化函数放在主函数中。

调用之后,通过while

(1)进行等待,等待外部信号产生下降沿后进入定时器中断服务程序。

6、对定时器1进行初始化函数。

(1)TMOD|=0x60;

由TMOD的功能表可以得出,定时器1:

工作在计数器功能;工作模式为模式2.

又因为TMOD的SFR地址为OX89,所以不能够进行位寻址,只能够通过或的方式进行赋值。

必须通过或的方式进行赋值:

因为只改变需要改变的位,而不影响其他的位,这样可以方便合作编程。

(2)TH1=-(div/2);

TL1=TH0;

根据题目要求为10分频,即每来5个脉冲变一次电平,所以初值的选择为-(div/2);又因为模式2为8位自动重装模式,所以TH1=TL1。

(3)TR1=1;打开定时器1。

ET1=1;开放所有中断允许位。

7、定时器1的中断服务程序。

voidtmr1_ISR(void)interrupt3

{P1_0=~P1_0;}

(1)中断入口:

通过查表5-1可以得到外部定时器1的中断号为3,向量地址为001BH。

(2)由于定时器1是硬件自动清除中断标志位,所以不需要进行软件清除。

(3)P1_0=~P1_0:

进入中断后,需要完成将输出电平翻转。

(二)按键程序分析

1、端口的设定。

PORT3&=~0x20;

使P3口与11011111B相与,只将P3.5口改为0,而其他不变。

PORT3|=0x20;;

使P3口与00100000B相或,只将P3.5口改为1,而其他不变。

2、延迟时间

swatch(0.0005);延时0.5ms

3、由于输入信号为1KHZ的周期函数,所以通过while

(1)使得信号为周期信号。

六实验总结

通过此次实验我对定时器的应用有了进一步的理解,知道应该如何进行定时器的设定,如何通过按键对外输入信号进行仿真等等。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2