实验P1.0取反
实验一 Keil C51集成开发环境的使用练习、仿真与调试
实验一Keil C51集成开发环境的使用练习、仿真与调试一、实验目的1、熟悉Keil C51集成开发环境的使用方法2、熟悉Keil C51集成开发环境调试功能的使用和DP-51PROC单片机综合仿真实验仪的使用。
二、实验设备及器件IBM PC机一台DP-51PROC单片机综合仿真实验仪一台三、实验内容1、进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 0000HLJMP MainORG 00F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP Main;END2、进行Keil C51集成开发环境的仿真调试练习。
然后按照以下内容建立文件并编译仿真调试。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND四、实验要求1、熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。
MSP430F5529实验指导书V1.0
MSP430F5529 实验指导书(V1.0)2014年10月27日东北林业大学机电工程学院“3+1”实验室实验一基础GPIO实验实验二键盘与液晶显示实验实验三时钟系统配置实验实验四看门狗与定时器实验实验五 AD/DA实验实验六比较器实验实验七 Flash实验实验八串行通信实验实验一基础GPIO实验【实验目的】1、熟悉CCS的基本使用方法;2、掌握MSP430系列单片机程序开发的基本步骤;3、掌握MSP430 IO口的基本功能。
【实验仪器】1、SEED-EXP430F5529v1.0开发板一套;2、PC机操作系统Windows XP或Windows 7,CCSv5.1集成开发环境。
【实验原理】CCS(Code Composer Studio)是 TI 公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。
CCSv5.1 为 CCS 软件的最新版本,功能更强大、性能更稳定、可用性更高,是 MSP430 软件开发的理想工具。
SEED-EXP430F5529v1.0开发板上的有8个可操作的LED灯,与MCU的IO口对应关系如图1-1所示:图1-1 LED与MCU的IO对应关系电路我们可以通过控制单片机IO口的输出电平状态来控制各个LED灯的亮灭。
开发板上还有2个可操作的按键S1,S2。
如图1-2所示。
图1-2 按键电路我们可以通过读取与按键相连的IO口的输入电平状态来执行相应的操作。
此外,S1,S2还可以作为外部中断源,触发中断。
【实验内容】1、用调用头文件的方法,使能MSP430F5529开发板上的8个LED灯依次按顺序循环点亮;2、用按键S1控制开发板上LED1的亮灭状态(查询法);3、用按键S2控制开发板上跑马灯的循环速度(中断方式)。
【实验步骤】内容1:使能开发板上的8个LED灯依次按顺序循环点亮1、打开CCSv5并确定工作区间,然后选择File-->New-->CCS Project 弹出图1-3对话框。
单片机原理及应用作业答案
作业答案0-1绪论1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。
2.什么叫单片机?其主要特点有哪些?解:将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。
第1章MCS-51单片机的结构与原理15. MCS-51系列单片机的引脚中有多少根I/O线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。
每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。
通常把4个端口称为P0~P3。
在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。
在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。
MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。
25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)?它们的地址是什么?CPU如何确定和改变当前工作寄存器组(R0-R n)?解:开机复位后,CPU使用的是第0组工作寄存器。
它们的地址是00H-07H。
CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。
27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的?当主频为12MHz的时候,一个机器周期是多长时间?执行一条最长的指令需要多长时间?解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。
单片机实验之定时器计数器应用实验二
、实验目的1 、掌握定时器/计数器计数功能的使用方法。
2 、掌握定时器/计数器的中断、查询使用方法。
3 、掌握Proteus 软件与Keil 软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
、设计要求1 、用Proteus 软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 100个脉冲,则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。
2、用Proteus 软件画出电路原理图,单片机的定时器/计数器以中断方式工 作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲, 则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。
通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD 初值的计 算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。
七、思考题1、利用定时器0,在P1.0 口线上产生周期为200微秒的连续方波,利用定 时器1,对P1.0 口线上波形进行计数,满50个,则取反P1.1 口线状态,在P 1.1 口线上接示波器观察波形。
tJI-JTTALlRSTIPO 1 Z^Cil POiPD 3/jfiD3 IPCLW/MH FD-5/^CB”血P2 O/jtS PNUMa P 2 .2/AJOPI F3JD/RKDP1 且1门池F1 2P1 .3P3^/|NT1 卩11 .4P3.4Z1D P1.5 P3 .5fT1 尸1P3.0AA/RP1I.7 P3.?/RD17三、电路原理图 18HQAT69C52P 2 .4/A12P2 5/A13 P2P2 .7XA1«5蝕丘2Q 37答:程序见程序清单四、实验程序流程框图和程序清单1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数,MAIN: MOV IE, #00HMOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1LOOP: JNB TF1, LOOP CLRTF1 CPL P1.0 AJMP LOOP ENDC 语言程序:#in elude <reg52.h> sbit Y=P1A0; void mai n() {EA=0; ET1=0; TMOD=0x60;TH1=0x9C;计数数值初始化中断断 艙化!l[启动 =时器1 器一、r动 启N箱 * 1溢断清计数溢出标志—1 ~ P1.(口线取反TL 仁 0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }2、定时器/计数器以中断方式工作,对外部连续周期性脉冲信号进行计数, 每计满200个脉冲,则取反P1.0 口线状态。
单片机及其接口技术实验报告
单片机及接口技术实验报告实验一数据传送程序一、实验目的1、掌握汇编语言设计和调试方法。
2、掌握DVCC实验系统的操作步骤。
二、实验内容1、编程实现,把7000H~70FFH单元的内容清零。
2、编程实现,把源地址为6000H开始的单元内容,传送到目的地址7000H开始的单元中,传送个数为0FFFH个。
三、DVCC实验系统操作说明1、接通DVCC实验系统电源,在DVCC实验箱上应显示闪动的“P”,否则按Reset键。
2、运行DVCC软件。
(程序DVCC598H实验系统DVCC实验系统)3、单击工具栏上“新建”或“打开”按钮,编写源程序。
单击“编译”按钮,使其形成可执行文件。
4、单击工具栏上“联接”按钮,同时按下DVCC实验箱上PCDBG键(键盘上最右边第2个),实现PC机和实验箱的联接。
联机成功,屏幕上出现:.反汇编窗口、寄存器标示位窗口。
5、在成功联机后,单击工具栏上“调试”按钮,把最终目标文件装载到实验系统RAM区;或者通过单击菜单栏中的“动态调试”,选择“传送(.EXE)文件”来实现。
6、单击工具栏上“运行”或“单步”按钮,运行实验程序。
7、单击工具栏上“窗口”,选择“显示内部数据窗口”或“显示外部数据窗口”可显示数据窗口。
鼠标右击数据窗口的数据,可设置数据块新地址;鼠标左键单击数据,可修改数据数值。
8、运行完毕,先按实验箱上的复位按钮Reset键,再按PCDBG键,并且点击屏幕上OK,即可退出运行状态。
四、实验程序代码1、把7000H~70FFH单元的内容清零。
程序代码:ORG 0000HAJMP STARTORG 70HSTART: MOV P2, #70H ;送地址高8位到P2端口MOV R0, #00H ;R0=00H,表地址低8位CLR A ;将累加器A清0LOOP: MOVX @R0, A ;将A送入以R0内容为地址的外部RAM.INC R0 ;R0+1-->R0CJNE R0,#00H,LOOP;比较条件转移指令,若R0不等于0,则跳转到LOOPAJMP $ ;暂停END2、编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传送个数为0FFFH个。
《单片机原理及应用》第5章 定时器及应用
计数工作方式
通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时定时器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最高计 数频率为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持 时间至少是一个完整的机器周期。 对输入脉冲信号的基本要求如图5-2所示。
外部事件
计数电路 时间单位脉冲 单片机 计数完成信号
5.2 89C51定时器概述
• 89C51有两个16位的定时器/计数器,即定时器0(T0)和 定时器1(T1)。它们实际上都是16位加1计数器。 • T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1 和TL1构成。
• 每个定时器都可由软件设置为定时工作方式或计数工作方
• 例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个 500μs的同步脉冲。请编程序实现该功能。查询方式, fosc=6MHz。
解:(1)模式选择 选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生 负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为 500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生 溢出,使P1.0输出恢复高电平,T0又恢复外部事件计数方式。
T0的低5位:01100B=0CH即(TL0)=0CH T0的高8位:11110000B=F0H即(TH0)=F0H
(2)计算最大定时时间T
T0的最大定时时间对应于初值为0. 则:T=213×1/6 × 10-6×12=16.384ms
例2:利用T0的工作模式0产生1ms定时,在P1.0引脚输出 周期为2ms的方波。设单片机晶振频率fosc=12MHz。编 程实现其功能。 解:要在P1.0引脚输出周期为2ms的方波,只要使P1.0每隔 1ms取反一次即可。 (1)选择工作模式 T0的模式字为TMOD=00H,即 M1M0=00,C/T=0,GATE=0,其余位为0。 (2)计算1ms定时时T0的初值
中断定时计数器课件
例 5 编写一段程序,功能要求为:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲 进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位 存R1,低位存R0)。 解答:将P1.1的输入脉冲接入INT0,即使用T0计数器完成对P1.1口的脉冲计数。编写程 序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P MAIN: JNB P1.0,MAIN MOV TMOD,#05H ;定 时器/计数器T0为计数方式1 SETB TR0 ;启动T0,开 始计数 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 WAIT: JB CLR CLR MOV MOV AJMP INC RETI P1.2,WAIT EA TR0 R1,TH0 R0,TL0 $ R2
ORG 000BH CPL P1.0 MOV TL0, #9CH RETI ORG 001BH CPL P1.1 MOV TH0, #38H RETI ;TL0 中断服务程序 ;P1.0 取反 ;重新装入计数初值 ;中断返回 ;TH0 中断服务程序 ;P1.1取反 ;重新装入计数初值 ;中断返回
AJMP DEL REP:CPL P1.0 AJMP DEL ; ;若计数溢出,则输出取反
TINT0: JNB 20H.0,NEXT MOV TL0,#0B5H MOV TH0,#0FFH CLR P1.1 CPL 20H.0 SJMP LAST NEXT: MOV TL0,#0CEH MOV TH0,#0FFH SETB P1.1 CPL 20H.0 LAST:RETI
方法二: 采用方式2 定时器中断 加延时程序
ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P MAIN: MOV TMOD,#02H;定时器/ 计数器T0为定时方式2 IT0P:CLR EA MOV TL0,#4AH;定时 CLR P1.0 ;关中断 364μs初值赋值 MOV R0,#9 ;延时26μs SETB TR0;启动T0,开始 DLY:DJNZ R0,DLY MOV TL0,#4AH ;定时364μs 计数 初值赋值 SETB ET0;允许T0中断 SETB P1.0 SETB EA;CPU开中断 SETB EA RETI SETB P1.0 WAIT: AJMP WAIT
单片机实验五-定时计数器查询方式应用
实验五定时/计数器查询方式应用一、定时器工作方式0、1、2的应用(工程文件名:05定时器方式012.DSN)已知单片机晶体振荡器频率为12MHz,使用定时器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将定时器工作方式分别设置为方式0、方式1和方式2,实现上述功能。
1.1定时器工作方式0(文件名:05定时器方式0.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV TMOD,# 00 H ; 定时器0,工作方式0(13位计数值)MOV TH0,#00H ; 计数初值MOV TL0,#01HSETB TR0; 启动T0,从1开始增1计数,计满溢出LP1: JBC TF0, LP2;查询定时器0是否计满溢出,溢出转LP2处理SJMP LP1LP2: CPL P1_0 ;溢出P1.0取反,灯明暗变化MOV TH0,#00H ; 重装定时器计数初值MOV TL0,#01HSJMP LP1END1.2定时器工作方式1(文件名:05定时器方式1.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV TMOD,# 01 H ; 定时器0,工作方式1(16位)MOV TH0,#00H ; 计数初值MOV TL0,#010HSETB TR0 ; 启动T0,从16开始增1计数,计满2^16=65536溢出LP1: JBC TF0, LP2 ;查询定时器0是否计满溢出,若溢出转LP2处理SJMP LP1LP2:CPL P1_0 ; P1.0取反,灯明暗变化MOV TH0,#00H; 重新赋计数初值MOV TL0,#010HSJMP LP1END1.3定时器工作方式2(文件名:05定时器方式2.ASM,填空并回答问题)P1_0 EQU P1.0ORG 0000HMain:CLR P1_0MOV R1,#250MOV TMOD,# 02 H ; 定时器0,工作方式2(8位重装初值)MOV TH0,#01H ; 计数初值MOV TL0,#01HSETB TR0; 启动T0,定时器0从1开始增1计数,满2^8=256溢出LP1: JBC TF0, LP2;查询定时器值是否计满溢出,若溢出转JP2处理SJMP LP1LP2: DJNZ R1,LP1;有无溢出250次,若没有,继续查询是否溢出;若有执行下一句,改变灯的明暗CPL P1_0; 溢出250次P1.0取反,灯明暗变化SJMP LP1END二、计数器工作方式0、1、2的应用(文件名:计数器方式012.DSN)已知单片机晶体振荡器频率为12MHz,使用计数器编制延时程序,采用查询溢出方式控制红灯D1交替闪烁,将计数器工作方式分别设置为方式0、方式1和方式2,实现上述功能。
第6章 定时器计数器习题
20
IT0P:
CLR
TR0
;T0中断服务程序,停止T0计数
;把T0引脚接收过负脉冲标志F0置1, ;即接收过负跳变
SETB F0
RETI IT1P: CPL RETI P1.0 ;T1中断服务程序,P1.0位取反
程序说明:当单片机复位时,从0000H跳向主程序 MAIN处执行程序。其中调用了对T0,T1初始化子程序 PT0M2。子程序返回后执行标号LOOP处指令,循环等待 T0引脚上负脉冲的到来。由于负脉冲到来的标志位F0的
;装初值的高8位
;允许T0中断 ;总中断允许 ;启动T0 ;中断子程序,T0重装初值 ;P1.0的状态取反
程序说明:当单片机复位时,从程序入口0000H跳向主 程序MAIN处执行。其中调用了T0初始化子程序PT0M0。
6
子程序返回后,程序执行“AJMP HERE”指令,则
循环等待。 当响应T0定时中断时,则跳向T0中断入口,再从T0中 断入口跳向IT0P标号处执行T0中断服务子程序。 当执行完中断返回的指令“RETI”后,又返回断点处 继续执行循环指令“AJMP HERE”。在实际的程序中, “AJMP HERE” 实际上是一段主程序。当下一次定时 器T0的1ms定时中断发生时,再跳向T0中断入口,从而重
基本思想:设为方式2(自动装入常数方式)计数模式,
TH0、TL0初值均为0FFH。当T0脚发生负跳变时,T0计 数溢出,TF0置“1”,单片机发出中断请求。
13
初始化程序:
ORG 0000H ;跳到初始化程序 ;跳到外中断处理程序 AJMP IINI
ORG
IINI: MOV
000BH
TMOD,#06H ;设置T0为方式2
复执行上述过程。
单片机实验报告(相当不错,有具体实验结果分析哦)
学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 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
TF0
TH0 TL0
TR0
8位 8位
0 &
≥1
D0
T0引脚
机器周期 1
INT0引脚
TMOD
1 M0 D0 0 M1
C/T GATE
M0 M1 C/T GATE D7
计数个数与计数初值的关系为: N=t/ Tcy X=216 -N 5
10ms 任务
10ms/1us=10*1000us/1us= 10,000 2的16次方=65536 装的初值6553610000=55536=0xD8 F0 MOV TH0,#0D8H MOV TL0,#0F0H
2)定时常数的设定: 即:TH0应装D8H,TL0应装F0H。
3)中断管理: 允许T0中断ET0,开放总中断EA
4)启动定时器T0:
SETB TR0
5)动态停机:SJMP $
(2)中断服务程序
1)恢复T0常数;
2)改变P2.0状态
3)中断返回
TOINT:MOV TL0,#0D8H
;恢复定时常数
MOV TH0,#0F0H
0:关所有中断 1:开所有中断
9
2.1.4 中断优先级寄存器IP(B8H)
中断优先寄存器IP(B8H)IP在特殊功能寄存器中,字 节地址为B8H,位地址分别是B8H~BFH,IP用来锁存 各中断源优先级的控制位。
中断优先寄存器IP
2.2 中断应用举例
利用定时/计数器T0的方式1,产生t=10ms的定时, 并使P2.0引脚上输出周期为20ms的方波,采用中 断方式,设系统时钟频率为12 MHz。
项目3 自动计数报警器的设计与制作
1、模拟救护车的警报声---电路程序分析 2、定时器中断---模拟救护车的报警声
单片机定时器-计数器实验总结
单片机定时器-计数器实验总结单片机定时器/计数器实验总结篇一:单片机实验之定时器计数器应用实验一一、实验目的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、掌握定时器/计数器定时功能的使用方法。
《单片机技术》实验(2022级自动化1201~02电气1201~02)教案
《单片机技术》实验(2022级自动化1201~02电气1201~02)教案课程教案课程名称:单片机技术实验任课教师:王韧所属院部:电气与信息工程学院教学班级:自动化1201~02、电气1201~02教学时间:2022—2022学年第二学期湖南工学院课程基本信息湖南工学院教案用纸实验一数据传送实验一、本次实验主要内容1、Keil软件的使用方法和调试。
2、存储器之间数据传送的方法和循环程序设计。
3、MCS-51系列单片机堆栈的使用。
二、实验目的与要求1、掌握单片机的汇编指令系统及汇编语言程序设计方法。
2、掌握单片机的存储器体系结构。
3、熟悉Keil软件的功能和使用方法。
4、掌握单片机应用程序的调试方法。
三、实验重点难点MOV、MOV某指令的用法特点。
四、实验方法和手段讲授、演示、操作、仿真、提问。
五、作业与习题布置写出实验报告。
P1湖南工学院教案用纸一、实验内容或原理1、实现单片机内部RAM之间,外部RAM之间以及内部RAM与外部RAM之间的数据传送。
2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。
二、设计要求1、编写程序将00H~0FH16个数据分别送到单片机内部RAM30H~3FH单元中。
2、编写程序将片内RAM30H~3FH的内容传送至片内RAM40~4FH单元中。
3、编写程序将片内RAM40H~4FH单元中的内容传送到外部RAM4800H~480FH单元中。
4、编写程序将片外4800H~480FH单元内容送到外部RAM5800H~580FH单元中。
5、编写程序将片外RAM5800H~580FH单元内容传送回片内RAM50H~5FH单元中。
三、实验报告要求1、实验目的和要求。
2、设计要求。
3、实验程序流程框图和程序清单。
4、实验总结。
5、思考题。
四、思考题1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式?2、说明指令MOVA,20H和MOVC,20H中的20H含义有什么不同?传送指令中的助记符MOV,MOV某,MOVC各适用于访问哪个存储器空间?P2湖南工学院教案用纸实验后记:P3湖南工学院教案用纸实验二单片机并行I/O口的应用实验一、本次实验主要内容1、利用单片机并行I/O口控制流水灯。
IO口控制实验
实验名称:单片机I/O口控制实验实验目的:利用单片机的P1口作为I/O口,学会利用P1口作为输入和输出口。
实验原理:一、 C51的IO口系统:P0~P3端口功能总结:(1)P0~P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无MUX。
P0口的MUX的一个输入端为“地址/数据”信号。
P2口的MUX的一个输入信号为“地址”信号。
(2)在4个口中只有P0口是一个真正的双向口,P1~P3口都是准双向口。
原因:P0口作数据总线使用时,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;不进行数据传送时,芯片内外应处于隔离状态。
为此,P0口的输出缓冲器应为三态门。
P0口中输出三态门是由两只场效应管(FET)组成,所以是一个真正的双向口。
P1~P3口,上拉电阻代替P0口中的场效应管,输出缓冲器不是三态的-准双向口。
(3)P3口的口线具有第二功能,为系统提供一些控制信号。
因此P3口增加了第二功能控制逻辑。
这是P3口与其它各口的不同之处。
二、C51的中断系统单片机能及时地响应和处理单片机外部事件或内部事件所提出的中断请求。
1.五个中断请求源:(1)INT0*—外部中断请求0,由引脚INT0*输入,中断请求标志为IE0。
(2)INT1*—外部中断请求1,由引脚INT1*输入,中断请求标志为IE1。
(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。
(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。
(5)串行口中断请求,中断请求标志为TI或RI。
由特殊功能寄存器TCON和SCON的相应位锁存。
2.中断控制:中断允许寄存器IE:CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。
字节地址为A8H,可位寻址。
IE对中断的开放和关闭为两级控制。
总的开关中断控制位EA(IE.7位):EA=0,所有中断请求被屏蔽。
单片机原理及智能仪表技术第7章
计数状态:X=M-N
定时状态:X=M-定时时间/T,T为机器周期
2、TMOD定时器方式设置寄存器(89H):
TMOD主要用于 选择定时器的工作 模式(C/T)、启动方 式(GATE)和工作方 式等。该寄存器的 格式如图所示。
2、TMOD定时器方式设置寄存器(89H):
TMOD,#方式字 THx,#XH TLx,#XL EA ETx TRx
;选择方式 ;装入Tx时间常数 ;开Tx中断
;启动Tx定时器
需考虑:1. 按实际需要选择定时/计数功能; 2. 按时间或计数长度选择工作方式; 3. 计算时间常数:
二、定时/计数器初值的计算
(1)定时器初值的计算
在定时器模式下,计数器由单片机主脉冲经 12 分频后 计数。因此,定时器定时时间T的公式:T=(M-TC)×T计数, 上式也可写成:TC=M-T/T计数 式中,M为模值,和定时器的工作方式有关,在方式0时 M为213,在方式1时M为216,在方式2和方式3时M为28;T计数是 单片机振荡周期TCLK的12倍;TC为定时器的定时初值。 例:单片机时钟频率12MHz,定时器工作在方式1下,定 时100us,初值为多少? 解:时钟频率Ф CLK=12MHz,所以振荡周期TCLK=1/12us T计数=12×TCLK=1us,M=216=65536,T=100us 所以,TC=65536-100/1=65436,0xFF9C
定时器工作方式:当选择定时器方式时(C/T=0),TR1=1,定时器对系统的机器周 期计数,每过一个机器周期,计数器TH1,TH0加1,直至计满规定个数回零,置 位定时器中断标志(TF1)产生溢出中断。根据机器周期和设定的计数初值,可以定 时产生各种精确的时间。 计数器工作方式:当选择计数器方式时(C/T=1),外部脉冲通过引脚T1(P3.5)引入, 计数器对此外部脉冲的下降沿进行加1计数,直至计满规定值回零,置位定时器中 断标志(TF1)产生溢出中断。根据规定的时间内的计数个数,可以得到信号的频率。 计数最高频率不得超过振荡频率的1/24。
单片机IO口实验
微机原理实验报告实验名称:单片机IO口控制实验姓名:学号:座位号:指导教师:实验原理:MCS-51单片机的内部结构:Mcs-51单片机的内部结构图如上所示,而且IO口作为单片机的重要组成部分,是连接单片机与外部设备的桥梁。
单片机IO口双列直插封装的管脚图:并行IO接口及其应用:MCS-5系列单片机内部有4个8位的并行I/O接口i,分别命名为P0,P1,P2和P3。
每个并行I/O接口的各位均可作为输入或者输出。
由于他们都属于地址号可被8整除的特殊功能寄存器,故可以通过位寻址或者直接寻址方式对其进行按位或字节型的I/O操作。
印象位地址或字节地址表:PO口的结构及其功能:(1)1个输出锁存器,用于进行输出数据的锁存;(2)2个三态输入缓冲器,分别用于锁存器和引脚数据的输入缓冲;(3)1个多路开关MUX,它的一个输入来自锁存器,另一个输入是地址/数据信号的反相输出。
在控制信号的的控制下能实现对锁存器输出端和地址/数据线之间的切换;(4)由两只场效应管组成的输出驱动电路。
(5)除具有与P1口相同的功能外,在系统扩展时作为低8位地址与数据分时复用总线,既此时P0为地址/数据分时复用端口。
低8位由ALE信号的下跳沿锁存到外部地址锁存器中,而高8位地址由P2口输出。
P0口的特点:(1)P0口是一个双功能的端口:地址/数据分时复用口和通用I/O口;(2)具有高电平、低电平和高阻抗3种状态的I/O端口称为双向I/O端口。
P0口作地址/数据总线复用口时,相当于一个真正的双向I/O口。
而用作通用I/O口时,由于引脚上需要外接上拉电阻,端口不存在高阻(悬空)状态,此时P0口只是一个准双向口;(3)为保证引脚上的信号能正确读入,在读入操作前应首先向锁存器写1;(4)单片机复位后,锁存器自动被置1;(5)一般情况下,如果P0口已作为地址/数据复用口时,就不能再用作通用I/O口使用;(5)P0口能驱动8个TTL负载。
P1口的结构及其功能:(1)一个数据输出锁存器,用于输出数据的锁存;(2)两个三态输入缓冲器,BUF1用于读锁存器,BUF2用于读引脚;(3)数据输出驱动电路,由场效应管VT和片内上拉电阻R组成P1口的特点:(1)P1口由于有内部上拉电阻,没有高阻抗输入状态,所以称为准双向口。
51单片机实验程序
用查表方式编写y=x13+x23+x33。
(x为0~9的整数)#include<reg51。
h>void main(){int code a[10]={0,1,8,27,64,125,216,343,512,729};//将0~9对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255或-128~+127之间的话就用char,而现在的值明显超过这个范围,用int较合适.int的范围是0~65535或-32768~32767。
int y,x1,x2,x3;//此处定义根据习惯,也可写成char x1,x2,x3但是变量y一定要用int 来定义。
x1=2;x2=4;x3=9;//x1,x2,x3三个的值是自定的,只要是0~9当中的数值皆可,也可重复.y=a[x1]+a[x2]+a[x3];while(1);//单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。
}//结果的查询在Keilvision软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch的框架内双击“double-click or F2 to add”文字输入y后按回车,右侧会显示其16进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10进制数。
1、有10个8位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的数据(1的个数为偶数)都要存到内RAM50H开始的数据区中。
试编写有关程序。
#include〈reg51。
h>void main(){int a[10]={0,1,5,20,24,54,64,88,101,105};//将所要处理的值存入RAM中,这些可以根据个人随意设定,但建议不要超过0~255的范围.char i; //定义一个变量char *q=0x50;//定义一个指针*q指向内部0x50这个地址。
for(i=9;i〉=0;i--)//9~0循环,共十次,也可以用for(i=0;i〈10;i++){ACC=a[i];//将a[i]的值赋给累加器ACCif (P==0)//PSW0位上的奇偶校验位,如果累加器ACC内数值1的个数为偶数那么P为0,若为奇数,P为1。
单片机原理及接口技术(李朝青)课后习题答案——第六章
答:用 T1 控制位 C/T 切换定时器或计数器工作方式就可以使 T1 运行。定时器 T1 无工作模
式 3,将 T1 设置为工作模式 3,就会使 T1 立即停止计数,关闭。
8、以定时器/计数器 1 进行外部时间计数,每计数 1000 个脉冲后,定时器/计数器 1 转为定
时工作方式,定时 10ms 后又转为计数方式,如此循环不止。假定 为 6WHZ,用模式 1 编程。
16、89C51 单片机的定时器在何种设置下可提供三个 8 位计数器定时器?这时,定时器 1 可
作为串行口波特率发生器。若波特率按 9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100b/s 来考虑,
则此时可选用的波特率是多少(允许存在一定误差)?设 fosc=12MHz。
SJMP LOOP2
;时间未到,转 LOOP2,继续查询
9、一个定时器定时时间有限,如何实现两个定时器的串行定时以满足较长定时时间的要求?
答:当一个定时器溢出时,设置另一个定时器的初值为 0 开始定时。
10、使用一个定时器,如何通过软硬件结合方法实现较长时间的定时?
答:设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从
置 TMOD 中的 M1M0 为 00
(2) 模式 1:与模式 0 的唯一差别是寄存器 TH 和 TL 以全部 16 位参与操作。定时时间
t=(216-初值)×振荡周期×12;计数长度位 216=65536 个外部脉冲
置 TMOD 中的 M1M0 为 01
(3) 模式 2:把 TL0 和 TL1 配置成一个自动重装载的 8 位定时器/计数器。TL 用作 8 位
18、 设 fosc=12MHz。试编制一段程序,功能为:对定时器 T0 初始化,使之工作在模式 2,
8 STC15F2K60S2单片机的定时器计数器 例题
第8章STC15F2K60S2单片机的定时/计数器例题例8.1用T1方式0实现定时,在P1.0引脚输出周期为10mS的方波。
解:根据题意,采用T1方式1进行定时,因此,(TMOD)=00H。
因为方波周期是10mS,因此T1的定时时间应为5mS,每5mS时间到就对P1.0取反,就可实现在P1.0引脚输出周期为10mS的方波。
系统采用12M晶振,分频系数为12,即定时脉钟周期为1μS,则T1的初值为:X = M -计数值= 65536 - 5000 = = 60536 =EC78H即:TH1 = ECH,TL1 = 78H。
(1)查询方式实现:ORG 0000HMOV TMOD,#00H ;设T1为方式1定时模式MOV TH1,#0ECH ;置5mS定时的初值MOV TL1,#78HSETB TR1 ;启动T1Check_TF1:JBC TF1,Timer1_Overflow ;查询计数溢出SJMP Check_TF1 ;未到5mS继续计数Timer1_Overflow:CPL P1.0 ;对P1.0取反输出SJMP Check_TF1 ;未到1s继续循环END(2)中断方式实现:ORG 0000HLJMP MAIN ;上电复位后,转MAINORG 001BHLJMP Timer1_ISR ;T1中断响应后,转Timer1_ISRORG 0100HMAIN:MOV TMOD,#00H ;设T1为方式1定时模式MOV TH1,#0ECH ;置5mS定时的初值MOV TL1,#78HSETB ET1154SETB EA ;开放中断SETB TR1 ;启动T1SJMP $ ;原地踏步,模拟主程序Timer1_ISR:CPL P1.0 ;对P1.0取反输出RETI ;中断返回,回到主程序执行SJMP $END155例8.2 用定时/计数器扩展外部中断。
解:当实际应用系统中有两个以上的外部中断源,而片内定时/计数器未使用时,可利用定时/计数器来扩展外部中断源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORG 0000H
LJMP MAIN ;跳到主程序
ORG 000BH
LJMP TIMER0 ;跳到T0服务程序
ORG 0100H
MAIN:MOV TMOD,#01H ;设置T0方式1定时
MOV TH0,#3CH ;送50ms时间常数
MOV TL0,#0B0H
MOV R7,#20 ;设置软件计数20次,定时1s
SETB ET0 ;允许T0中断
SETB EA
CLR PT0 ;设置T0中断为低级中断
SETB TR0 ;启动T0定时
SJMP $ ;等待中断
ORG 0200H ;进入中断服务程序
TIMER0:DJNZ R7,BACK ;1s时间未到转入BACK
MOV R7,#20 ;1s时间到重设软件计数器
CPL P1.0 ;对P1.0信号取反
BACK:MOV TH0,#3CH ;重装时间常数
MOV TL0,#0B0H
RETI ;中断返回
END
ORG 00H
TICK EQU 10000 ;10000 ×100uS = 1S
T100uS EQU 156 ;100uS时间常数(12M)
C100uS EQU 30H ;100uS记数单元
LEDBUF EQU 40H
LED BIT P1.0
LJMP START ;跳至主程序
ORG 000BH ;中断子程序起始地址
T0INT: PUSH PSW ;状态保护
MOV A, C100uS+1
JNZ GOON
DEC C100uS ;秒计数值减1
GOON: DEC C100uS+1
MOV A, C100uS
ORL A, C100uS+1
JNZ EXIT ; 100uS 记数器不为0, 返回
MOV C100uS, #HIGH(TICK) ;100uS 记数器为0, 重置记数器 MOV C100uS+1, #LOW(TICK)
CPL LEDBUF ;取反LED
EXIT: POP PSW
RETI
START: MOV TMOD, #02H ;方式2, 定时器
MOV TH0, #T100uS ;置定时器初始值
MOV TL0, #T100uS
MOV IE, #10000010B ; EA=1, IT0 = 1
SETB TR0 ;开始定时
CLR LEDBUF
CLR LED
MOV C100uS, #HIGH(TICK) ;设置10000次计数值 MOV C100uS+1, #LOW(TICK)
LOOP:
MOV C, LEDBUF
MOV LED, C
LJMP LOOP
END。