网站大量收购独家精品文档,联系QQ:2885784924

交大单片机实验3(1khz分频)----陈连坤老师单片机课.doc

交大单片机实验3(1khz分频)----陈连坤老师单片机课.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
交大单片机实验3(1khz分频)----陈连坤老师单片机课

单片机实验报告 ——1KHz分频10分频 一、实验内容: 实现对1KHz信号的十分频 二、实验目的: 学习并掌握利用51内核单片机的定时器/计数器0(1)的计数功能实现对外部信号的分频。 三、实验环境: WindowsXP操作系统,keil uvision4软件。 四、实验过程: 建立新的工程fenpin10。打开uvision4,在project的下拉菜单中选 new uvision project 建立新 的工程,命名fenpin10,存储在电脑的相应文档中,在cpu的选择中选取80/87c52。 新建文件 main.c:主程序,将文件命名为main.c,并加入到刚刚建好的工程中。 将程序写入main.c中,并点击编译。 编译无误后,点击进行软件仿真。 建立按钮。 在DEBUG中选择function editor一项进入,将程序代码输入窗口中,然后点击SAVE,保存为.INI的文件。并点compile,如果操作正确会出现所编辑的按钮。 进入编辑按钮 输入代码 保存为INI的文件 出现所编辑的按钮 退出DEBUG,点击,在DEBUG中 将晶振的频率改为12.0 MHz。 (2)加入刚刚所编辑好的按钮BUTTON.INI。 再次进入DEBUG后,按钮便直接显示出来了。 7、在逻辑分析仪中加入输入信号和输出信号。 (1)加入输入信号port3.5。 加入输出信号P1.0 8、点击run进行全速运行,点击按钮,观察逻辑分析仪的波形,并进行测量。 测量输入信号: 可以看出:约为1KHZ 测量输出信号: 可以看出:信号约为100HZ。 由以上两图可以看出,输入一个1KHZ的信号,输出信号为100HZ,即单片机实现了对1KHZ的10分频。 五、实验代码分析 (一)文件main.c分析 1、#include reg52.h: 标准8032器件描述。 2、sbit P1_0 = P1^0: 定义输出引脚 3、unsigned int data f_div = 10: 定义分频系数。在前面定义可以方便以后改动,使得程序使用起来更加灵活方便。 4、void TIM1_INIT (unsigned int div): 声明定时器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的中断服务程序。 void tmr1_ISR(void) interrupt 3 { P1_0 =~P1_0;} (1)中断入口: 通过查表5-1可以得到外部定时器1的中断号为3,向量地址为001BH。 (2)由于定时器1是硬件自动清除中断标志位,所以不需要进行软件清除。 (3)P1_0 =~P1_0:进入中断后,需要完成将输出电平翻转。 (二)按键程序分析 端口的设定。 PORT3 = ~0x20; 使P3口相与,只将P3.5口改为0,而其他不变。 PORT3 |= 0x20;; 使P3口相或,只将P3.5口改为1,而其他不变。 延迟时间 swatch (0.0005);延时0.5ms 由于输入信号为1KHZ的周期函数,所以通过while(1)使得信号为周期信号。 六 实验总结 通过此次实验我对定时器的应用有了进一步的理解,知道应该如何进行定时器的设定,如何通过按键对外输入信号进行仿真等等。

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档