77范文网 - 专业文章范例文档资料分享平台

单片机实验指导书(参考)(6)

来源:网络收集 时间:2020-04-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验8 计数器设计

一、实验目的

1.进一步掌握中断系统的应用 2.理解计数器的基本应用

3.掌握单片机使用计数器时设计应用系统的软、硬件方法。

二、实验说明

80C51内部有两个定时/计数器T0和T1,16位是指定时/计数器内的计数器是16位的,由2个8位计数器组成。51的定时/计数器为加法计数器,其计数的方法是在初值的基础上,对计数每有一个脉冲做一次加1。

内部计数器起计数器的作用。外部事件脉冲由P3.4 引入定时器T0。当定时器/计数器对外部事件进行计数时,在每个机器周期对相应引脚进行采样,如在第一个机器周期采样到的是1,而在下一个机器周期采样到的是0,则计数器加1。也就是说至少要两个机器周期才能确认一个外部脉冲。为此,外部脉冲的高电平期间和低电平期间都至少要保持一个机器周期,CPU 才能确认这个计数脉冲。也就是说要24 个振荡周期才可确认一个脉冲,所以,外来脉冲的频率最高为振荡频率的1/24。且高电平和低电平的期间都至少要保证一个机器周期才行。

三、参考实例

单次脉冲模块作为T0计数器的输入,每按一次按键,P1口驱动的发光二极管左移一位。 1.电路图

17

2.流程图及源程序

开 始 timer0

左移一位

声明变量

N 0xff?

设置计数器中断 设置计数初值 Y 启动计数器 重置LED

停滞 返回

主程序 中断子程序

#include #define LED P1 main()

{ IE=0x82; //开TO中断

TMOD=0x06; //设置计数器T0为Mode 2 TH0=0xff;TL0=0xff; //设置T0计数初值 TR0=1; //启动T0 LED=0xfe;

while(1); //无穷循环 }

void timer0(void)interrupt 1 //T0中断子程序 { LED=(LED<<1)|0x01; if(LED==0xff) LED=0xfe; }

四、实验内容

(1)单次脉冲模块作为T1计数器的输入,T1工作在方式1下。 (2)每按一次按键,P1口驱动的发光二极管左移一位。

18

实验9 定时器设计

一、实验目的

1.理解定时器的基本应用

2.掌握单片机使用定时器时设计应用系统的软、硬件方法。

二、实验说明

定时器有关的寄存器有工作方式寄存器TMOD 和控制寄存器TCON。TMOD 用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

三、参考实例

由P1口驱动8个LED,每隔0.25s,这8个LED分为两组,交替闪烁一次,即高四位亮低四位灭,0.25s后高四位灭低四位亮,如此循环下去。

内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12 个振荡器周期。因为实验系统的晶振是11.0592MHZ,工作于方式1,即16 位方式定时器, 以此方式定时,则最长的定时时间为:

1/(11.0592/12) * 65536 *10-6 s ≈ 71.11ms

如果要定时更长的时间,则要对定时次数进行计数。本实例要定时0.25 秒,设置定时器本身定时50ms,定时5 次,则总长为0.25秒。

1.电路图

19

2.流程图及源程序

开 始 timer0 声明变量 重设定时值

声明变量

设置定时器中断 设置定时值 启动定时器 N 5次? Y 切换LED 停滞 返回 中断子程序

主程序

#include #define LED P1

#define count 50000 //T0(Mode 1)的计数值,约0.05s #define TH_M1 (65536-count)/256 //T0(Mode 1)计数高8位 #define TL_M1 (65536-count)%6 //T0(Mode 1)计数低8位

int intcount=0; //声明intcount变量,计算T0中断次数 main()

{ IE=0x82; //启用T0中断

TMOD&=0xf1;TMOD|=0x01; //设置T0为Mode 1

TH0=TH_M1;TL0=TL_M1; //设置T0计数值高8位、低8位 TR0=1; //启动T0 LED=0xf0; //右4灯亮 while(1); //无穷循环 }

void timer0(void)interrupt 1 //T0中断子程序

{ TH0=TH_M1;TL0=TL_M1; //设置T0计数值高8位、低8位 if(++intcount==5) //若T0已中断5次数 { intcount=0; //重新计数 LED^=0xff; //输出相反 } }

3.参考实例接线方法

用8P数据线分别将CPU的P1口接到八位逻辑电平显示模块的JD1E5接口。

四、实验内容

(1)由P1口驱动8个LED,每隔0.25s,这8个LED分为两组,交替闪烁一次,即高四位亮低四位灭,0.25s后高四位灭低四位亮,如此循环下去。 (2)0.25s的间隔时间由定时器T1来实现。

20

实验10 A/D转换设计

一、实验目的

1.掌握A/D转换的基本原理。 2.学习A/D转换器件的使用方法

二、实验说明

本实验是用ADC0804将模拟量转换成数字量并输出,该芯片为8位A/D转换器, CS120VCC(VREF) RD219CLK R WR318DB0(LSB) CLK IN417DB1 INTR516DB2 ADC0804VIN+615DB3 VIN-714DB4 AGND813DB5 VREF/2912DB6 DGND1011DB7(MSB) 三、参考实例 C130pRP1U11912MHzXTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617VCC123456789RESPACK-8X1C230p18XTAL2R110 k9RSTC3GND20uF293031PSENALEEAVCCDB01DB12DB23DB34DB45DB56DB67DB78P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51INT0CSWRRDVCCVCC1234INT05810919ADCIN67CSRDWRU2R121kCSRDWRCLK ININTRA GNDD GNDVREF/2CLK RVIN+VIN-ADC0804VCCDB0(LSB)DB1DB2DB3DB4DB5DB6DB7(MSB)201817161514131211DB0DB1DB2DB3DB4DB5DB6DB756%R1410kRV1ADCINC4150pR131k1kGND GND 21 制作一个简易数字电压表

P0口接4位一体共阳极数码管,输出段码,P2口控制数码管的位选,P1口接ADC0804的数据线,P3口接ADC0804控制信号线。模拟电压由线性电位器POT-HG通过5V电压提供。

四、实验内容

设计相关程序,并用Proteus进行仿真

22

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机实验指导书(参考)(6)在线全文阅读。

单片机实验指导书(参考)(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/979595.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: