实验报告二、单片机定时器的综合应用

合集下载

单片机定时器实验报告

单片机定时器实验报告

一、实验目的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产生一个溢出信号。

单片机实验报告

单片机实验报告

单片机实验报告学院:姓名:学号:指导老师:目录第一章实验内容、目的及要求 (2)一、内容 (2)二、目的及要求 (3)第二章实验 (3)实验一数字量输入输出实验 (3)实验二定时器/计数器实验 (4)实验三A/D、D/A转换实验 (11)实验四串行通信设计 (20)第三章实验体会 (28)第一章实验内容、目的及要求一、内容实验一数字量输入输出实验阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目。

实验二定时器/计数器实验阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.3 定时/计数器实验”基本实验项目。

提高部分:定时器控制LED灯由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。

P1口的P1.0-P1.7分别接八个发光二极管。

编写程序模拟时序控制装置。

开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。

实验三A/D、D/A转换实验阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“4.3 A/D转换实验”项目(P64)和“4.4 D/A转换实验”项目。

提高部分:(要求:Proteus环境下完成)小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A 转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。

实验四串行通讯实验阅读、调试C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.7 串口通讯实验”项目。

(要求:实验仪器上完成)提高部分:(要求:Proteus环境下完成)利用单片机实验系统,实现与PC机通讯。

功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。

单片机定时器实验报告

单片机定时器实验报告

单片机定时器实验报告
单片机定时器实验报告
简介
•实验名称:单片机定时器实验
•实验目的:掌握单片机中定时器的工作原理及使用方法•实验设备:单片机开发板、电源等
实验内容
1.单片机定时器的基本概念和原理
2.单片机定时器的分类和特点
3.实验步骤和流程
–步骤1:搭建实验电路
–步骤2:编写单片机程序
–步骤3:下载程序到单片机
–步骤4:观察定时器的工作情况
4.实验结果和分析
实验结果
•在实验过程中,我们成功搭建了单片机定时器实验电路,并编写了相应的程序。

通过下载程序到单片机,观察到定时器按照预设
的时间间隔产生中断,并执行相应的任务。

•实验结果表明,我们掌握了单片机定时器的使用方法,可以实现定时功能。

实验分析
•单片机定时器是一种重要的计时和控制设备,广泛应用于各种电子设备中。

•通过本次实验,我们深入了解了单片机定时器的工作原理和使用方法,对于日后的电子设计和开发有着重要的意义。

实验总结
•通过本次实验,我们学习了单片机定时器的基本知识,掌握了单片机定时器的使用方法,并成功实现了定时功能。

•在实验过程中,我们发现了一些问题,并通过调试和修改程序进行了解决。

这对我们提高了动手实践和问题解决能力有很大帮助。

•通过本次实验,我们对于单片机定时器有了更深入的了解,为今后的学习和应用打下了坚实的基础。

参考资料
•《单片机原理与应用》
•单片机实验教材及课件。

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告简介:定时器是一种用来产生、计数和处理时间信号的计时装置。

在数字电路中,定时器主要分为内部定时器和外部定时器两类,内部定时器是在单片机内部实现的,外部定时器则是通过外部电路实现的。

计数器则是一种用来计数的电子元件,根据不同的使用场合和要求,计数器可以分为多种类型。

在嵌入式系统中,定时器计数器应用广泛,例如在时钟、延时、计数等方面都有很大的作用。

实验目的:1. 学习定时器和计数器的基本原理及应用。

2. 熟悉定时器和计数器在单片机中的编程方法。

3. 掌握通过定时器和计数器实现延时和计数功能的方法。

实验器材:1. STM32F103C8T6开发板2. ST-LINK V2下载器3. 电脑实验内容:一、实验1:使用定时器和计数器实现延时功能1. 在Keil C中新建一个工程,并编写以下程序代码:```#include "stm32f10x.h"void TIM2_Int_Init(u16 arr,u16 psc){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure ;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);TIM_TimeBaseStructure.TIM_Period = arr;TIM_TimeBaseStructure.TIM_Prescaler=psc;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode _Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM2, ENABLE);}void TIM2_IRQHandler(void){if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {TIM_ClearFlag(TIM2, TIM_FLAG_Update);GPIO_WriteBit(GPIOB,GPIO_Pin_12,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)));}}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);TIM2_Int_Init(9999,7199);while (1);}```2. 将STM32开发板连接到电脑,并下载程序到开发板中。

定时器计数器应用实验报告

定时器计数器应用实验报告

实验名称:定时器/计数器应用实验日期:见自己实验数据得分:同组人:不填指导教师:姓名一、实验目的1.掌握51单片机定时器/计数器的基本结构、工作原理和工作方式。

2.掌握定时器/计数器T0、T1工作在定时器和计数器两种状态下的编程方法。

3.学习和掌握定时器/计数器工作在定时器和计数器两种状态下,分别采用中断和查询方式控制的编程方法。

