西南科技大学单片机实验考试程序_第1页
西南科技大学单片机实验考试程序_第2页
西南科技大学单片机实验考试程序_第3页
西南科技大学单片机实验考试程序_第4页
西南科技大学单片机实验考试程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(在两个中)识别最大模拟输入通道一、 任务利用0809采集两路模拟电压,将电压值最大的通道号显示在LED显示器上。(硬件电路参见AD_CH2_1.DSN)。二、 设计参考: 算法:依次采集两路模拟电压,并将其保存。当所有通道都采集完后,比较通道的采样值,将采样值最大的通道号显示(当采样值一样时,显示其中最小通道编号)。注:通道IN0IN7的编号分别为07。 LED显示的段码:字符编码00C0H10F9H20A4H30B0H499H592H682H70F8H880H990H 地址分配:0809片选地址3C00H通道地址片选地址+通道编号3X3键盘扫描三、 任务利用8155的PB、PC口实现3X3

2、键盘扫描(硬件电路参见3X3KEY_8155.DSN)。当18号键独立按下时,连接在PA口对应的LEDx点亮(即1号键按下时LDE1亮,2号键按下时LDE2亮),当9号键按下时,所有LED点亮,当没有键按下时,所有LED熄灭。四、 设计参考: 8D7TM2D6TM1D5IEBD4IEAD3PC2D2PC1D1PBD0PA155命令/状态寄存器格式:PA0=A口输入;1=A口输出PB0=B口输入;1=B口输出PC2PC100=A口、B口基本输入输出,C口输入01=A口、B口基本输入输出,C口输出10=略11=略IEA略IEB略TM2TM1略 8155端口地址分配:控制口7F00HPA7F01HP

3、B7F02HPC7F03H3X3键盘扫描五、 任务利用8255的PC口实现3X3键盘扫描(硬件电路参见3X3KEY_8255.DSN)。当18号键独立按下时,连接在PA口对应的LEDx点亮(即1号键按下时LDE1亮,2号键按下时LDE2亮),当9号键按下时,所有LED点亮,当没有键按下时,所有LED熄灭。六、 设计参考:控制字标志1有效D7D6D5D4D3D2D1D0C口低4位0 输出,1输入工作方式0 方式0,1方式1B口0 输出,1输入C口高4位0 输出,1输入工作方式00 方式0,01方式11x方式1A口0 输出,1输入 8255控制字格式: 8255端口地址分配:PA0000HPB04

4、00HPC0800H控制口0C00H50赫兹同步锯齿波发生器七、 任务利用0832同步输出两个频率为50赫兹的锯齿波(硬件电路参见DA_BUF2_1.DSN)。八、 设计参考: 锯齿波算法:设定时周期为200us,在定时时间到后,将当前DA输出值在前次输出值上增加某固定值(例如1),当20ms累计时间到后,DA输出值清零。if(TIME<20ms)DAVAL+ ;elseDAVAL = 0 ;OUTPUT(DAVAL); 同步输出方法:先分别向2个0832的第1级缓冲寄存器送DA值,然后同时向0832的第2级缓冲寄存器送值(因2个0832的第2级控制信号是并联的),及可实现同步转换输出。

5、 0832地址分配:1#第1级缓冲寄存器2000H2#第1级缓冲寄存器2400H第2级缓冲寄存器3C00HPWM波发生器九、 任务在硬件电路PWM.DSN中实现P1.7输出PWM波。周期T=100ms,初始占空比(T1/T)为50%,按键KEY1每次增加占空比10%(直到90%),KEY2每次减小占空比10%(直到10%)。十、 设计参考:TT1T2 PWM产生方法:思路:在一个载波周期内,时间小于T1时P1.7输出为1,其余P1.7均为0。因此,通过比较当前时间值与设定值的位置关系来决定P1.7置0或置1,即可生成PWM波形。算法:定义变量1、 占空比设定值(记为Duty,数值为19,时间单

6、位为定时时间常数)。2、 当前时间值(记为设置Counts,数值为010,时间单位为定时时间常数)设置定时时间为固定常数(10ms),在定时中断服务时做以下处理:1、 重置定时器;2、 Counts +;3、 Counts %= C;(C为固定载波周期,数值为10,时间单位为定时时间常数)4、 IF Counts < Duty THEN P1.7 = 1 ELSE P1.7 = 0;5、 继续其他服务。 按键应考虑去除键抖动,在改变PWM占空比后应等待键释放,释放时同样要考虑去除键抖动。编码显示器十一、 任务利用8255扩展并行端口(硬件电路参见CodeDisplay_8255.DSN)

