实验六单片机定时计数器实验
《单片机原理及接口技术》课程实验大纲
《单片机原理及接口技术》课程实验大纲课程名称:《单片机原理及接口技术》实验英文名称:《MCU principles and interface technologies》experiment课程性质:专业选修课程课程编号:0510085所属系部:机电工程学院总学时:14学时预备知识:电路、数字电子技术课程在教学计划中的地位作用:本课程是机械电子工程专业的一门重要专业选修课程。
目前单片机技术开发和应用水平已成为一个国家工业化发展水平的标志之一。
单片机原理及其应用已成为从事电子技术的工程技术人员必须掌握的基础理论和基本技能之一。
通过本课程的学习使学生实践上掌握单片计算机的基本组成、工作原理及常用接口技术,建立单片机系统整体概念,使学生具备单片机应用系统软、硬件开发的初步能力。
教学方式:理论与实践相结合教学的目的与要求:通过本课程的学习,使学生掌握单片机的硬件结构、MCS-51的指令系统、MCS-51汇编语言程序设计、MCS-51的中断系统、MCS-51的定时器/计数器、MCS-51的串行口、MCS-51单片机扩展存储器的设计、MCS-51扩展I/O接口的设计、MCS-51 与键盘、显示器的接口设计、MCS-51单片机与D/A转换器和A/D转换器的接口、MCS-51的功率接口、MCS-51的串行通信技术及其扩展接口。
进一步理解MCS-51单片机的开发装置、工作原理、编程方法,学会使用开发机进行程序。
课程教材:《单片机原理及接口技术》蔡美琴主编高等教育出版社参考书目:1.《单片机程序设计基础》周航慈主编北京航天航空大学出版社2. 《单片机原理及其接口技术》胡汉才主编清华大学出版社编写日期:2012年6月制定课程内容及学时分配:发光二极管显示各相状态。
要求:掌握步进电机控制系统的硬件设计方法;熟悉步进电机驱动程序的设计与调试,提高单片机应用系统设计和调试的能力。
正确连接电路,编写程序,调试运行。
实验一P1口亮灯实验一、实验目的1.学习P1口的使用方法;2.学习延时子程序的编写。
单片机计数器实验报告
计数器实验报告㈠实验目的1.学习单片机内部定时/计数器的使用和编程方法;2.进一步掌握中断处理程序的编程方法。
㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台5.信号发生器一台㈢实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。
㈣实验说明1.本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。
2.计数脉冲由信号发生器输入(从T0端接入)。
3.计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421码表示,个位用L8~L5的8421码表示4.将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动次数并显示㈤实验框图(见下页)程序源代码ORG 00000H LJMP MAINORG 001BH ;T0的中断入口地址AJMP MAIN1MAIN:MOV SP,#60HMOV TMOD,#15H ;设置T1做定时器,T0做计数器,都于方式1工作MOV 20H,#14H ;装入中断次数MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位MOV TL0,#00H计数器主程序框图中断返回恢复现场NY 是否到1秒?显示置T1定时常数INT _T1入口保护现场清T0计数值中断服务程序框图开 始置T0,T1模式及初始值设置初始常数开中断等 待MOV TH0,#00HSETB TR1 ;启动定时器T1SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断MAIN1:PUSH PSWPUSH ACCCLR TR0CLR TR1 ;保护现场MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH ;装入计数值高8位,50ms;允许T1中断DJNZ 20H,RETUNT ;未到1s,继续计时MOV 20H ,#14H;1s到重新开始SHOW: ;显示计数器T0的值MOV R0,TH0 ;读计数器当前值MOV R1,TL0MOV A,R1MOV B,#0AHDIV AB;将计数值转为十进制MOV C,ACC.3 ;显示部分,将A中保存的十位赋给L0~L3 MOV P1.0,CMOV C,ACC.2MOV P1.1,CMOV C,ACC.1MOV P1.2,CMOV C,ACC.0MOV P1.3,CMOV A,B ;将B中保存的各位转移到A中MOV C,ACC.3 ;将个位的数字显示在L4~L7上MOV P1.4,CMOV C,ACC.2MOV P1.5,CMOV C,ACC.1MOV P1.6,CMOV C,ACC.0MOV P1.7,CRETUNT:MOV TL0,#00H ;将计数器T0清零MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ时,L0~L7显示为15,结果正确,程序可以正确运行。
单片机定时器实验报告
一、实验目的1. 理解单片机定时器的工作原理和功能。
2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。
3. 学会使用定时器实现定时功能,并通过实验验证其效果。
二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。
51单片机内部有两个定时器,分别为定时器0和定时器1。
定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。
定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。
四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。
2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。
3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。
4. 编写定时器中断服务函数,用于处理定时器溢出事件。
5. 编写主函数,设置定时器中断,并启动定时器。
6. 编译并下载程序到单片机实验板。
7. 使用示波器观察定时器0的溢出信号。
五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。
单片机定时器实验原理
单片机定时器实验原理一、概述单片机定时器是单片机的重要组成部分,它能够实现定时控制、时间间隔生成等功能。
通过单片机定时器实验,可以更好地了解单片机的内部结构和工作原理,为进一步开发单片机应用系统打下坚实的基础。
二、实验目的1. 掌握单片机定时器的结构和原理。
2. 学会使用单片机定时器进行时间间隔控制。
3. 了解单片机定时器的应用范围和限制。
三、实验原理1. 单片机定时器的结构单片机定时器通常由一个计数器和一个控制逻辑组成。
计数器负责记录脉冲数,控制逻辑负责控制计数器的计数和复位。
单片机定时器通常采用可编程计数脉冲,可以实现任意时间间隔的生成。
2. 单片机定时器的原理单片机定时器的工作原理是基于计数器的计数。
当单片机接收到一个启动信号时,计数器开始计数,当计数达到预设的时间间隔时,单片机输出相应的信号或执行相应的操作。
通过改变计数器的预设值,可以改变时间间隔的长短。
3. 单片机定时器的应用单片机定时器在许多领域都有应用,如智能家居、工业控制、通信设备等。
在智能家居中,可以通过单片机定时器控制家电设备的开启和关闭;在工业控制中,可以通过单片机定时器实现生产线的自动化控制;在通信设备中,可以通过单片机定时器实现时间戳的生成和数据传输的时间控制。
四、实验步骤1. 准备实验器材和软件环境,包括单片机、定时器芯片、编程器、开发板等。
2. 连接实验设备,并调试确保连接正常。
3. 编写实验程序,并上传到单片机中。
4. 观察并记录实验结果,分析误差原因。
5. 根据实验结果,调整程序参数,进行多次实验,直到达到满意的效果。
五、实验注意事项1. 实验过程中要保持设备连接的稳定性,避免意外断开。
2. 编程和调试过程中要确保程序正确,避免误操作导致设备损坏。
3. 注意观察实验现象,及时记录实验数据,分析实验结果。
4. 实验结束后,要清理实验现场,确保设备复位。
六、实验结果分析通过实验,我们能够得到较为准确的时间间隔控制结果。
《单片机系统设计技术》实验指导
《单片机系统设计技术》实验指导书适用专业: 电气、自动化、信息等编写单位: 电气信息学院编写人: 曹 林审核人:审批人:批准时间:年月日目 录实验1 IO控制LED流水灯实验 (3)实验2 IO控制数码管动态扫描实验 (5)实验3 外部中断实验 (8)实验4 定时器应用控制实验 (10)实验5 UART实验 (12)实验6 键盘扫描输入编程 (14)实验7 UART与PC对话实验 (17)实验8 ADC数据采集实验 (19)实验1 IO控制LED流水灯实验1.实验目的1)、熟悉KEIL编程环境和调试环境。
2)、掌握单片机汇编语言和指令的用法。
3)、理解简单的IO控制程序,延迟子程序,并对其修改,使其功能改变。
2.实验设备硬件: PC 机,单片机教学实验开发平台;软件: KEIL集成开发环境、STC ISP程序下载软件。
3.实验内容使用P0口控制8个LED 进行流水灯显示。
4.实验预习要求和实验准备要求预习教科书关于单片机硬件架构内容、IO口的内容,特殊寄存器内容。
预习汇编程序编写、MCS-51指令表。
带上教科书、U盘、具备二进制和十六进制转换的科学计算器。
5.实验原理和步骤1)实验原理(1)实验原理图图1 P0口连接的8盏LED灯从图1中可以看出:如果需要把LED点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB上就是将电路板左上角LED和VCC短接起来;其二是P0.X口给出低电平,让电流从VCC开始流经限流电阻、LED后进入单片机的P0.X口,最后到单片机内部的地线上。
因此,简单地说就是在短接帽接好的前提下,向P0.X口写0则LED将点亮,写1则LED将熄灭。
图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、PORT0_1……PORT0_7。
2)实验步骤(1)启动KEIL集成开发环境,按照《KEIL使用方法》中描述步骤进行工程建立、汇编源程序文件添加。
单片机定时计数器实验
实验结果图
原程序
打开开关,小灯依次亮
修改一
修改二
利用开关。
修改三
小灯每隔200us亮依次
修改四
七、心得体会
通过这次实验,我学会了计数器的使用方法。学会了计数器程序的编写,定时器的使用方法和定时器程序的编写。做完这次实验后,我熟练了对修改程序的修改,掌握了各种语句的作用,通过修改程序得到了实验结果。
2、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转
三、实验仪器和条件
计算机
伟福实验箱(lab2000P)
四、实验内容与软件流程图
实验3-1 、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。
、外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。
实验三单片机定时/计数器实验
一、实验目的
1、学习计数器的使用方法。
2、学习计数器程序的器程序的编写。
5、熟悉汇编语言
二、实验说明
1、8051内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。
、流程图
、实验电路及连线
实验3-2 、用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转
、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
单片机原理应用实验指导书
《单片机原理与应用》课程实验指导书电子、机电及电气项目与自动化专业适用吴茂屈莉莉王飞编佛山科学技术学院二00 九年十月前言以往我校的单片机实验教案通常是使用启东DAIS 系列单片机微机仿真实验系统进行单片机实验教案的,DAIS 系统可以做二十多项实验,系统机构十分复杂,功能非常强大,但是在使用过程中也发现了一些不足的地方那个: 厂家为了技术保密,把核心电路都屏蔽了,我们不能了解实验系统的工作原理,另外系统庞大,不方便学生带回宿舍实验,不方便学生课外学习。
根据我校学生对单片机课程学习的需求, 我们在参考其他公司的产品的基础上,结合课程的实际情况,开发了适合学生入门学习的单片机学习板,FD-51 学习板,该学习板设置了包括LED数码管、LCD1602液晶、AD\DA转换器件等单元电路,可以做几十个单片机实验,而且本实验板我们是以配件的形式提供给学生,让学生自己焊接调试线路板。
学生不但可以学习软件编程技术,还可以学习硬件焊接及调试技术,可以更好地锻炼学生的动手操作能力。
目录系统介绍 (2)软件实验:实验一清零程序............. (4)实验二拆字程序.................... .. (5)实验三拼字程序.................... .. (5)实验四数据区传送子程序 (6)实验五查找相同数个数 (6)硬件实验:实验A 工业顺顺序控制 (7)实验B 简单IO口扩展实验 (8)实验一P1 口输出流水灯实验 (11)实验二P1 口输出交通灯实验 (11)实验三八段数码管显示实验 (12)实验四键盘实验.................. . (12)实验五遥控解码实验 ............. .. (12)实验六计数器实验..................... .. (13)实验七继电器控制实验 .................... (13)实验八定时器实验 (14)实验九单片机串行口通讯实验 (14)实验十电子时钟 (14)实验十一外部中断实验<急救车与交通灯) (15)实验十二AT24C02读写实验...... .......... . (15)实验十三93C46读写实验....... ........... (16)实验十四LCD1602字符型液晶控制显示实验 (16)实验十五LCD12864点阵型液晶控制显示实验 (17)实验十六A/D转换(数字电压表>实验 (17)实验十七D/A转换(波形发生器>实验 (18)实验十八计算机温度数据采集与处理 ............... . (19)系统介绍一、FD-51单片机学习板简介为了适应我校单片机课程教案的需要,我们在参考其他厂家学习板的基础上,再根据我校单片机课程教案大纲的要求,基于简单、使用的原则,开发了FD-51 单片机实验板。
单片机定时器实验报告
单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化121班 36 张礼一.实验目的掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。
二.实验仪器单片机开发板一套,计算机一台。
三.实验任务编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。
开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到 2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。
两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。
而U2的锁存使能端LE由P2.1控制,所以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。
当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。
汇编语言程序流程如图4-2:四.实验步骤:1.数码管的0~9的字型码表如下:2.参考图4-2所给的程序流程图编写实验程序。
(注:以下程序为两位60秒计数程序)#include sbit wei=P2^0; sbit duan=P2^1;char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int i,j,k,num,shi,ge; void delay(int a) {for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0;duan=1;P1=table[shi];duan=0;wei=1; delay(5);P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }void main() {TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; num=0; while(1) {delay(5);display(shi,ge); } }void T0_time() interrupt 1 {TH0=(65536-45872)/256; TL0=(65536-45872)%256; k++; if(k==20) { k=0; num++;if(num==60)num=0; shi=num/10; ge=num%10; } }3.实验接线,如图4-1。
单片机定时器的应用proteus仿真实验报告总结
单片机定时器的应用proteus仿真实验报告总结一、实验目的
本次实验旨在通过使用Proteus仿真软件,掌握单片机定时器的应用,了解定时器的工作原理和使用方法。
二、实验原理
单片机定时器是一种常用的计时和延时控制器,它可以在特定时间内
产生一个周期性的信号。
单片机定时器通常由一个计数器和一个比较
器组成。
计数器会不断计数,当计数值达到设定值后,比较器会发出
一个触发信号。
通过对比较器输出信号进行处理,可以实现各种延时
和周期性控制。
三、实验材料
1. Proteus仿真软件
2. 单片机模块
3. LED灯
4. 电阻
5. 电容
四、实验步骤
1. 打开Proteus软件,并新建一个电路图。
2. 在电路图中添加单片机模块、LED灯、电阻和电容等元件。
3. 连接电路图中各元件之间的线路。
4. 设置单片机定时器参数,并编写程序代码。
5. 进行仿真测试,并记录测试结果。
五、实验结果分析
在本次实验中,我们成功地使用了Proteus仿真软件进行了单片机定
时器的应用测试。
通过设置单片机定时器参数和编写程序代码,我们
成功地实现了对LED灯的周期性控制,达到了预期的效果。
六、实验总结
通过本次实验,我们深入了解了单片机定时器的工作原理和应用方法,并掌握了使用Proteus仿真软件进行单片机定时器测试的技能。
这对
于我们今后的学习和工作都具有很大的帮助。
数字电路 实验 计数器及其应用 实验报告
实验六计数器及其应用一、实验目的1.学习用集成触发器构成计数器的方法2.掌握同步计数的逻辑功能、测试方法及功能扩展方法3.掌握构成任意进制计数器的方法二、实验设备和器件1.+5V直流电源2.双踪示波器3.连续脉冲源4.单次脉冲源5.逻辑电平开关6.逻辑电平显示器7.译码显示器8.CC4013×2(74LS74)CC40192×3(74LS192)CC4011(74LS00)CC4012(74LS20)三、实验原理计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。
计数器种类很多。
计数器计数时所经历的独立状态总数为计数器的模(M)。
计数器按模可分为二进计数器(M=2n)、十进计数器(M=10n)和任意进制计数器(M≠2n、M≠10n)。
按计数脉冲输入方式不同,可分为同步计数和异步计数。
按计数值增减趋势分为:加法计数器、减法计数器和可逆(加/减)计数器。
1.用D触发器构成异步二进制加/减计数器图6-1是用四只D触发器构成的四位二进制异步加法计数器,它的连接特点是将每只D触发器接成T 触发器,再由低位触发器的Q端和高一位的CP端相连接。
若将图6-1稍加改动,即将低位触发器的Q端与高一位的CP端相连接,即构成了一个4位二进制减法计数器。
2.中规模十进制计数器、十六进制计数器(1)CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能。
当清除端CR为高电平“1”时,计数器直接清零;CR置低电平则执行其它功能。
当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3置入计数器。
当CR为低电平,LD为高电平时,执行计数功能。
执行加计数时,减计数端CP D接高电平,计数脉冲由CP U输入;在计数脉冲上升沿进行8421码十进制加法计数。
执行减计数时,加计数端CP U接高电平,计数脉冲由减计数端CP D 输入,表6-2为8421码十进制加、减计数器的状态转换表。
单片机实验——精选推荐
实验一认识实验一.实验目的1.了解仿真器的硬件结构与接线。
2.了解MCS-51单片机复位功能及复位后的内部状态。
3.通过示例程序的键入与执行,学习仿真器的使用与操作方法。
二.实验内容1.对照实验指导书,查对实验机具体接线。
2.按照开发系统的使用方法,分别查看复位后PC、SP、DPTR等特殊功能寄存器及片内、片外RAM的内容。
3.熟悉开发器的使用,将下面程序键入实验机。
ORG 2000H2000 74AA MOV A,#0AAH2002 75F0BB MOV B,#0BBH2005 E5F0 MOV A,B2007 78CC MOV R0,#0CCH2009 E8 MOV A,R0200A 80FE SJMP $4.程序键入后,检查各存储单元所储机器码是否正确如有误,重新键入,达到修正的目的。
5.单步执行示例程序,逐步检查执行结果,核查与分析结果是否相符,直到执行完最后一条指令。
6.练习连续执行示例程序,检查执行结果,核查与分析结果是否相符。
7.自己在示例程序中插入一条指令,执行并查看结果,然后删除,熟悉插入/删除操作。
8.将示例程序移到另外一个存储区,执行并查看结果,熟悉程序块移动操作。
三.实验预习要求1.认真阅读指导书的相关内容,熟悉开发系统的各种操作。
2.实验前应写出规定操作任务的具体操作方法步骤。
四.思考题1.MCS-51单片机怎样实现内部复位,画出一种复位电路。
2.PC、SP、P0、P1、P2、P3复位状态是什么?各有何意义?3.示例程序中最后一条指令SJMP $的作用是什么?如果取掉这一条指令,程序的执行将发生什么变化?4.实验机监控系统怎样实现程序“单步执行”功能?五.实验报告要求1.按实验顺序,写出实验操作的方法步骤。
2.写出实验中所遇到的问题与解决过程。
写出思考题的答案。
实验二建立数据区、数据块传送一.实验目的1.进一步熟悉实验机操作,练习程序调试方法。
2.理解并掌握建立数据区与数据块传送程序。
实验六定时器计数器应用实验报告
实验六定时器计数器应用实验报告一、实验目的本实验的目的是通过对定时器计数器的应用实验,加深对定时器和计数器工作原理的理解,掌握定时器的使用方法,并能灵活应用到实际工程中。
二、实验原理定时器是一种常用的计时设备,它可以在微处理器或微控制器系统中用于各种计数、计时和频率测量应用。
我们所面对的实验中使用的定时器是软件定时器,其工作原理是通过编程方式配置定时器的时钟源和计数器的计数范围,然后在主程序中通过中断或轮询的方式来读取计数器的值,从而实现不同的定时器功能。
计数器是一种用于计数的设备,它可以对外部信号的频率进行计数。
在本实验中,我们使用计数器来计算外部信号的脉冲数,并将计数结果显示出来。
三、实验材料1. STC89C52 单片机开发板2. 4位数码管3. 杜邦线若干4. 外部信号发生器四、实验步骤1. 连接电路图如下所示:(此处省略电路图)2. 打开 Keil μVision 软件并新建一个工程,选择合适的单片机型号。
3. 在主程序中初始化定时器和计数器,设置适当的时钟源和计数范围。
4. 设置外部中断,用于触发计数器开始计数。
5. 在中断服务程序中编写计数器处理逻辑,获取计数值并进行相应的操作。
6. 在主循环中,根据需求配置定时器,比如实现不同的定时功能,或者将计数结果显示在数码管上。
7. 编译、烧录程序到单片机开发板上,并进行实验验证。
五、实验结果经过实验,我们成功地实现了定时器计数器的应用功能。
通过设置不同的计数范围和外部触发条件,我们能够准确地计算出外部信号的脉冲数,并将计数结果显示出来。
同时,我们还实现了不同的定时功能,比如周期性触发中断、定时器中断延时等。
六、实验总结通过本次实验,我们深入理解了定时器和计数器的工作原理,并掌握了定时器的使用方法。
定时器计数器在实际工程中具有广泛的应用,比如用于频率测量、脉冲计数、定时触发等。
掌握了定时器计数器的使用,对于我们的工程开发和项目实施都具有重要的意义。
单片机小实验
1、用位操作和总线操作两种方法完成以下题目1.熟练建立KEIL工程2.点亮第一个发光管.3.点亮最后一个发光管4.点亮1、3、5、75.点亮二、四、五、六6.尝试让第一个发光管闪烁7.尝试设计出流水灯程序2、1. 第一个发光管以间隔200ms闪烁2. 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
3. 8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。
4. 用8个发光管演示出8位二进制数累加过程。
5. 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms 间隔全部闪烁5次。
重复此过程。
6. 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后5重复整个过程。
7. 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。
3、1、利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。
2、利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。
3、同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,1k(hz)的方波。
4、用定时器以间隔500MS在6位数码管上依次显示0、1、2、3….C、D、E、F,重复。
4、1. 利用动态扫描方法在六位数码管上显示出稳定的654321.2. 用动态扫描方法和定时器1在数码管的前三位显示出秒表,精确到1%秒,即后两位显示1%秒,一直循环下去。
3. 利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”。
单片机实验报告(相当不错,有具体实验结果分析哦)
学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。
2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
单片机原理实验报告
实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。
二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。
三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。
(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。
这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。
(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。
器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。
此时选择 SST 公司的 SST89E554RC。
(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。
选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。
(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。
Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。
保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。
(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。
此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。
在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。
单片机实验报告
目录一、实验一 (1)二、实验二 (7)三、实验三 (11)四、实验四 (15)实验一定时/计数器验证实验一、实验目的熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时;二、实验设备及器件IBMPC机一台PROTEUS硬件仿真软件KeilC51;三、实验内容用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始;四、实验要求要求采用Proteus软件实现上述实验;五、实验步骤1.打开ProteusISIS编辑环境,按照表1-1所列的元件清单添加元件;元件全部添加后,在ProteusISIS的编辑区域中按图1-1所示的原理图连接硬件电路;图1-1电路原理图2.根据参考程序绘出流程图,并辅以适当的说明;流程图如图1-2所示:图1-2程序流程图3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“SourceGroup1”中;在“OptionsforTarget”对话窗口中,选中“Output”选项卡中的“CreateHEXFile”选项和“Debug”选项卡中的“Use:ProteusVSMSimulator”选项;编译汇编源程序,改正程序中的错误;4.在ProteusISIS中,选中AT89C51并单击鼠标左键,打开“EditComponent”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“ProgramFile”栏中,选择先前用Keil生成的.HEX文件;在ProteusISIS的菜单栏中选择“File”→“SaveDesign”选项,保存设计,在ProteusISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“UseRemoteDebugMonitor”选项,以支持与Keil的联合调试;5.在Keil的菜单栏中选择“Debug”→“Start/StopDebugSession“选项,或者直接单击工具栏中的“Debug”→“Start/StopDebugSession”图标,进入程序调试环境;按“F5”键,顺序运行程序;调出“ProteusISIS”界面可以看到7段数码管显示从0~59s的计数值,每个数值显示1s,如图1-3所示;图1-3程序运行结果六、实验程序SECOND EQU 30HCOUNT EQU 31HORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV SECOND,00HMOV COUNT,00HMOV DPTR,TABLECLR AMOV P0,AMOV P2,AMOV TMOD,00HMOV TH0,65536-50000/256MOV TL0,65536-50000MOD256SETB TR0SETB ET0SETB EAMOVIE,82HLJMP $INT_T0:MOV TH0,65536-50000/256MOV TL0,65536-50000MOD256INC COUNTMOV A,COUNTCJNE A,20,I2MOV COUNT,00HINC SECONDMOV A,SECONDCJNE A,60,I1MOV SECOND,00HI1: MOV A,SECONDMOV B,10HDIV ABMOVC A,A+DPTRMOV P0,AMOV A,BMOVC A,A+DPTRMOV P2,AI2: RETITABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND七、思考题1.罗列一下Proteus软件的能带给我们的好处,指出一点最能帮助你的地方;使用Proteus软件能使我们方便的搭建电路,同时在没有元器件的情况下进行便于仿真,方便我们在将程序写入单片机前确认运行是否正确,同时可在采购器件之前即可开始开发产品,而不必等到器件采购完后搭建电路才进行程序调试;2.用Proteus界面中的播放键运行仿真与KeilμVision4的环境中联调运行它们两者的区别在什么地方3.用Proteus界面中的播放键运行仿真仅可以观察运行结果,即程序运行在硬件表面上的表现;而联调的时候可以再Keil软件里查看各寄存器和存储器的状况,即硬件的内部情况;4.Keil软件软件仿真与Proteus的仿真对比;使用Proteus仿真可从硬件的角度观察仿真结果,使仿真结果更加形象直观,使我们可从硬件运行状态清楚的判断运行结果是否正确;而在Keil环境中则是从程序的角度通过观察程序中数据的变化来观察仿真结果,需要对程序运行结果充分了解;八、实验总结及相关问题通过本次实验了解了Ptoteus软件的使用方法,以及在掌握了Keil的使用方法下,学会了Proteus与Keil软件联调的方法;在用Proteus中由于忽略了要在总线处放置网络标号导致联调失败,最后通过观察发现数码管引脚电平无变化发现此问题,放置网络标号后运行仿真时数码管引脚电平发生变化可是数码管却没有变亮,经过多次检查接线,未发现接线错误后,觉得可能是软件本身错误,故将总线及数码管周围硬件线路重新绘制一遍后再次运行仿真及可得到图1-3的结果;实验二单片机I/O口控制实验一、实验目的利用单片机的P1口作IO口,使同学学会利用P1口作为输入和输出口;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮;2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭P1.7接按键,按下时LED亮,不按时LED灭;四、实验要求学会使用单片机的P1口作IO口,如果有时间同学也可以利用P3口作IO口来做该实验;五、实验步骤1.用导线把A2区的J61接口与D1区的J52接口相连;原理如图2-1所示;图2-1实验二原理图2.先编写一个延时程序;延时程序见程序1子程序DELAY;3.将LED轮流亮的程序编写完整并使用TKStudyICE调试运行;LED轮流亮程序见程序1;调试运行结果:D1区LED轮流亮;4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连;5.编写P1.7控制LED的程序,并调试运行;按下K1看是否全亮;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全灭;6.A2区J61接口的P1.7与D1区的J54的SW1相连;然后再使用TKStudyICE运行程序,查看结果;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全亮;六、实验参考程序程序1:ORG 0000HLJMP MAINORG 0100HMAIN: MOV A,0FFHCLR CMAINLOOP:CALL DELAYRLC AMOV P1,ASJMP MAINLOOPDELAY: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPRETEND程序2:ORG 000HLJMP MAINORG 0100HMAIN: JB P1.7,SETLEDCLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP MAINSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MAINEND七、实验思考题1.请同学思考一下,想出几个实现以上功能的编程方法;程序1可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位后输出至P1口;程序2可在判断P1.7高低电平后根据判断结果直接将80H或7F直接送P1口而不必逐位进行位操作;2.请同学再思考一下,第二个程序中如果使用KEY1作为外部中断控制LED的亮和灭时,程序应如何修改;此时将KEY1接/INT0口,在主程序中开启外部中断设置外部中断触发方式,通过中断服务子程序控制LED亮灭;程序如下所示:ORG 000HLJMP MAINORG 0003H ;中断服务程序LJMP SETLEDMAIN: MOV SP,40HSETB ET0 ;开外部中断CLR IT0 ;设置为电平触发SETB EACLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP CLRLEDSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6RETIEND八、实验总结及相关问题通过本次实验掌握了使用TKStudyICE进行硬件仿真调试的方法,在设置仿真器驱动程序声明时对C:\Keil目录下的Tools.ini文件添加描述时,由于添加的路径错误导致无法进行硬件仿真调试,修改为正确路径后方可在DEBUG窗口中的Use选项中找到对应的选项;使用TKStudyICE进行硬件仿真调试相比本学期的电子系统设计中用到的调试方法更快捷,使用更方便;与此同时,通过本次实验对单片机的I/O控制有了更深入的了接,同时加深入对单片机I/O编程的理解;实验三串转并I/O口实验一、实验目的熟悉并掌握串转并的I/O口扩展方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.写程序,通过单片机的P1口控制74HC164的串行输入端口,实现串并转换;2.验证串并转换数据的正确性;四、实验要求熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源;表3-174HC164真值表五、实验步骤1.短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10~P13对应相连CLK对P10等等;如图3-1所示;图3-1实验三原理图2.运行编写好的软件程序,完成一次串并转换;实验程序见实验参考程序;2.使用C2区的逻辑笔或D1区的J52接口LED指示灯测试并行输出数据Q0~Q7数据的正确性;调试运行结果:通过观察LED的亮灭情况可判断完成一次串并转换,且转换结果正确无误;六、实验参考程序CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV R4,08HSLCHG: RLC AMOV DINA,CSETB CLKNOPCLR CLKNOPDJNZ R4,SLCHGSJMP$END七、实验思考题参考图3-2电路图,尝试编写软件程序,实现8位LED流水灯的控制;图3.2实验原理图可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位;程序如下所示:CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 000BH ;定时器0中断服务程序LJMP SLCHGMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV TMOD,01H ;定时器0工作方式1MOV TH0,18H ;送2ms时间常数MOV TL0,0FCHSETB TR0 ;开中断SETB ET0SETB EASJMP $SLCHG: MOV TH0,18HMOV TL0,0FCHRLC AMOV DINA,CSETB CLKNOPCLR CLKRETIEND八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验对串并转化程序的编写有了一定了解,通过编写流水灯程序加深了对单片机串并口的了解;实验四继电器控制实验一、实验目的加深理解继电器的工作原理和特点,掌握利用单片机的IO口控制继电器的一般方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.利用D1区的拨动开关和LED,学习继电器的工作原理和特点;2.编写一段程序,用P1.0口控制继电器,继电器控制LED的亮和灭,COM与CLOSE连通时,一盏LED亮;不连通时该LED灭;COM与OPEN连通时,另一盏LED亮,不通时该LED灭;四、实验要求学会继电器的使用和利用单片机的IO口控制继电器的方法;五、实验步骤图4-1继电器驱动控制电路图1.用短路帽短接JP7,使用导线把D1区J54接口的SW1与C7区J9接口的KJ任意一根针相连接;2.使用导线把D1区J52接口的LED1、LED2与C7区J103接口的OPEN1,CLOSE1分别相连,另外C7区J103接口的COM1接地GND;3.接好线后,同学可以拨动D1区的SW1拨动开关,观察现象拨到1时LED2亮,拨到0时LED1亮,并得出结论;运行结果:拨到1时LED2亮,拨到0时LED1亮,说明每拨动一次开关改变一次继电器的状态;4.然后把C7区J9接口的KJ改接到A2区的J61接口的P10;再编写一个程序程序参考实验二,使P1.0口延时一段时间后改变电平值,来控制继电器的开关;实验程序见实验参考程序;调试运行结果:两个LED交替变亮,继电器状态不断改变;六、实验参考程序ORG 0000HLJMP MAINORG 0100HMAIN: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPCPL P1.0SJMP MAINEND七、实验思考题1.请同学思考一下,改由OPEN2、COM2、CLOSE2时本实验如何进行;同使用OPEN1、COM1和CLOSE1时连接方法类似,把D1区J52接口的LED1、LED2与C7区J103接口的OPEN2,CLOSE2分别相连,另外C7区J103接口的COM2接地GND即可;2.请同学再思考一下,继电器的用途,并举例说明;继电器是一种电控制,是当输入量激励量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器;它具有又称输入回路和被控制系统又称输出回路之间的互动关系;通常应用于自动化的控制中,它实际上是用小电流去控制大电流运作的一种“自动开关”;故在电路中起着自动调节、安全保护、转换电路等作用;按照其工作原理可有以下应用:电磁继电器固体继电器温度继电器舌簧继电器时间继电器高频继电器极化继电器其他类型的继电器八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验了解了继电器的控制方法;对继电器这一器件有了一定了解;。
定时器实验报告
定时器实验报告引言定时器是现代电子设备中常见的一种功能模块,它可以提供精确的时间计量和控制。
本实验旨在通过对定时器的使用和调试,深入了解定时器的工作原理和应用。
一、实验目的本次实验的主要目的有三点:1. 了解定时器的基本原理和功能;2. 学会使用定时器进行时间计量和控制;3. 掌握定时器在电子设备中的应用。
二、实验装置和器材1. 单片机开发板;2. 电源;3. 连接线。
三、实验原理定时器是一种基于震荡电路和计数器的电子模块,通过内部的晶振或外接的时钟信号驱动,能够按照设置的时间间隔产生特定的脉冲或控制信号。
四、实验操作步骤1. 将开发板上的定时器模块与电源和单片机连接好;2. 在代码中设置定时器的工作模式和计数器初值;3. 运行程序,观察定时器是否正常工作;4. 尝试调整定时器的工作参数和配置,观察其对输出信号的影响。
五、实验结果与分析在本次实验中,经过不断的尝试和调试,我们成功实现了以下几个功能:1. 使用定时器生成1秒的周期信号,并控制LED灯的闪烁。
通过观察LED灯的亮灭状态,我们可以直观地判断定时器的工作是否正常。
2. 设定定时器的计数器初值为10,并在每次触发计数器溢出时输出一个特定的脉冲信号。
通过示波器测量输出信号的时间间隔,我们可以验证定时器的精度和稳定性。
3. 调整定时器的工作参数,如工作模式、计数器分频倍数等,观察对输出信号的影响。
我们发现不同的参数设置会导致输出信号的频率、占空比等发生变化,进一步验证了定时器的灵活性和可调性。
六、实验总结通过本次实验,我们对定时器的基本原理和使用方法有了更深入的了解。
定时器作为一种常用的电子模块,广泛应用于各种电子设备中,如计时器、时钟、PWM信号发生器等。
掌握定时器的使用技巧,可以为我们在电子设备的设计与开发中提供有力的支持。
实验中我们发现,定时器的性能主要受到两个因素的影响,即晶振或时钟信号的精度和定时器的配置参数。
在实际应用中,我们需要根据具体需求选择合适的硬件和适当的软件设置,以保证定时器的稳定性和精确性。
单片机定时器-计数器实验总结
单片机定时器-计数器实验总结单片机定时器/计数器实验总结篇一:单片机实验之定时器计数器应用实验一一、实验目的1、掌握定时器/计数器定时功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Prteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二、设计要求1、用Prteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P1.0口线上接示波器观察波形。
2、用Prteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P1.1口线上接示波器观察波形。
三、电路原理图六、实验总结通过这次实验,对定时器/计数器的查询工作方式有了比较深刻的理解,并能熟练运用。
掌握定时器/计数器的中断、查询使用方法。
对于思考题能够运用三种不同思路进行编程。
七、思考题1、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波。
答:程序见程序清单。
四、实验程序流程框图和程序清单1、以查询方式工作,在P1.0 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #02H MV TH0, #9CH MV TL0, #9CH SETB TR0 LP: JNB TF0, LP CLR TF0 CPL P1.0 AJMP LP END2、以中断方式工作,在P1.1 RG 0000H START: LJMP MAIN RG 000BH LJMP TTC0 RG 0100H MAIN: MV TMD, #02H MV TH0, #88H MV TL0, #88H SETB EA SETB ET0 SETB TR0 HERE: LJMP HERE RG 0200H TTC0: CPL P1.1 RETI END3、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F6H MV TL0, #14H LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 MV TH0, #0F6H MV TL0, #14H CLR TF0 CLR TR0 CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F0H MV TL0, #0CH SETB TR0 LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 CLR TF0 MV TH0, #0F0H MV TL0, #0CH CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #00H LP1: MV TH1, #0F9H MV TL1, #18H SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CPL P1.0 MV TH1, #0F6H MV TL1, #14H LP3: JNB TF1, LP3 CLR TF1 CPL P1.0 LJMP LP1 END五、实验结果(波形图)篇二:单片机实验-定时器计数器应用实验一定时器/计数器应用实验一一、实验目的和要求1、掌握定时器/计数器定时功能的使用方法。
定时计数器实验-单片机
单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。
二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。
因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。
❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE:门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
实验指导书-风标电子最终版
七、点击“下一步”,安装驱动。
八、安装完成。
九、在硬件管理器里面将看到安装好的硬件
14
十、WWISP 安装完成后,桌面出现
快捷方式,点击进入后系统会自动
识别器件型号,也可以手动选择对应的单片机类型。
十一、点击“打开文件(Flash)”按钮找到 HEX 文件,然后点击“写 Flash”按钮,程序将 烧录到 MCU 当中。对于其它的功能,也可以进行操作。如:先选取“擦除芯片”、“编程 Flash”, 然后点击“自动编程”,刚系统会自动依次进行“擦除芯片”、“编程 Flash”的操作。
12
四、系统会自动弹出找到新的硬件向导,如下图所示:
五、选择“从列表或指定位置安装(高级)(S)”选项,并点击“下一步”。 六、选择“在这些位置上搜索最佳驱动程序”和“在搜索中包括这个位置”,并浏览到 WWISP 的安装目录下,默认的目录是 C:\Program Files\Windway Technologies\WWISP,具体的设置 如下图所示:
图 1-7 创建一个新文件
图 1-8 输入程序并保存文件
4
5.选择“Project”-“Targets,Groups,Files„”,选择“Groups/Add Files”标签,首先点击 下边窗口中的“Source Group 1”,然后选择下边的“Add Files to Group„”,在接下来的窗口 中,首先选择你需要加入的文件的后缀名(默认是.c,我们可选择“Asm Source file,即后缀 为.a”)。
2
图 1-3 创建一个新工程
3.工程保存后会弹出来一个器件选择窗口,这里需要选择单片机芯片类型。器件选择的目 的是告诉 µVision2 最终使用的 80C51 芯片的型号是哪一个公司的哪一个型号,因为不同型 号的 51 芯片内部的资源是不同的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)、实验线路连接 (课内完成)
(3)单片机输入输出汇编程序设计与修改 (课内完成 )
修改程序,使用定时器T1实现125ms定时
(4)单片机输入输出C51程序设计与修改 (课外完成)
修改程序,使用定时器T1实现125ms定时
(5)修改汇编和C51程序,移植到学习板 (课内完成)
学习板发光二极管送0亮,实验箱送1 亮,因为要求闪烁,故而可以忽略此 处电路不同。
TCON:用于控制定时器的启动与停止,中断标志。
88H
D7 D6 D5 D4 D3 D2 D1 D0
T C O N TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
位地址 8F 8E 8D 8C 8B 8A 89 88
TFx:
定时器启停和标志
外部中断标志和触发方式
0:无 Tx中断(硬件复位)
假设需要的计数值为N,则应装入的计数初值为
: X=M-N
(M :模数,为216、213、28、N :需要的计数值)
定时方式的初值计算:
假设需要的需要的定时时间为T,则应装入的计数 初值为:
TC MT/T 计数
6、定时/计数器的初始化
可编程器件在使用之前需要进行初始化。对定时/计数器而言需:
第一要能正确写入控制字; 第二能进行计数初值的计算。
实验六 单片机定时/计数器实验
一、实验目的
1、熟悉51单片机内部定时/计数器的功能与特性 2、掌握汇编语言定时/ 3、掌握C语言定时/
二、实验器材
1、计算机1台。 2、单片机实验箱1台 3、TKS仿真器 1台 4、串口通讯线 1根 5、单片机学习板 1块
三、实验原理 1、定时/计数器的结构
2、定时器控制寄存器TCON
M1M0:T/C工作方式定义位。
4、定时/计数器的工作方式
T MOD GATE C/ T M1 M0 GATE C/ T M1 M0
M1 M0 工作方式
方式说明
0
0
0
13位定时/计数器
0
1
1
16位定时/计数器
1
0
2
可自动重装入的8位定时/计数器
1
1
3
T0分为2个8定时器,T1无此方式
5、定时/计数初值的计算方法 计数方式的初值计算:
修改以上程序,移植到学习板(课内)
1、定时器实验1: 利用定时器T0实现P1.0输出 周期为250ms方波,让一个发光二极管闪烁。
(1)寄存器设置及初值计算 (课内完成)
Ø若要产生周期为250ms的方波,只要每125ms将信号的幅
值由0变到1或由1变到0即可,可采用取反指令CPL来实现
。为了提高CPU的效率,可采用定时中断的方式,每
C/T 1
C/T 0
四、实验内容 1、定时器实验1: 利用定时器T0实现P1.0输出周期为 250ms方波,让一个发光二极管闪烁。(课内) 2、定时器实验2: 在实验箱显示器上显示左移的数字 “8”,要求每过1秒“8”字左移一位,循环不断。(课内 ) 3、计数器实验1:CT0计数满3之后(即输入了3个外部脉 冲之后),使显示器上显示字符“8”左移一位。如此不断 重复。(课内) 4、程序移植实验
一般步骤
(1)确定工作方式,即对TMOD寄存器进行赋值。 (2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中。 (3)根据需要,置位ETx允许T/C中断。 (4)置位EA使CPU开中断(需要时)。 (5)置位TRx启动计数。
例: 若单片机的晶振频率为6MHz,要求定时/计数器 T0产生100ms的定时,试确定计数初值以及TMOD 寄存器的内容。
1:有 Tx溢出中断
TRx: 0:停 Tx计数 1:启 Tx计数
3、定时器工作方式寄存器TMOD
TMOD:用于设置T/C的工作方式。
89H
T MOD GATE C/ T M1 M0 GATE C/ T M1 M0
C/T 1
C/T 0
GATA:定时/计数器启动控制位。
C/ T =1时为计数方式 =0时为定时方式
RES CRYSTAL BUTTON
参数
30pF 22uF 10mA 10kΩ 12Mhz
备注
Ø输入输出实验仿真图
将移植到学习板程序下载到本系统运行,可以观察到L1闪烁
2、定时器实验2: 在实验箱显示器上显示 左移的数字“8”,要求每过1秒“8”字左移 一位,循环不断。
(1)寄存器设置及初值计算 (课内完成)
125ms产生一次中断,在中断服务程序中将输出信号取反
即可。
125ms 125ms
Ø定时器T0的中断入口地址为000BH。
Ø频率是6MHz,机器周期为2uS
T0采用定时方式1 ①计算,定时初值:
初值X1 =65536-125*1000/2 =0BDCH
② 确定TMOD方式字:
M1M0=01H、 C / T =0、GATE=0 TMOD=00000001B=01H
Ø频率是6MHz,机器周期为2uS,16位的定时器最大定时
时间仅为Tmax=2×65536=131.072mS。如果要求每过1秒
左移“8”字一位,就必须进行定时时间扩展。
ØT0每隔100ms中断一次,中断10次即实现了1秒的定时。
T0采用定时方式1 ①计算,定时初值:
TC= 216-100×103/2
=65536-50000=15536
=3CB0H
设置TMOD方式字:
对于T0来说:M1M0=01、 C / T = 0 、GATE=0 。
由于T1不用,可任意设置,现取为全0。 89所H 以: TMOD=0000,0001B=01H
TMOD GATE C/ T M1 M0 GATE C/ T M1 M0
解: 当晶振频率为6MHz时,在不扩展计数器情况下产生 100ms的定时只能采用方式1(16位定时器)。
计数初值:TC=M-T/T计数
T计数=2μS
方式0时:Tmax=213×2μS=16.384 mS 方式1时:Tmax=216×2μS=131.072 mS 方式2、3 时:Tmax=28×2μS=0.512 mS
学习板晶振频率12Mhz,实验箱晶振 6Mhz,故而在初值相同情况下,学 习板上定时时间是62.5ms,直接下载 实验箱原程序led闪烁更快。
(6)、Proteus仿真 (课外完成)
Ø仿真系统元器件参数:
器件名称 单片机 电容 电解电容
发光二极管 电阻 晶振 按键
英文名称 AT89C52
CAP CAP-ELEC LED-BLUE