4.熟练掌握利用软件扩展定时器/计数器量程的原理和编程技巧。

二、实验设备PC机一台,单片机实验系统一套三、实验内容设定时器/计数器工作于定时方式,定时时间为100ms,每当100ms到申请中断。

每10秒种将A的内容循环左移一次,送P1口显示。

四、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1。

它们有两种工作状态,可以工作在定时方式和计数方式;定时是对内部的机器周期进行加法计数,计数是对外部输入的计数脉冲进行加法计数,T0的外部计数脉冲从P3.4引脚输入,T1的外部计数脉冲从P3.5引脚输入;计数满产生溢出,硬件使定时器/计数器T0、T1的中断请求标志TF0、TF1置位;如果定时器/计数器允许中断,则可以采用中断方式进行溢出处理,而如果定时器/计数器不允许中断,则可以采用查询方式进行溢出处理。

若定时器/计数器T0工作在定时状态,在实验系统的晶振频率f OSC=12MH Z时,T0工作在方式1,16位最大计数量程,最长的定时时间是65mS多,要想实现10S定时,必须对T0进行量程扩展。

实验中采用R7进行软件扩展,即R7对T0定时50mS进行计数,计数200次就是定时10S。

每10S对累加器A进行一次左移,然后送P1口显示。

实验电路连接图如图1所示。

图1 定时器/计数器应用实验接线图根据此实验原理编写的实验源程序清单见附页。

五、实验步骤1.在E盘下为工程建立文件夹姓名3;2.新建工程项目文件姓名3.uv2,保存在文件夹姓名3中,并为工程选择目标器件为AT公司的AT89S51;3.编辑源程序,建立源文件姓名3.ASM,保存在文件夹姓名3中;4.将源文件姓名3.ASM添加到工程项目组中;5.设置调试环境,选择调试模式为Proteus软件仿真;6.运行程序,根据设计的数据记录表格进行实验,观察发光管显示的状态,并记录实验现象;7.实验数据经过实验指导教师检查正确后,实验结束。

51单片机定时器实验报告

51单片机定时器实验报告

51单片机定时器实验实验内容:实验内容:(1)编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。

C语言程序#include<reg52.h>#define uint unsigned int#define ucahr unsigned charsbit FM=P0^0;void main(){TMOD=0x01;TH0=(65535-50000)/256;TH0=(65535-50000)%256;EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1);}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256; FM=~FM;}汇编程序ORG 0000HJAMP MAINORG 000BHLJMP INT0_INTORG 0100HMIAN: SETB EASETB ET0AJMP $INT0_INT:MOV R2,#0FAHMOV R3,#0C8HDJNZ R3,$DJNZ R2,INT0_INTRETI(2)编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

#include<reg52.h>#define uint unsigned int#define ucahr unsigned charuint num,num1;sbit FM=P0^7;int shi,ge,a;void delay(uint);void shumaguan();unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void main(){TMOD=0x01;TH0=(65535-50000)/256; TH0=(65535-50000)%256; EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1){shumaguan();}}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256;num1++;if(num1==10) {num1=0;num++;shi=num/10;ge=num%10;if(num==100) {num=0;}}}void shumaguan() {P3=0x01;P2=table[shi];delay(5);P3=0x02;P2=table[ge]; delay(5);void zuoyi(){a=~P3;a=a<<1;P3=~a;if(P3==0xfb){P3=0xfe;}}void delay(uint x) {int i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}(3)编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms 使两位数码管从00、01、02……98、99每间隔500ms加1显示。

单片机定时器实验报告doc

单片机定时器实验报告doc

单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化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。

51单片机定时器计数器汇编实验报告

51单片机定时器计数器汇编实验报告

批阅长沙理工大学实验报告年级光电班号姓名同组姓名实验日期月日指导教师签字:批阅老师签字:内容一、实验目的四、实验方法及步骤二、实验原理五、实验记录及数据处理三、实验仪器六、误差分析及问题讨论单片机定时器/计数器实验一、实验目的1、掌握51单片机定时器/计数器的基本结构。

2、掌握定时器/计数器的原理及编程方法。

二、实验仪器1、装有keil软件的电脑2、单片机开发板三、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1,他们有四种工作方式,现以方式1举例。

若定时器/计数器0工作在方式1,计数器由TH0全部8位和TL0全部8位构成。

方式1作计数器用时,计数范围是:1-65536(2^16);作定时器用时,时间计算公式是:T=(2^16-计数初值)×晶振周期×12。

四、实验内容1、计算计数初值单片机晶振频率为6MHz,使用定时器0产生周期为120000μs等宽方波连续脉冲,并由P1.0输出。

设待求计数初值为x,则:(2^16-x)×2×10^-6 = 120000×10^-6解得x=5536。

二进制表示为:00010101 10100000B。