7、。当KEY按下时,利用8255的PC口输入二进制值编码(6位),将该值转换成十进制后显示在2位7段LED显示器上。十二、 设计参考:步进电机转速控制十三、 任务在SMSpeed.DSN的电路上实现:当KEY2按下时,电机停止转动,释放时继续转动。当KEY1按下时,电机以60转/min的转速正转,释放时以120转/min的转速反转。十四、 设计参考: 4相步进电机,每顺序切换一相(1步),电机旋转18°,电机转动1圈共需要20步。 用定时实现对电机转速的控制(当转速为60转/min时,步进时间间隔为50ms;当转速为120转/min时,步进时间间隔为25ms)。中断服务程序步骤如下:I

8、f(KEY1按下)重置定时时间为50ms;正转切换到下一步;Else重置定时时间为25ms反转切换到下一步; 对于TX定时器,若其GATE=1且TRX=1时,则外部信号(INTX)可直接实现对TX定时器的运行控制(从而实现对电机转动与停止的控制)。步进输出模拟电压十五、 任务利用0832在按键控制下步进输出模拟电压(硬件电路参见DA_BUF1_1.DSN)。要求每按键一次递增或递减0.1V。设输出最大值为4V,最小值为1V。十六、 设计参考: 按键应考虑去除键抖动,在步进输出后应等待键释放,释放时同样要考虑去除键抖动。 当识别到一次有效的按键后,若当前输出值已是最大/最小值,则输出保持不变;若

9、当前输出值不是最大/最小值,改变当前的输出值(增/减5个数字量)。新的输出值不能大于最大值(200个数字量)和小于最小值(50个数字量)。 0832地址分配:转换缓冲寄存器3C00H单个模拟电压等级识别十七、 任务利用0809采集单路模拟电压,将其分级(10级),并将分级数(09)显示在LED显示器上。(硬件电路参见AD_CH1_1.DSN)。十八、 设计参考: 分级处理:将转换值/26取整及得分级数。 LED显示的段码:字符编码00C0H10F9H20A4H30B0H499H592H682H70F8H880H990H 地址分配:0809片选地址3C00H通道地址片选地址+通道编号单个模拟电压

10、监测十九、 任务在VoltageMonitor_1.DSN的电路中测量由电位器产生的模拟电压,当电压小于1V时,使连接在P1.0上的(黄)色LED亮;当电压大于4V时,使连接在P1.1上的(红)色LED亮;当电压在14V时,所有LED熄灭。要求:当信号变化后,必须在100毫秒内做出响应。二十、 设计参考: 测量方法。要在100ms内做出响应,因此,可选择定时时间为50ms,在这个时间内对模拟电压进行转换(采样)。 若采样值小于51,则意味着电压小于1V,此时输出使黄色LED亮;若采样值大于204,则意味着电压大于4V,此时输出使红色LED亮;其余,两个LED熄灭。 LED显示:0亮1灭 地址分

11、配:0809片选地址2000H通道地址片选地址+通道编号汉字显示二十一、 任务在8X8的LED点阵显示器上显示汉字“大”(硬件电路参见Displayer_dot.DSN)。二十二、 设计参考: 汉字“大”的点阵字模编码:列编码行编码110H01H210H02H3FFH04H4 行10H08H528H10H624H20H742H40H881H80H列8 7 6 5 4 3 2 1 串口工作于方式0,用于输出列编码。 显示处理流程1、 设当前行为第1行。2、 关闭显示(行值输出为00H)。3、 输出当前行的列编码。4、 等待列编码输出完成。5、 输出当前行编码。6、 延时2ms。7、 当前行切换到

12、下一行。8、 跳转到步骤2,重复8次。9、 跳转到步骤1。两个模拟信号差超限时报警二十三、 任务利用0809采集两路模拟电压,当两电压值相差超过1V时,蓝色LED亮,此时若低通道号的电压值大,红色LED亮;若高通道号的电压值大,则黄色LED亮。(硬件电路参见AD_CH2_2.DSN)。二十四、 设计参考: 算法:依次采集两路模拟电压,并将其保存。当所有通道都采集完后,计算两通道采样值的差(低通道号采样值减高通道号采样值)。若差值小于-51,则蓝色和黄色LED亮;若差值大于51,则蓝色和红色LED亮;其余,所有LED熄灭。注:通道IN0IN7的编号分别为07。 LED显示:输出LED显示0亮1灭

