2.2 计数模块设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)

2024-07-10
| 36页
| 56人阅读
| 2人下载
普通

内容正文:

任务2 计数模块设计与制作 单片机技术与应用 项目二 智能车间生产线计数系统设计与制作 任务2 计数模块设计与制作 三诺生物传感有限公司 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 【基础任务要求】利用红外光电传感器检测产品进行计数,当计数值达到3时报警,并且每1秒钟信号灯闪烁一次。(用中断方式实现计数) 任务2 计数模块设计与制作 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务实现四步骤 绘制控制电路图 搭接硬件电路 硬件设计 调试控制电路 调试控制程序 软硬件调试 仿真运行 实物运行 功能实现 绘制流程图 编程实现三个功能:中断计数、蜂鸣器控制、1秒定时 软件设计 01 02 03 04 重点、难点 难点 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 STC89C52 单片机 时钟电路 复位电路 电源电路 指示灯电路 系统框图 任务2 计数模块设计与制作 蜂鸣器电路 红外光电传感器 电路 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务2 计数模块设计与制作 红外光电 传感器 时钟电路 复位电路 指示灯电路 蜂鸣器电路 显示电路 按键电路 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 任务名:计数模块设计与制作 元件名称 图片 型号 数量 Proteus中的名称 单片机芯片 AT89C51 1 用AT89C51代替STC89C52 晶振 12MHZ 1 CRYSTAL 电容 22pF 2 CAP 电解电容 22μf/16V 1 CAP-ELEC 电阻 0.1KΩ 1 RES 电阻 470Ω 1 RES 电阻 10KΩ 1 RES 发光二极管 1 LED-RED 红外光电传感器 1 用按钮button代替 三极管 1 PNP 蜂鸣器 1 BUZZER 元器件选型 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 硬件电路图 任务2 计数模块设计与制作 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 硬件设计-绘电路 细致 规范 严谨 小锦囊 电路绘制规范: 用统一规定的元件符号 尽量避免导线的交叉 导线要求横平竖直 设置元器件参数 元件放在编辑区内 元器件之间要用导线连接 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 软件设计 2 如何用中断方式编程实现1秒延时? 重点、难点 1 如何用中断方式编程实现计数函数? 重点、难点 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 1. 中断系统的结构 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 5个中断源 2个优先级 2个外部中断 3个内部中断 INT0 ( P3.2 ) INT1 ( P3.3 ) T0 T1 UART 与中断有关的特殊功能寄存器: IP: 中断优先控制寄存器 IE: 中断允许控制寄存器 TCON: 定时/计数控制寄存器 SCON: UART控制寄存器 中断标志寄存器 可编程,可控 MCS –51 中断要点 2. 中断源及相关中断标志 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 3. 定时/计数器控制寄存器TCON TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0 INT1 INT0 触发方式控制位 0 低电平触发 1 边沿↓触发 INT1 INT0 外部中断请求标志 1 有有效触发时 0 当CPU响应中断时 T1 T0 溢出标志 由硬件 自动 中断请求标志 可编程控制位 在每个机器周期 S5P2 都采样引脚 P3.3 P3.2 0 记录有无中断 0 当CPU响应中断时,也可由指令清除 1 计数器“+1”有溢出时,并向CPU请求中断 知识链接 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 中断允许寄存器 IE EA ES ET1 EX1 ET0 EX0 INT0 INT1 T1 T0 UART CPU 0 禁止 1 允许 0 禁止 1 允许 总 中断 总 中断 中断 中断 IE (A8) 中断的开放和禁止是可控,可编程的 T2 CPU IE 的相应位被置 “0” 或 “1” 该相应中断即被“禁止”或“开放” 4. 中断控制寄存器 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 void timer0() //定时1秒函数 { unsigned int i; for(i=0;i<1000;i++) { TH0=0xFC; TL0=0x18; while(!TF0) { ; } TF0=0; } } void main() //主函数 { TMOD=0x01; TH0=0xFC; TL0=0x18; TR0=1; EX0=1; EA=1; while(1) { jishu(); led=0; timer0(); led=1; } } 中断编程步骤 开放中断源允许 开放总中断源允许 中断函数编程 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 5. IP寄存器(优先级控制) 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 例:设有如下要求,将T0、外中断1设为高优先级,其他为低优先级,求IP的值。 IP的值:0x06 在上例中,如果5个中断请求同时发生,求中断响应的次序。 响应次序为: 定时器0-外中断1-外中断0-定时器1-串行中断 1 1 0 0 0 0 0 0 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 特定事件发生 主程序 主程序 中断服务子程序 断点 中断源 CPU 6.单片机的中断过程 中断请求 中断响应 中断服务 中断返回 中断请求 中断响应 中断服务 中断返回 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 7.中断源-一些特定的事件,也称中断请求信号 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 8.中断服务程序 处理特定事件的一段程序。 中断编程步骤 开放中断源允许 开放总中断源允许 中断函数编程 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 特定事件发生 主程序 主程序 中断服务子程序 断点 中断源 CPU 红外光电传感器检测到产品 中断响应 计数产品,当产品数为3时,报警 知识链接 8.中断服务程序 处理特定事件的一段程序。 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 8.中断服务程序 处理特定事件的一段程序。 void jishu() interrupt 0 //计数函数 { unsigned int js; if(IRIN==0) // 如果红外输入=0 { delay(10); // 延时10ms if(IRIN==0) { while(!IRIN); // 松手检测 js++; if(js==3) { baojing(); //调用报警函数 js=0; } } } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 9. 中断函数的定义 在C语言程序中,中断函数使用关键词interrupt与中断号来定义中断函数,其一般形式如下: void 中断函数名() interrupt 中断号[using n] { 声明部分; 执行部分; } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 中断源名称 对应引脚 中断入口地址 C语言中断源服务程序入口 外部中断0 INT0(P3.2) 0003H 0 定时/计数器0 T0(P3.4) 000BH 1 外部中断1 INT1(P3.3) 0013H 2 定时/计数器1 T1(P3.5) 001BH 3 串行口中断 串行接收RXD(P3.0) 串行发送TXD(P3.1) 0023H 4 10. 中断函数的定义 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 void jishu() interrupt 0 //计数函数 { unsigned int js; if(IRIN==0) // 如果红外输入=0 { delay(10); // 延时10ms if(IRIN==0) { while(!IRIN); // 松手检测 js++; if(js==3) { baojing(); //调用报警函数 js=0; } } } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 中断函数与普通子函数有什么区别? 中断函数是在发生中断时间后,主程序自动进入中断函数运行,运行结束后在退出中断函数,返回到进入中断函数之前的运行状态。 普通的函数则需要主函数去调用。 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 #include<reg51.h> sbit IRIN=P3^2; //红外光电传感器 sbit beep=P1^3; //蜂鸣器 sbit led=P1^7; //信号灯 void baojing(); //报警函数的声明 void delay(unsigned int z); //延时函数的声明 void timer0(); //1秒定时函数 void led1(); //指示灯闪烁函数的声明 void jishu() interrupt 0 //计数函数 { unsigned int js; if(IRIN==0) // 如果红外输入=0 { delay(10); // 延时10ms if(IRIN==0) { while(!IRIN); // 松手检测 js++; if(js==3) { baojing(); //调用报警函数 js=0; } } } } 如何用中断方式编程实现计数? 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 void baojing() //报警函数 { beep=0; //蜂鸣器响 delay(100); beep=1; //蜂鸣器不响 delay(100); } void delay(unsigned int z) //延时函数 { unsigned int x,y; for(x=z;z>0;z--) for(y=110;y>0;y--); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 void timer0() //定时1s函数 { unsigned int i; for(i=0;i<1000;i++) { TH0=0xFC; TL0=0x18; while(!TF0); TF0=0; } } void main() //主函数 { TMOD=0x01; TH0=0xFC; TL0=0x18; EA=1; TR0=1; EX0=1; while(1) { led1(); } } void led1() { led=0; timer0(); led=1; timer0(); } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 程序代码编写规范: 1. 字母大小写一致 2. 标点符号必须在英文状态下输入 3. 遵循变量命名规则 4. 注意TH0、TL0、TF0、TR0 TH1、TL1、TF1、TR1 5. 注意循环语句的格式 勤勉 创新 坚持 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 【举一反三】如何用中断方式编程实现1秒定时? 特定事件发生 主程序 主程序 中断服务子程序 断点 中断源 CPU 1毫秒时间到 中断响应 循环1000次达到1秒 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 #include<reg51.h> sbit IRIN=P3^6; //红外光电传感器 sbit beep=P1^3; //蜂鸣器 sbit led=P1^7; //信号灯 void jishu(); //计数函数的声明 void baojing(); //报警函数的声明 void delay(unsigned int z); //延时函数的声明 void jishu() //计数函数 { unsigned int js; if(IRIN==0) // 如果红外输入=0 { delay(10); // 延时10ms if(IRIN==0) { while(!IRIN); // 松手检测 js++; if(js==3) { baojing(); //调用报警函数 js=0; } } } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 void baojing() //报警函数 { beep=0; //蜂鸣器响 delay(100); beep=1; //蜂鸣器不响 delay(100); } void timer0() interrupt 1 //定时1s函数 { unsigned int i; for(i=0;i<1000;i++) { TH0=0xFC; TL0=0x18; TR0=1; led=1; } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 知识链接 void delay(unsigned int z) //延时函数 { unsigned int x,y; for(x=z;z>0;z--) for(y=110;y>0;y--); } void main() //主函数 { TH0=0xFC; TL0=0x18; ET0=1; EA=1; TR0=1; while(1) { led=0; jishu(); } } 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 小 结 正在运行的程序 中断 中断返回 CPU收到 中断信号 中断服务程序执行结束, 返回继续执行原程序 CPU中断正在执行的程序, 转到执行中断服务程序 虚拟仿真 方案设计 任务拓展 实物联调 总结评价 任务引入 每天学习一点点,变成更好的自己 单片机技术与应用 Lavf57.58.101 $$

资源预览图

2.2 计数模块设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
1
2.2 计数模块设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
2
2.2 计数模块设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
3
2.2 计数模块设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
4
2.2 计数模块设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
5
2.2 计数模块设计与制作(课件)- 《单片机技术与应用》同步教学(机工版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。