MCU实验三
更新时间:2023-10-26 03:41:01 阅读量: 综合文库 文档下载
- 西南交大mcu实验推荐度:
- 相关推荐
实验三 定时器/计数器
一、实验目的:
1、熟悉单片机内部脉冲计时原理; 2、掌握各种模式下计时程序设计方法;
3、掌握定时器/计数器控制字及计数初值设置方法; 二、实验内容:
1、定时器:内部脉冲计时。振荡频率11.0592MHz。设置T0工作于方式1,分别采用“中断方式”和“查询方式”,实现1s延时。运用此定时,控制P1.0口LED实现每隔1秒状态发生一次反转。
2、计数器:外部脉冲计数。P3.4口接按键,P1口接
2位数显,BCD码方式显示。设置T0工作于方式2,通过
控制字利用T0实现24进制计数,按键每按下一次数显显示数字加1。
三、实验方法: 1、在方式1下,采用20个50ms循环延时的方法,实现1s定时。振荡频率11.0592MHz时,每一次计时长12/11059200=1.085μs,50ms计数则需计数
50*10^3/1.085=46083次,对应计数初值
(65536-46083)。
(1)中断方式:开定时开中断,利用中断矢量,通过定时器溢出触发中断服务。 参考汇编程序:
COUNT EQU 30H ORG 0000H
LJMP START ORG 000BH LJMP INTR0 START:MOV COUNT,#20 ORG 0100H
MOV TMOD,#00000001B MOV TH0,#(65536-46083)/256 //计数初值设定 //工作方式设定50ms MOV TL0,#(65536-46083) MOD 256 延时 SETB ET0 SETB EA SETB TR0 ////开中断启动T0 INTR0:DJNZ COUNT,NOOP SJMP $
CPL P1.0 NOOP: MOV TH0,#(65536-46083)/256 MOV COUNT,#20
MOV TL0,#(65536-46083)MOD 256 SETB TR0 RETI END
(2)查询方式:关定时关中断,通过查询TCON中TF0位,判断是否达到延时上限。
参考汇编程序: COUNT EQU 30H
ORG 0000H
LJMP START
START:MOV COUNT,#20 ORG 0100H
MOV TMOD,#00000001B
MOV TH0,#(65536-46083)/256 ////工作方式设定计数初值设定
50ms延时 MOV TL0,#(65536-46083) MOD 256 CLR ET0 //关中断 CLR EA WAIT:JBC TF0,NOOP SETB TR0 //指定位是否为1,为1则清0并跳转
NOOP:MOV TH0,#(65536-46083)/256 SJMP WAIT
//重设初值
MOV TL0,#(65536-46083)MOD 256
SETB TR0
DJNZ COUNT,WAIT
CPL P1.0
MOV COUNT,#20
RET END
2、设置T0工作于自重装的方式2,计数初值为(2^8-24)。TH0、TL0都赋同样初值,保证TL0溢出后自动从TH0取初值再次计数。开总中断的同时要关闭T0的中断,让其自循环运行。
注意:
(1)TH0中数据保持不变,TL0中数据是从232(2^8-24)开始加1到255的,显示时计数值必须减掉232;
(2)TL0减232后仍为一个十六进制数,交给数显会显示出“A、B、C、D、E、F”的字符,所以必须进行调整。调整的方法有:
a、判断需要输出的数值大小,如果小于10则不需要调整;大于10小于20则+6;大于20则执行2次+6;
b、将需要输出的数值对“十”分别取商取余,将商左移4位,再与余数“或”操作,组合后输出。
参考汇编程序:
ORG 0000H LJMP START START: MOV TMOD,#06H ORG 0100H
MOV TH0,#(256-24) MOV TL0,#(256-24) CLR ET0 SETB EA LOOP: MOV A,TL0 SETB TR0
SUBB A,#232 MOV B,#10 DIV AB
//\取商取余\组合法 RL A
RL A RL A RL A ORL A,B // LJMP DIS // MOV R1,A //\过十加六\调整法// CLR C
// SUBB A,#10 // JC // MOV A,R1 SLV1 // CLR C
// SUBB A,#20 // JC SLV2 // JNC SLV3 //SLV1: MOV A,R1 JMP LOOP // // CLR C //试着将三处“C清零”删除,看看结果如何 //SLV2: MOV A,R1 JMP DIS
// // CLR C
// ADDC A,#6 //SLV3: MOV A,R1 JMP DIS
// // CLR C
// ADDC A,#12 DIS:MOV P1,A JMP DIS SJMP LOOP END
四、实验报告
1、编写C程序分别用“中断方式”和“查询方式”实现1s延时,绘制程序流程图,记录实验结果;
2、在方式1下,调整计数初值或循环次数,使得延时长度尽可能准确到1s;
3、提高要求:在4种定时工作方式1下,采用不同的循环延时方法,实现1s定时。
*4、课程考核项目(最后一周):
(1)利用定时/计数器实现6位24小时制数字时钟; (2)利用定时/计数器实现三方向交通灯; (3)采用“四相单双八拍”方式控制步进电机; (★)利用定时/计数器测试脉冲宽度。 五、思考:
(1)计时程序设计时,将主操作写在主程序中和放在中断服务程序中,对延时精度有什么影响;
(2)若采用方式0,同样实现1s定时,能否仍采用20个50ms延时循环的方式实现,为什么;
(3)对比分析“中断方式”和“查询方式”控制定时器/计数器实现1s延时方法的差异;
(4)实验内容2中,十六进制数显示为十进制形式时必须进行调整。简述需要调整的原因,及“过十加六”和“取商取余”两种方法的原理。
参考C程序:
1(1):
#include
unsigned char temp;
void Time0(void) interrupt 1 { temp++;
TH0=(65536-46083)/256; //TH0重装 temp=0;
while(1) //无限查询 { while(TF0) //检测到标志位被置位 { TF0=0; TH0=(65536-46083)/256; //TH0重装 TL0=(65536-46083)%6; //TL0重装 temp++; if(temp==20) { }
TL0=(65536-46083)%6; void main(void) {
EA=1; ET0=1; TMOD=0x01; TH0=(65536-46083)/256; TL0=(65536-46083)%6; TR0=1; temp=0; while(1) { if(temp==20) { LED=~LED; temp=0; }
} } #include
sbit LED=P1^0;
unsigned char temp; void main() {
// // EA=0; ET0=0; TMOD=0x01; TH0=(65536-46083)/256; TL0=(65536-46083)%6; TR0=1; TF0=0; //TL0重装 ////T0总中断开//T0中断允许 //TH0模式1 //TL0赋值 //启动定时器赋值 T0 ////关总中断,可省略//T0关T0中断,可省略 //TH0模式1 //TL0赋值 //赋值 //启动标志位清零T0,不可省
LED=~LED; temp=0; } } }
} #include
#include
unsigned char gewei,shiwei; void main() { TMOD=0x06; ET0=0; EA=1; TR0=1; TH0=(256-24); TL0=(256-24); while(1) { // temp=TL0-232; // { //“过十加六”调整法 // // if(temp<10) // P1=temp; else if(temp<20) // // P1=temp+6; // else P1=temp+6+6; } { //“取商取余”组合法 shiwei=temp/10; gewei=temp;
}
}
}
shiwei=_crol_(shiwei,4); P1=(shiwei | gewei);
正在阅读:
MCU实验三10-26
人教A版高中数学必修四《三角函数的图像与性质》学案306-18
杜瓦罐基础知识及操作规程04-24
一般政工程安全与文明施工监理细则05-14
市卫生健康委员会年度工作总结和2022年卫生健康法治建设工作规划08-01
小学有关校内公开课工作的通知11-16
蓄能悬架的结构设计与性能研究08-06
浙江摄影出版社 小学信息技术六年级下册教学计划和教案04-25
北师大语文一年级下《十六 快乐 大家都快乐》 赛课教学设计 - 006-14
信息技术教师区十佳教学能手事迹材料10-20
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 实验
- MCU