13、 地址分配:0809片选地址3C00H通道地址片选地址+通道编号六位7段LED显示器动态显示二十五、 任务利用8155的PA口和PB口实现6位7段LED显示器动态显示(硬件电路参见6XLED_8155.DSN)。要求能够在显示器上显示任意000000999999的十进制数据。二十六、 设计参考: 8D7TM2D6TM1D5IEBD4IEAD3PC2D2PC1D1PBD0PA155命令/状态寄存器格式:PA0=A口输入;1=A口输出PB0=B口输入;1=B口输出PC2PC100=A口、B口基本输入输出,C口输入01=A口、B口基本输入输出,C口输出10=略11=略IEA略IEB略TM2TM1略

14、8155端口地址分配:控制口7F00HPA7F01HPB7F02HPC7F03H LED显示的段码:字符编码00C0H10F9H20A4H30B0H499H字符编码592H682H70F8H880H990H LED显示的位码:位编码101H202H304H位编码408H510H620H六位7段LED显示器动态显示二十七、 任务利用8255的PA口和PB口实现6位7段LED显示器动态显示(硬件电路参见6XLED_8255.DSN)。要求能够在显示器上显示任意000000999999的十进制数据。二十八、 设计参考:控制字标志1有效D7D6D5D4D3D2D1D0C口低4位0 输出,1输入工作方式

15、0 方式0,1方式1B口0 输出,1输入C口高4位0 输出,1输入工作方式00 方式0,01方式11x方式1A口0 输出,1输入 8255控制字格式: 8255端口地址分配:PA0000HPB0400HPC0800H控制口0C00H LED显示的段码:字符编码00C0H10F9H20A4H30B0H499H字符编码592H682H70F8H880H990H LED显示的位码:位编码104H208H310H位编码420H540H680H脉宽测量二十九、 任务在PulseWidth.DSN的电路中测量从P3.3输入的正脉冲的宽度(0199ms),并将测量结果(十进制格式,单位为ms,精度为

16、7;1ms)显示在2位7段LED显示器上。三十、 设计参考: 测量方法。测量精度要求为1ms,因此可将定时器定时为1ms,从脉冲上升沿开始计时,每1ms定时到后,ms计数器(软件定义的某存储单元)加一,当脉冲下降沿到来时,停止计时,此时ms计数器的值及为脉冲的宽度(ms计数器初值为0)。 对于TX定时器,若其GATE=1且TRX=1时,则外部信号(INTX)可直接实现对TX定时器的运行控制(从而实现对脉冲宽度的计时)。 外部中断输入信号在下降沿时触发外部中断,在其服务程序里可完成测量值的读取和显示。 LED显示的段码:字符编码00C0H10F9H20A4H30B0H499H592H682H70

17、F8H880H990H频率监测三十一、 任务在FrequencyMonitor.DSN的电路中测量从P3.5输入的(方波)信号频率,当信号频率小于3kHz时,使连接在P1.0上的(黄)色LED亮;当信号频率大于7kHz时,使连接在P1.1上的(红)色LED亮;当信号频率在37kHz时,所有LED熄灭。要求:当信号变化后,必须在100毫秒内做出响应。三十二、 设计参考: 测量方法。要在100ms内做出响应,因此,可选择定时时间为50ms,在这个时间内对方波的脉冲个数进行计数(即可得方波的频率)。 若计数值小于150,则意味着方波频率小于3kHz,此时输出使黄色LED亮;若计数值大于350,则意味

18、着方波频率大于7kHz,此时输出使红色LED亮;其余,两个LED熄灭。 LED显示:0亮1灭正交信号发生器三十三、 任务在P1.0和P1.1输出如下图的正交信号(P1.0超前90°),硬件电路参见Orthogonal.DSN)。当KEY按下时,波形改变成P1.1超前90°。P1.0P1.1三十四、 设计参考:P1.0P1.1T3T2T1T011000110 正交波形产生:在一个波形周期内可分成四个等分时段,每个时段用相同时间的定时来实现,定时时间可设为50ms。 超前90°:P1.0超前:P1口依次循环输出00H01H03H02HP1.1超前:P1口依次循环输出00H02H03H01H 定时中断服务程序处理:1、 重置定时时间常数。2、 根据当前Count(Count为一个波形周期内的等分时段计数,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论