十六进制为:高八位(15H),低八位(A0H)。

2、设置相关控制寄存器TMOD设置为xxxx0001B3、程序设计ORG 0000HAJMP MAINORG 30HMAIN: MOV P1,#0FFH ;关闭所有灯ANL TMOD,#0F0H ;置定时器0工作方式1ORL TMOD,#01H ;不影响T1的工作MOV TH0,#15H ;设置计数初始值MOV TL0,#0A0HSETB EA ;CPU开中断SETB ET0 ;定时器0开中断SETB TR0 ;定时器开始运行LOOP: JBC TF0,INTP ;如果TF0=1,则清TF0并转到INTPAJMP LOOP ;然跳转到LOOP处运行INTP: MOV TH0,#15H ;重新设置计数初值MOV TL0,#0A0HCPL P1.0 ;输出取反AJMP LOOPEND AJMP LOOPEND4、实验仿真新建工程项目文件中,并为工程选择目标器件为AT公司的AT89S51。

单片机定时器的应用proteus仿真实验报告总结

单片机定时器的应用proteus仿真实验报告总结

单片机定时器的应用proteus仿真实验报告总结一、实验目的
本次实验旨在通过使用Proteus仿真软件,掌握单片机定时器的应用,了解定时器的工作原理和使用方法。

二、实验原理
单片机定时器是一种常用的计时和延时控制器,它可以在特定时间内
产生一个周期性的信号。

单片机定时器通常由一个计数器和一个比较
器组成。

计数器会不断计数,当计数值达到设定值后,比较器会发出
一个触发信号。

通过对比较器输出信号进行处理,可以实现各种延时
和周期性控制。

三、实验材料
1. Proteus仿真软件
2. 单片机模块
3. LED灯
4. 电阻
5. 电容
四、实验步骤
1. 打开Proteus软件,并新建一个电路图。

2. 在电路图中添加单片机模块、LED灯、电阻和电容等元件。

3. 连接电路图中各元件之间的线路。

4. 设置单片机定时器参数,并编写程序代码。

5. 进行仿真测试,并记录测试结果。

五、实验结果分析
在本次实验中,我们成功地使用了Proteus仿真软件进行了单片机定
时器的应用测试。

通过设置单片机定时器参数和编写程序代码,我们
成功地实现了对LED灯的周期性控制,达到了预期的效果。

六、实验总结
通过本次实验,我们深入了解了单片机定时器的工作原理和应用方法,并掌握了使用Proteus仿真软件进行单片机定时器测试的技能。

这对
于我们今后的学习和工作都具有很大的帮助。

单片机定时器计数器实验报告

单片机定时器计数器实验报告

文档来源为:从网络收集整理.word 版本可编辑.欢迎下载支持.单片机定时器计数器实验报告篇一:单片机计数器实验报告篇一:单片机计数器实验报告计数器实验报告计数器实验报告㈠ 实验目的实验目的1. 学习单片机内部定时学习单片机内部定时//计数器的使用和编程方法;计数器的使用和编程方法;2. 2.进一步掌握中断处理程序的编程方法。

进一步掌握中断处理程序的编程方法。

㈡ 实验器材实验器材1. 2. 3. 4. 5.G6W 仿真器一台仿真器一台 MCS MCS —51实验板实验板 一台一台一台 PC PC 机 一台一台一台 电源 一台一台一台 信号发生器信号发生器 一台一台㈢ 实验内容及要求实验内容及要求8051内部定时计数器,按计数器模式和方式1工作,对P3.4P3.4((T0T0)引脚进行计数,使用)引脚进行计数,使用8051的T1作定时器,作定时器,50ms 50ms中断一次,看T0内每50ms 来了多少脉冲,将计数值送显(通过LED 发光二极管8421码来表示),1秒后再次测试。

秒后再次测试。

㈣ 实验说明实验说明1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入引入定时器T0T0。

单片机在每个机器周期采样一次输入波形,。

单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。

能超过机器周期频率。

