本科实验报告
课程名称: 单片机原理与接口技术
实验项目: 定时/计数器应用设计
实验地点: 跨越机房
专业班级: 学号:
学生姓名:
指导教师:
2012 年 4 月 10 日
一、实验目的和要求
(1)加深对MCS-51单片机定时/计数器内部结构、工作原理和工作方式的理解。
(2)掌握定时/计数器工作在定时和计数两种状态下的编程方法。
(3)掌握中断服务程序的设计方法。
二、实验内容和原理
(1)定时器实验
在使用12MHz晶振的条件下,用T1产生50ms定时,两个7段LED数码管从“00”开始显示,每1s加1,到达“59”后,再从“00”开始,完成60s定时功能。
(2)计数器实验
用T0对外部输入脉冲进行计数。P0口上接8只发光二极管,开始时8只发光二极管全灭,然后由T0输入脉冲,5个脉冲后,8只发光二极管全亮,持续5个脉冲后全灭,再等5个脉冲输入后全亮,如此循环。
三、主要仪器设备
计算机一台;伟福6000
四、操作方法与实验步骤(上机源程序)
(1)定时器实验程序
ORG 0000H
AJMP START ;跳到START处开始执行
ORG 001BH ;定时/计数器1中断入口地址
AJMP TIME1 ;跳转到中断执行程序
ORG 0030H
START: MOV SP,#60H ;设置堆栈起始地址
MOV TMOD,#10H ;设定T1工作于定时方式1
SETB EA ;开启总中断
SETB ET1 ;开启T1中断
MOV R3,#60 ;设定时60s
MOV R0,#0 ;初始化软件计数器1
MOV R1,#0 ;初始化软件计数器2
MOV TH1,#3CH ;装入定时器计数初值
MOV TL1,#0B0H ;定时时间为50ms
SETB TR1 ;启动T1定时
SJMP $ ;等待中断
TIME1: PUSH ACC ;ACC入栈
PUSH PSW ;PSW入栈
INC R0 ;软件计数器1加1
MOV A,R0 ;(R0)→A
CJNE A,#20,T_LP2 ;1s到了吗,到了则输出LED;把R1中值转换为十进制数输出
MOV A,R1 ;(R1)→A
MOV B,#10 ;10→B
DIV AB ;(A)/(B)→A,(A)%(B)→B
SWAP A ;将得到十位数乘以10→A
ADD A,B ;(A)+(B)→A
MOV P1,A ;把A中的值输出到P1
INC R1 ;软件计数器2加1
CJNE R1,#60,LP0 ;判断软件计数器2是否到达60
MOV R1,#00H ;达到60则清零
LP0: MOV R0,#00H ;软件计数器1清零
T_LP2: MOV TH1,#3CH ;重新装入定时器计数初值
MOV TL1,#0B0H ;定时50ms
POP PSW ;取回数据
POP ACC
RETI ;返回
END
(2)计数器实验程序
ORG 0000H
MOV TMOD,#06H ;设置T0工作于方式2,计数器模式
MOV TH0,#251 ;初始化计数初值=256-5
MOV TL0,#251
SETB TR0 ;开始计数
START: MOV P0,#0FFH ;LED全部灭掉
JNB TF0,$ ;判断计数器是否溢出
CLR TF0 ;清除溢出标志
MOV P0,#00H ;LED全部点亮
JNB TF0,$ ;继续判断计数器是否溢出
CLR TF0 ;清除溢出标志
AJMP START ;返回
END
五、实验数据记录和处理
(1)数码管从00开始1S加1到59,再1S后清0,再继续加。
(2)彩灯一会全亮一会全灭。
六、实验结果与分析
用晶振脉冲我们实现了定时器功能,用计数功能计算脉冲数,实现了彩灯的间歇全亮全灭。
七、讨论、心得
实验成功,通过本实验的编程和用自己的开发板观察现象,对脉冲有了更深的了解,我们可以通过对脉冲数的记录来人为控制一些东西,实现我们所需要的功能。
第二篇:《设计任意进制计数器》的实验报告
实验八 设计任意进制计数器
一、实验目的
掌握中规模集成计数器的使用方法及功能测试方法。
二、实验内容及要求
采用(74LS192)复位法或预置数法设计一个三位十进制计数器。要求各位同学设计的计数器的计数容量是自己学号的最后三位数字。
三、设计过程
74LS192是中规模同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列如图所示。74LS192(CC40192)的功能如下表所示。
表74LS192(CC40192)的功能
用M进制集成计数器可以构成N(任意)进制的计数器。通常用反馈清零法和反馈置数法。当计数器的计数N>M时,则要用多片M进制计数器构成。其计数规律为:当低位计数器没有达到计数的最大值时,如74LS192的1001时,其高位芯片应处于保持状态,只有当低位芯片计数达到最大值时,给相邻的高位芯片计数器发一个信号,使其脱离保持状态,进入计数状态。现以233为例为计数容量进行设计。由于233为三位数,因此需用三块74LS192。
1、清零法:
CR(RD)=(Q1Q0)百(Q1Q0 )拾(Q1)个
初态:0000
终态:233-1=232即:0010 0011 0010
状态转换图:(略)
2、置数法:由于74LS192是具有异步清零、置数功能的十进制计数器,因此保留哪233种状态,方法有多种。下图是其中两种置数法。犹以最后一种使用器件最少,接线最为简单。
方案一:
方案三:
=(Q1Q0)百(Q1Q0 )拾(Q2Q0)个 (或=)
初态:0000 (或1000-332=668)
终态:332-1=331即:0011 0011 0001 (或999)
四、实验用仪器、仪表
数字电路实验箱、万用表、74LS192、74LS00、74LS20、74LS08等
五、实验步骤
① 清零法:
1. 检查导线及器件好坏(即加上电源后,按74LS192的功能表进行检测)。
2. 按上图连接电路。、CPD分别接逻辑开关并置为高电平,百位(74LS192(3))、拾位、个位的Q3、Q2、Q1、Q0分别接发光二极管或数码管,计数脉冲接手动或1Hz时钟脉冲。检查无误后接通电源。
3. 加入CP进行测试并检查结果是否正确,如有故障设法排除。
4. 结果无误后记录数据后拆线并整理实验设备。
实验数据如下:
实验证明,实验数据与设计值完全一致。设计正确。
② 置数法:
1. 检查导线及器件好坏(即加上电源后,按74LS192的功能表进行检测)。
2. 按上图连接电路。CR、CPD分别接逻辑开关并置为高电平,百位(74LS192(3))、拾位、个位的Q3、Q2、Q1、Q0分别接发光二极管或数码管,计数脉冲接手动或1Hz时钟脉冲。检查无误后接通电源。
3. 加入CP测试并检查结果是否正确,如有故障设法排除。
4. 结果无误后记录数据后拆线并整理实验设备。
实验数据如下:
实验证明,实验数据与设计值完全一致。设计正确。
六、设计和实验过程的收获与体会。
1、设计过程的收获与体会:
①设计前要确定是用清零法还是置数法。
②要将状态表列出。特别是置数法,要保留哪几种状态方法有多种。
③可用Electronics Workbench进行仿真。以验证设计正确与否。
2、实验过程的收获与体会:
① CC40192的CR、、CPD端不能悬空;
② 出现故障时,首先检查电源,然后检查CP,CR、、CPD端的电平状态。如不相符,则可能存在断路现象。如相同,可能存在设计错误,或者可能器件已损坏。
③实验逻辑电路图最好把集成块的引脚标上,以便接线和检查。