西南科技大学单片机实验考试程序解决方案.doc

西南科技大学单片机实验考试程序解决方案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(在两个中)识别最大模拟输入通道 任务 利用0809采集两路模拟电压,将电压值最大的通道号显示在LED显示器上。(硬件电路参见AD_CH2_1.DSN)。 设计参考: ① 算法:依次采集两路模拟电压,并将其保存。当所有通道都采集完后,比较通道的采样值,将采样值最大的通道号显示(当采样值一样时,显示其中最小通道编号)。注:通道IN0~IN7的编号分别为0~7。 ② LED显示的段码: 字符 编码 0 0C0H 1 0F9H 2 0A4H 3 0B0H 4 99H 5 92H 6 82H 7 0F8H 8 80H 9 90H ③ 地址分配: 0809片选地址 3C00H 通道地址 片选地址+通道编号 3X3键盘扫描 任务 利用8155的PB、PC口实现3X3键盘扫描(硬件电路参见3X3KEY_8155.DSN)。当1~8号键独立按下时,连接在PA口对应的LEDx点亮(即1号键按下时LDE1亮,2号键按下时LDE2亮),当9号键按下时,所有LED点亮,当没有键按下时,所有LED熄灭。 设计参考: ① 8155命令/状态寄存器格式: PA 0=A口输入;1=A口输出 PB 0=B口输入;1=B口输出 PC2PC1 00=A口、B口基本输入输出,C口输入 01=A口、B口基本输入输出,C口输出 10=略 11=略 IEA 略 IEB 略 TM2TM1 略 ② 8155端口地址分配: 控制口 7F00H PA 7F01H PB 7F02H PC 7F03H 3X3键盘扫描 任务 利用8255的PC口实现3X3键盘扫描(硬件电路参见3X3KEY_8255.DSN)。当1~8号键独立按下时,连接在PA口对应的LEDx点亮(即1号键按下时LDE1亮,2号键按下时LDE2亮),当9号键按下时,所有LED点亮,当没有键按下时,所有LED熄灭。 设计参考: ① 8255控制字格式: ② 8255端口地址分配: PA 0000H PB 0400H PC 0800H 控制口 0C00H 50赫兹同步锯齿波发生器 任务 利用0832同步输出两个频率为50赫兹的锯齿波(硬件电路参见DA_BUF2_1.DSN)。 设计参考: ① 锯齿波算法:设定时周期为200us,在定时时间到后,将当前DA输出值在前次输出值上增加某固定值(例如1),当20ms累计时间到后,DA输出值清零。 if(TIME20ms) DAVAL++ ; else DAVAL = 0 ; OUTPUT(DAVAL); ② 同步输出方法:先分别向2个0832的第1级缓冲寄存器送DA值,然后同时向0832的第2级缓冲寄存器送值(因2个0832的第2级控制信号是并联的),及可实现同步转换输出。 ③ 0832地址分配: 1#第1级缓冲寄存器 2000H 2#第1级缓冲寄存器 2400H 第2级缓冲寄存器 3C00H PWM波发生器 任务 在硬件电路PWM.DSN中实现P1.7输出PWM波。周期T=100ms,初始占空比(T1/T)为50%,按键KEY1每次增加占空比10%(直到90%),KEY2每次减小占空比10%(直到10%)。 设计参考: ① PWM产生方法: 思路: 在一个载波周期内,时间小于T1时P1.7输出为1,其余P1.7均为0。因此,通过比较当前时间值与设定值的位置关系来决定P1.7置0或置1,即可生成PWM波形。 算法: 定义变量 占空比设定值(记为Duty,数值为1~9,时间单位为定时时间常数)。 当前时间值(记为设置Counts,数值为0~10,时间单位为定时时间常数) 设置定时时间为固定常数(10ms),在定时中断服务时做以下处理: 重置定时器; Counts ++; Counts %= C;(C为固定载波周期,数值为10,时间单位为定时时间常数) IF Counts Duty THEN P1.7 = 1 ELSE P1.7 = 0; 继续其他服务。 ② 按键应考虑去除键抖动,在改变PWM占空比后应等待键释放,释放时同样要考虑去除键抖动。 编码显示器 任务 利用8255扩展并行端口(硬件电路参见CodeDisplay_8255.DSN)。当KEY按下时,利用8255的PC口输入二进制值编码(6位),将该值转换成十进制后显示在2位7段LED显示器上。 设计参考: 步进电机转速控制 任务 在SMSpeed.DSN的电路上实现:当KEY2按下时,电机停止转动,释放时继续转动。当KEY1按下时,电机以60转/min的转速正转,释放时以120转/min的转速反转。 设计参考: ① 4相步进电机,每顺序切换一相(1步),电机旋转18°,电机转动1圈共需要

文档评论(0)

阿里山的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档