单片机实训
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
调用按键输入程序
Y
调用显示程序
N 时间到? 时间到? Y
C、确定段码
P2.7 a 0 1 2 3 4 5 6 7 8 9 P2.6 b P2.5 c P2.4 d P2.3 e P2.2 f P2.1 g P2.0 h 十六 进制
3、按键电路设计 单片机对按键的识别是通过读端口状态完 成 的 。比 如,当 按键按 下时, 端口电 平 是 “0”,当按键松开时,端口电平是“1”。 由于按键数量少,可设置四个独立按键。
定时器中断服务程序
中断服务程序流程图
N 1分到吗? 分到吗? 分到吗 关闭定时器 Y 重新赋初值 秒变量减1 秒变量减
计时变量加1 计时变量加
分变量等于59 分变量等于
N 1秒到吗? 秒到吗? 秒到吗 Y 秒变量减1 秒变量减
清除中断标志
打开定时器
中断返回 计时变量清零
主程序流程图
初始化变量 调用报警子函数 N 初始化定时器 重开始? 重开始?
获得千位
获得千位的段码 关闭不该显示的位
获得百位
获得百位的段码 返回
获得十位
获得十位的段码
获得个位的段码
获得个位
C、按键输入子程序 、 功能: 功能:实习单片机与按键接口 算法:根据电路连接形式,设定 个位变量 个位变量, 算法:根据电路连接形式,设定4个位变量, 分别表示“开始键” 分别表示“开始键”、“加”、“减”、 设置键” “设置键”,通过对这四个位变量电平的判 来确定键是否按下。 断,来确定键是否按下。 另外设4个变量 个变量, 另外设 个变量,分别用于保存相应按键按 下时间,以实现延时消抖的功能( 下时间,以实现延时消抖的功能(需要用到 按键的程序中,对这是4个变量的值进行判断 个变量的值进行判断, 按键的程序中,对这是 个变量的值进行判断, 只有其值大于一定数值后, 只有其值大于一定数值后,才认为键被按 下)。
返回本节
三、绘制原理图
根对硬件电路的分析, 根对硬件电路的分析,用protel99绘制原理图 绘制原理图
返回本节
四、绘制PCB图
五、软件设计 A、显示子程序 动态显示,根据人眼的视觉暂留特性以一定的 频率循环点亮每一位数码管的显示方式。
显示指示变量加1 显示指示变量加
关断所有显示
变量等于1 变量等于
判断指示变量的值
变量等于4 变量等于 变量等于2 变量等于 变量等于3 变量等于
点亮第一 位数码管
点亮第二 位数码管
点亮第三位 数码管
点亮第四 位数码管
段码给第一位数 码管
段码给第二位 数码管
段码给第三位 数码管
段码给第四 位数码管
变量清零 退出
B、代码转换子程序
功能:将一个十进制数的每一位拆开,通过查表获得相应的段码。 功能:将一个十进制数的每一位拆开,通过查表获得相应的段码。 流程图: 流程图:
重庆工业职业技术学院自Hale Waihona Puke Baidu化系 单 片 机 应 用 技 术 实 训
连艳
一、任务与要求
1、设计并制作一个3位数显倒计时器 、设计并制作一个 位数显倒计时器 2、计时时间由按键输入 、 3、设定4个按键,功能分别为“设置”,“开始”,“加”,“减 、设定 个按键 功能分别为“设置” 个按键, 开始” 按下“设置”键作为程序设置开始,通过“加”,“减”改变数值 按下“设置”键作为程序设置开始,通过“ 长按“设置”键确定并退出,按下“开始”键倒计时开始; 长按“设置”键确定并退出,按下“开始”键倒计时开始; 4、计时完成后,要求声光报警;按任意键重新开始倒计时; 、计时完成后,要求声光报警;按任意键重新开始倒计时; 5、提交电路原理图、PCB图、程序流程图、源程序代码、 、提交电路原理图、 图 程序流程图、源程序代码、 hex文件; 文件; 文件
二. 任务分析与实施
1、单片机最小系统的工作条件 、 A、正确的电源电压。40脚接正5V,20脚接负极; B、正确的时钟电路。18,19脚接正确的时钟电路; C、正确的复位电路。9脚外接复位电路;
2、显示电路设计
A、数码管工作原理 、
B、驱动电路设计 、 由于数码管内部是八只发光二极管, 由于数码管内部是八只发光二极管,一支的发光电流 大概是10-20MA,所以公共端的电流约80MA,显然单 ,所以公共端的电流约 大概是 , 片机端口不更提供这么大的电流,需要扩流。 片机端口不更提供这么大的电流,需要扩流。 常用的办法是运用专门的驱动芯片,不如 常用的办法是运用专门的驱动芯片,不如ULN2003;或 ; 者用三极管扩流。 者用三极管扩流。
按键输入流程图
开始键按下吗? 开始键按下吗?
开始建延时变量加1 开始建延时变量加
设置键按下吗? 设置键按下吗?
设置键延时变量加1 设置键延时变量加
加键按下吗? 加键按下吗?
加键延时变量加1 加键延时变量加
键键按下吗? 键键按下吗?
减键延时变量加1 减键延时变量加
返回
D、时钟产生模块
定时器初始化程序(设定定时器工作方式,赋初值)