2. 2. 计数脉冲由信号发生器输入(从计数脉冲由信号发生器输入(从T0端接入)。

3. 计数值通过发光二极管显示,要求:显示两位,十位用L4L4~~L1的8421码表示,个位用L8L8~~L5的8421码表示码表示4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动算出每分钟脉搏跳动次数并显示次数并显示㈤ 实验框图实验框图((见下页见下页) )程序源代码程序源代码 ORG 00000H LJMP MAIN ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOVTH1,#3CHMOV TL0,#00H;T0的中断入口地址的中断入口地址 ; ;设置T1做定时器做定时器,T0,T0做计数器,都于方式1工作工作 ; ;装入中断次数装入中断次数装入中断次数 ; ;装入计数值低装入计数值低8位 ;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0SETB ET1 ;允许T1中断中断 SETB EA ; SETB EA ;允许CPU 中断中断 SJMP $; SJMP $;等待中断等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOVC,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0MOV P1.7,C ;保护现场保护现场;装入计数值低8位;装入计数值高8位,50ms;,50ms;允许允许T1中断中断;未到1s,1s,继续计时继续计时继续计时 ;1s ;1s 到重新开始到重新开始;显示计数器T0的值的值;;读计数器当前值读计数器当前值 ; ;将计数值转为将计数值转为十进制十进制;显示部分,将A 中保存的十位赋给L0~L3 将B 中保存的各位转移到A 中 ;将个位的数字显示在将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器将计数器T0清零清零 MOV TH0,#00H MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回中断返回在频率为1000HZ 时,时,L0~L7L0~L7显示为5050;频率为;频率为300HZ时,时,L0~L7L0~L7显示为1515,结果正确,程序可以正确运行。

单片机c语言程序设计---单片机实验报告

单片机c语言程序设计---单片机实验报告

单片机c语言程序设计---单片机实验报告实验目的:1.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器实验内容:一.定时器/计数器应用程序设计实验1.计数功能:用定时器1方式2计数,每计数满100次,将P1.0取反。

(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。

)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。

方式2有自动重装初值的功能,初始化后不必再置初值。

将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。

TMOD=60H。

定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。

程序:#include<REGX51.H>void main(){P1_0=0;TMOD=0x60;TH1=0xFD;TL1=0xFD;ET1=1;EA=1;TR1=1;while(1){}}void timer1_Routine()interrupt3{P1_0=~P1_0;}实验2.中断定时使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。

分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。

主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。

实验要求:完成计数实验和中断计数实验。

具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,对仿真结果进行总结。

程序:#include<REGX51.H>#include"Delay.h"int i;int j=0;void main(){ P1=0; P2=0;P3=0; P0=0; TMOD=0x01;TH0=0x3C;TL0=0xB0;ET0=1;EA=1;TR0=1;while(1) {}}void timer0_Routine()interrupt1 {TH0=0x3C;TL0=0xB0;j++;if(j>=150){ j=0; for(i=0;i<20;i++){P1=~P1;P2=~P2;P3=~P3;P0=~P0;Delay(200); } }}实验分析:心得体会:。

单片机定时器实训报告

单片机定时器实训报告

一、实训背景随着电子技术的不断发展,单片机作为嵌入式系统中的核心部件,得到了广泛应用。

定时器作为单片机的重要功能模块,能够实现定时、计数等功能,是单片机应用系统设计的关键技术之一。

为了提高学生的单片机应用能力,本次实训选取了基于51单片机的定时器应用作为实训内容。

二、实训目的1. 掌握51单片机定时器的基本原理和工作方式;2. 学会使用定时器实现定时、计数等功能;3. 培养学生动手实践能力和解决实际问题的能力;4. 提高学生对单片机应用系统的设计水平。

三、实训内容本次实训主要涉及以下内容:1. 51单片机定时器原理及工作方式;2. 定时器初始化编程;3. 定时器中断编程;4. 定时器应用实例:LED流水灯控制。

四、实训步骤1. 学习51单片机定时器原理及工作方式,掌握定时器的工作模式、定时器计数范围等参数;2. 编写定时器初始化程序,包括定时器模式选择、计数初值设置等;3. 编写定时器中断服务程序,实现定时功能;4. 编写LED流水灯控制程序,实现定时器中断触发LED流水灯效果;5. 将程序烧录到单片机中,进行实验验证。

五、实训结果与分析1. 定时器初始化编程:根据实训要求,设置了定时器模式、计数初值等参数,实现了定时器定时功能;2. 定时器中断编程:编写了定时器中断服务程序,实现了定时器中断触发功能;3. LED流水灯控制:通过定时器中断触发,实现了LED流水灯效果,验证了定时器应用实例的正确性。

在实训过程中,遇到以下问题及解决方法:1. 定时器计数初值设置错误:通过查阅资料,了解了定时器计数初值的计算方法,正确设置了计数初值;2. 定时器中断服务程序编写错误:通过分析程序,发现中断服务程序中存在逻辑错误,修改后程序运行正常。

六、实训心得通过本次实训,我深刻认识到以下内容:1. 定时器在单片机应用系统中的重要作用,掌握了定时器的基本原理和工作方式;2. 编程过程中,要注重代码的可读性和可维护性,提高编程效率;3. 在遇到问题时,要善于查阅资料,分析问题原因,并采取有效措施解决问题;4. 实训过程中,要注重理论与实践相结合,提高动手实践能力。

定时计数器和中断系统的综合应用实验报告收获与体会

定时计数器和中断系统的综合应用实验报告收获与体会

定时计数器和中断系统的综合应用实验报告收获与体会这是一个比较开放性的问题,我尝试给出一个比较全面的回答,希望能够帮到你。

一、实验目的通过对定时计数器和中断系统的综合应用实验,掌握以下技能:1. 掌握定时计数器和中断系统的原理及其在嵌入式系统中的应用。

2. 熟悉51单片机中定时器的使用方法。

3. 熟悉51单片机中中断系统的使用方法。

4. 熟悉C语言中的定时器和中断编程。

二、实验内容1. 实验原理定时计数器是嵌入式系统中非常重要的一个部分,它可以周期性的计时,通过计数值的比较输出指定的脉冲信号。

51单片机中的定时器有4个,分别为Timer0、Timer1、Timer2、Timer3。

不同的定时器有不同的计数器位数和工作模式,可以根据应用场景进行选择。

中断系统是嵌入式系统中另一个非常重要的部分,可以在特定的条件下自动触发,优先处理中断事件。

在51单片机中,中断分为外部中断和定时器中断。

通过中断系统,可以高效地实现对各种外部事件的实时响应。

2. 实验步骤本实验分为两个阶段,第一阶段设计一个定时计数器程序,通过P1口的LED灯输出定时器的计数值,第二阶段在第一阶段的基础上,结合中断系统,设计一个定时器中断程序,通过P0口的LED灯输出中断事件的计数值。

第一阶段:(1)配置定时器,设置定时器的工作模式和计数器初值。

(2)在定时器的中断处理函数中,实现计数器值的输出。

(3)通过P1口连接LED灯,输出计数器值。

第二阶段:(1)配置定时器和中断系统,设置定时器的工作模式和计数器初值,以及中断的优先级和中断处理函数。

(2)在中断处理函数中,实现计数器值的输出和中断事件计数值的计算。

(3)通过P0口连接LED灯,输出中断事件的计数值。

三、实验结果通过实验,我掌握了51单片机中定时计数器和中断系统的使用方法,熟悉了C语言中的定时器和中断编程。

在第一阶段的实验中,我成功地输出了定时器的计数值,通过LED灯显示在P1口。

单片机定时器实验报告

单片机定时器实验报告

单片机定时器实验报告单片机定时器实验报告概述:单片机是一种集成电路,具有微处理器核心,用于控制和执行各种任务。

在嵌入式系统中,单片机的定时器是一个重要的组件,用于生成精确的时间延迟和周期性的信号。

本实验旨在通过使用单片机的定时器模块,学习和掌握定时器的基本原理和应用。

实验目的:1. 理解单片机定时器的工作原理;2. 掌握定时器的基本配置和使用方法;3. 实现定时器产生精确的时间延迟和周期性的信号。

实验器材:1. 单片机开发板;2. USB数据线;3. 电脑。

实验步骤:1. 连接单片机开发板和电脑,确保开发板与电脑正常通信;2. 打开开发板的开发环境软件,创建一个新的工程;3. 在工程中选择定时器模块,并进行基本配置,如选择定时器模式、预分频系数等;4. 编写程序代码,实现定时器功能。

可以选择定时产生一个精确的时间延迟,或者产生一个周期性的信号;5. 将程序代码下载到单片机开发板中,并运行程序;6. 观察实验结果,验证定时器的工作是否符合预期。

实验结果:经过实验,我们成功实现了单片机定时器的功能。

通过设置定时器的工作模式和预分频系数,我们可以生成精确的时间延迟和周期性的信号。

实验结果与预期一致,证明了定时器的可靠性和准确性。

实验总结:通过本次实验,我们深入了解了单片机定时器的原理和应用。

定时器作为嵌入式系统中的重要组件,具有广泛的应用前景。

掌握定时器的基本配置和使用方法,对于开发嵌入式系统和实现各种功能非常重要。

通过实验,我们不仅学到了理论知识,还掌握了实际操作的技巧和经验。

然而,单片机定时器的应用不仅仅局限于时间延迟和周期性信号的生成。

在实际工程中,定时器还可以用于测量脉冲宽度、频率计数、PWM波形生成等。

因此,我们在以后的学习和工作中,应该进一步探索和应用定时器的其他功能,以满足不同场景下的需求。

总之,单片机定时器是嵌入式系统中不可或缺的组件之一。

通过本次实验,我们对定时器的原理和应用有了更深入的了解。

单片机实验二 定时器实验程序

单片机实验二 定时器实验程序
sbit L2=P0^6;
sbit L3=P0^7;
unsigned char keynum;
unsigned int lasttime=100;
bit bset=0;
unsigned char keyscan();
void display();
unsigned char getkey();
void set();
code unsigned char table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
sbit H1=P3^6;
sbit H2=P3^7;
sbit L1=P0^5;
void main()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
P1M1=0x00;
P1M0=0xff;
while(1)
{
keynum=keyscan();
display();
set();
}
}
void timer0() interrupt 1
{
P1=0X00;
W1=1;
W2=0;W3=1;W4=1;
P1=table[(unsigned char)(lasttime%1000/100)]|a;
}
else if(ct1<60)
{
P1=0X00;
W2=1;
W3=0;W4=1;W1=1;
P1=table[(unsigned char)(lasttime%1000%100/10)]|a;

单片机原理及应用实验---定时器

单片机原理及应用实验---定时器

; 启动T0 ; 开T0中断
单片机原理及应用实验
MOV 70H,#10H ;中断次数计数 (65536*16=1048576μs≈1s) MOV R0,#LED0 CLR A LOOP: MOV @R0,A ;显示缓冲区清零 INC R0 CJNE R0,#LED7+1,LOOP DISP: LCALL DISPLAY ;调显示子程序, 开始显示8个0 SJMP DISP ;循环调用
单片机原理及应用实验
定时器实验(电子秒表)
河南师范大学物理与信息工程学院
单片机原理及应用实验
一、实验目的
进一步学习51单片机内部计数器的使用和 编程方法 进一步掌握中断程序的处理方法 了解键盘显示接口的工作原理
单片机原理及应用实验
二、实验内容
利用定时器定时,使七段数码管输出计时值
单片机原理及应用实验
单片机原理及应用实验
本实验中用定时器T0产生1秒钟基本时间单 位,本系统fosc=12MHz,当定时器T0工作 在方式1(16位)时,最大定时时间为 216*1μs=65536μs 再利用软件记数,当T0中断16次时,所用时 间为 65536*16=1048576μs≈1s
单片机原理及应用实验
单片机原理及应用实验

DB 7FH DB 6FH DB 77H DB 7CH DB 39H DB 5EH DB 79H DB 71H
;8 ;9 ;A ;B ;C ;D ;E ;F
单片机原理及应用实验

DB 00H DB 40H DB 76H DB 73H DB 3EH DB 67H DB 38H DB 50H
单片机原理及应用实验
ORG 1000H DISPLAY: MOV DPTR,#0FF89H ;显示子程序 MOV A,#90H ;8279写显示缓冲区 命令 MOVX @DPTR,A MOV R0,#8H MOV R1,#LED0 DLOOP: MOV A,@R1 MOV DPTR,#DISPTAB ;查表, 得到七段字型码

实验二 单片机定时器计数器编程

实验二  单片机定时器计数器编程

实验二单片机定时器/计数器编程一、实验目的1、掌握单片机定时器/计数器的工作方式;2、掌握单片机定时器/计数器的编程方法。

二、实验内容1、学习单片机定时器/计数器的工作方式、初始化以及应用等;2、利用单片机定时器/计数器编写程序驱动开发板上的LED灯按一定规律工作。

基本要求:利用定时器1控制LEDB闪烁,闪烁频率为2Hz。

提高要求:读懂教材定时器/计数器的应用实例4和5,在实验室开发板上采用分模块设计的方法编程实现以下两个任务之一:1、控制LEDB闪烁,2.5秒一个周期,亮0.5s,灭2s,周而复始。

2、将教材例5对P1.0和P1.1的控制,改为对LEDB和LEDG的控制,时序不变。

三、实验设备1、STC单片机开发板;2、PC机以及串口线。

四、实验分析及关键代码(1)利用定时器1控制LEDB闪烁,闪烁频率为2Hz。

实验分析:控制LEDB闪烁,频率为2Hz,即0.5s。

解决思路:定时器工作方式选0x01,计数器初值为(65536-50000),循环10次即为0.5s。

代码如下:#include<reg51.h>#define uchar unsigned char sbit A=P2^4;uchar i=0;void main (){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(1){while(TF0){TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){A=!A;i=0;}}}}(2)控制LEDB闪烁,2.5秒一个周期,亮0.5s,灭2s,周而复始。

解决思路:设置两个循环,计数器初值设为(65536-50000),亮灯循环10次,灭灯循环40次。

代码如下:#include<reg51.h>#define uchar unsigned charsbit A=P2^4;uchar i=0;void main (){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(1){while(TF0){TF0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;i++;if(i==10){A=1;}if(i==50){A=0;i=0;}}}}五、实验总结对软件及计数器的操作及代码不太熟悉,多次查询课本及上网查找资料后懂得计数器工作方式及计数操作,其他问题迎刃而解。

定时器计数器应用实验二

定时器计数器应用实验二

一、实验目的1、掌握定时器/计数器计数功能的使用方法。

2、掌握定时器/计数器的中断、查询使用方法。

3、掌握Proteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

二、设计要求1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。

2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。

三、实验程序流程图和程序清单程序一、ORG 0000HLJMP MAINMAIN: MOV TMOD, #06HMOV TH0, #9CHMOV TL0, #9CHSETB TR0HERE: JNB TF0, HERECPL P1.0CLR TF0LJMP HEREEND程序二、ORG 0000HLJMP MAINORG 000BHLJMP ITPOMAIN: MOV SP, #2FHMOV TMOD, #06HMOV TH0, #38HMOV TL0, #38HMOV IE, #82HSETB TR0 开始计数器初始化开定时器0TF0=1?P1.0取反TF0清零结束Y开始计数器、中断初始化开定时器0等待结束ITPO P1.0取反返回HERE: LJMP HEREITPO: CPL P1.0RETIEND四、实验仿真图五、实验结果图图一(查询、输入为100us输出为20ms)图二(中断、输入为100us输出为40ms)六、实验心得本次实验室利用定时计数器的功能,分别利用查询法和中断法实现,在本次实验中产生的方波的周期为毫秒级别,所以看不出误差,和上一个实验比较,可以看出误差只存在微妙级,当产生较大周期的方波时,误差几乎为0.七、思考题1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。

定时器实验报告

定时器实验报告

定时器实验报告引言定时器是现代电子设备中常见的一种功能模块,它可以提供精确的时间计量和控制。

本实验旨在通过对定时器的使用和调试,深入了解定时器的工作原理和应用。

一、实验目的本次实验的主要目的有三点:1. 了解定时器的基本原理和功能;2. 学会使用定时器进行时间计量和控制;3. 掌握定时器在电子设备中的应用。

二、实验装置和器材1. 单片机开发板;2. 电源;3. 连接线。

三、实验原理定时器是一种基于震荡电路和计数器的电子模块,通过内部的晶振或外接的时钟信号驱动,能够按照设置的时间间隔产生特定的脉冲或控制信号。

四、实验操作步骤1. 将开发板上的定时器模块与电源和单片机连接好;2. 在代码中设置定时器的工作模式和计数器初值;3. 运行程序,观察定时器是否正常工作;4. 尝试调整定时器的工作参数和配置,观察其对输出信号的影响。

五、实验结果与分析在本次实验中,经过不断的尝试和调试,我们成功实现了以下几个功能:1. 使用定时器生成1秒的周期信号,并控制LED灯的闪烁。

通过观察LED灯的亮灭状态,我们可以直观地判断定时器的工作是否正常。

2. 设定定时器的计数器初值为10,并在每次触发计数器溢出时输出一个特定的脉冲信号。

通过示波器测量输出信号的时间间隔,我们可以验证定时器的精度和稳定性。

3. 调整定时器的工作参数,如工作模式、计数器分频倍数等,观察对输出信号的影响。

我们发现不同的参数设置会导致输出信号的频率、占空比等发生变化,进一步验证了定时器的灵活性和可调性。

六、实验总结通过本次实验,我们对定时器的基本原理和使用方法有了更深入的了解。

定时器作为一种常用的电子模块,广泛应用于各种电子设备中,如计时器、时钟、PWM信号发生器等。

掌握定时器的使用技巧,可以为我们在电子设备的设计与开发中提供有力的支持。

实验中我们发现,定时器的性能主要受到两个因素的影响,即晶振或时钟信号的精度和定时器的配置参数。

在实际应用中,我们需要根据具体需求选择合适的硬件和适当的软件设置,以保证定时器的稳定性和精确性。

C单片机定时器及数码管控制实验报告

C单片机定时器及数码管控制实验报告

C单片机定时器及数码管控制实验报告一、实验目的:1.理解单片机的定时器的工作原理和使用方法;2.掌握单片机控制数码管显示的方法;3.综合运用单片机定时器和数码管控制来实现对时间的计时功能。

二、实验器材:1.STC89C52单片机开发板;2.4位数码管;3.相关电源电缆;4.相关串口连接线;5.PC机。

三、实验原理:1.定时器的工作原理:定时器是单片机中的一个重要模块,它可以用来产生一定时间间隔的定时中断。

在STC89C52单片机中,有两个可编程定时器,分别是Timer0和Timer1、定时器的工作方式有两种:定时器工作模式和计数器工作模式。

通过设定定时器的工作模式、预分频系数以及计数初值,可以实现定时中断。

2.数码管的控制原理:数码管是一种常见的数码显示器材,一般由多个LED组成,通过对LED的开关控制来实现不同数字的显示。

使用单片机控制数码管可以实现数字的动态显示。

通常使用行扫描和列驱动两种方法来控制数码管的显示。

在本实验中,我们使用列驱动的方法来控制数码管的显示。

3.单片机定时器和数码管控制实验的原理流程:(1)初始化定时器设置,包括设定工作模式、预分频系数和计数初值。

(2)初始化数码管连接引脚,并将引脚置为输出状态。

(3)在定时器中断中,通过改变数码管显示的值来实现时间的动态显示。

四、实验步骤:1.硬件连线将STC89C52单片机开发板上的P0口连接到4位数码管的输入口,共7根线。

其中6根线对应4位数码管的6个段输入,另外1根线连接到4位数码管的控制端,用于控制数码管的选通位。

2.软件编程(1)定义头文件和端口变量#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit DIG1=P0^0; // 数码管第1位sbit DIG2=P0^1; // 数码管第2位sbit DIG3=P0^2; // 数码管第3位sbit DIG4=P0^3; // 数码管第4位sbit DULA=P0^4; // 数码管段选sbit WELA=P0^5; // 数码管位选uchar code ledData[16]={ // 共阳数码管动态显示数值表,共16个字符0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};(2)初始化函数void Init_Timer0(void) // 初始化定时器0TMOD,=0x01;//设定为定时器模式,工作模式1TH0=0xfc; // 给定初值,定时1msTL0=0x18;ET0=1;//打开定时器0中断TR0=1;//启动定时器0void Init_Timer1(void) // 初始化定时器1TMOD,=0x10;//设定为定时器模式,工作模式1TH1=0xf8; // 给定初值,定时10msTL1=0xcc;ET1=1;//打开定时器1中断TR1=1;//启动定时器1(3)定时器中断函数void Timer0Interrupt( interrupt 1 // 计时定时器中断函数static uchar count=0;TH0=0xfc;TL0=0x18;count++;if(count>=1000) // 1秒到count=0;LED_Place=0; // 置位数码管位置Digit_Index++; // 下一个要显示的数字if(Digit_Index>=8)Digit_Index=0;}if(LED_Place==1) // 第2位数码管LEDX=ledData[N%10];DIG2=0;DIG1=1;//第2位数码管显示}else if(LED_Place==2) // 第3位数码管LEDX=ledData[N/10%10];DIG3=0;DIG2=1;//第3位数码管显示}else if(LED_Place==3) // 第4位数码管LEDX=ledData[N/100%10];DIG4=0;DIG3=1;//第4位数码管显示}else // 第1位数码管LEDX=ledData[N/1000%10];DIG1=0;DIG4=1;//第1位数码管显示}}(4)主函数void mainInit_Timer0(; // 初始化定时器0Init_Timer1(; // 初始化定时器1EA=1;//全局中断使能while(1)//主函数其他处理}五、实验效果:经过上述步骤的硬件连接和软件编程,当单片机开始运行后,数码管将开始显示时间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

院系物理与电子信息学院专业电子与电子信息工程班级10电专(2)姓名吴凯学号1060710057 同组人/
实验室S2312 组号/ 日期
课程单片机原理与应用指导老师肖鹏程成绩
试验项目编号试验项目名称单片机定时器的综合应用
一、实验目的
1.进一步熟悉Keil uVision2软件的应用;
2.进一步熟悉Proteus7.8软件的应用;
3.掌握单片机软件延时和定时器的使用方法;
4.掌握用C语言编写方波发生器和彩灯控制器的方法。

二、实验环境
1.微机一台;
2.Proteus7.8电路设计和仿真软件;
3.Keil uVision2编译和调试软件;
三、实验原理
图1是单片机实现1KHz方波发生器的电路原理图,P00接示波器,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。

注意:所有元器件要按实物重新封装。

用C语言编写程序,使该电路的功能为,上电后示波器显示1KHz的方波。

当示波器显示的方波频率不是1KHz时,修改程序,使示波器显示标准的1KHz方波。

图1单片机输出控制电路原理图
C语言1KHz方波发生器的程序
图2是单片机实现彩灯控制器的电路原理图,P00接8只LED,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。

注意:所有元器件要按实物重新封装。

用C语言编写程序,使该电路的功能为,上电后8只LED灯显示彩灯滚动效果。

修改程序,使彩灯显示效果发生变化。

图2彩灯控制器电路原理图
C语言彩灯控制器的程序
四、实验步骤
1.在Proteus ISIS环境下设计一个用单片机产生1KHz方波发生器的电路原理图,P00接示波器,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。

2.在Keil uVision2环境下,用C语言编写单片机实现1KHz方波发生器的程序,编译生成hex文件。

3.将生成的hex文件加载到单片机,运行仿真,观察现象,记录结果;
4.在Proteus ISIS环境下设计一个用单片机产生彩灯控制器的电路原理图,P0接8只LED灯,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9,DIP31接Vcc。

5.在Keil uVision2环境下,用C语言编写单片机实现彩灯控制器的程序,编译生成hex文件。

6.将生成的hex文件加载到单片机,运行仿真,观察现象,记录结果;
五、实验记录与处理
1. 单片机产生1KHz方波发生器的实验结果
图3为1KHz方波发生器的仿真图。

图3 1KHz方波发生器仿真图
当延时常数为(),方波频率为();当延时常数为(),方波频率为()。

数据处理:从以上数据我们可以看出,
2.彩灯控制器的仿真结果
数据处理:从以上数据我们可以看出,
六、思考题
1.简述单片机定时的几种方法?每种方法举例具体说明。

答:
2.与单片机的定时器有关的SFR有几个?每个SFR具体说明。

答:
七、实验小结
通过实验我熟悉了。

相关文档
最新文档