单片机技能大赛题目Word格式.docx
《单片机技能大赛题目Word格式.docx》由会员分享,可在线阅读,更多相关《单片机技能大赛题目Word格式.docx(32页珍藏版)》请在冰豆网上搜索。
通过单片机的输入口对键盘扫描,识别出按下的键,再由单片机的输出口控制LED显示。
通过依次向连接LED的I/O口送出低电平,即可点亮对应的LED,从而实现设计要求的功能。
节日彩灯控制器电路原理及仿真如图所示,各按键的功能应符合设计要求。
题目3简单的左右循环流水灯的制作
制作左右循环的节日彩灯,显示规律为:
8个LED发光二极管依次左移点亮,然后8个LED发光二极管依次右移点亮,如此反复循环。
8个发光二极管LED0~LED7的阴极分别接至P0口的P0.0~P0.7引脚上,发光二极管的阳极经电阻接高电平。
利用单片机P0口作为输出,控制8个发光二极管进行左右循环流水灯的显示。
三、电路设计与仿真
左右循环流水灯的电路原理图如图所示。
仿真运行,8个发光二极管将按照设计的要求的规律进行左右循环流水灯的显示。
题目4可控的左右循环流水灯的制作
设计一个可控的左右循环流水灯,P3.6和P3.7连接两个开关K1、K2,进行显示规律的控制,P1口控制的8个发光二极管进行显示。
要求开关控制8个LED显示的规律为:
(1)合上K1,8个LED依次左移点亮反复显示;
(2)合上K2,8个LED依次右移点亮再依次左移点亮反复显示;
(3)单击K1,8个发光二极管仅依次左移流水灯显示1次;
(4)单击K2,8个LED依次右移点亮再依次左移点亮显示1次;
(5)初始状态或K1、K2全合上时,8个发光二极管全熄灭。
利用单片机的P1口作为输出,控制8个发光二极管的亮与灭。
利用单片机的P3.6与P3.7作为检测开关K1、K2状态的输入端口。
可控的左右循环流水灯的原理电路及仿真如图所示。
8个发光二极管将按照设计的要求的控制规律显示。
题目5单片机实现的顺序控制
在工业生产中,利用单片机的数字量输出可实现顺序控制。
例如,注塑机工艺过程大致按“合模——注射——延时——开模——产伸——产退”顺序动作,用单片机控制很容易实现。
单片机的P1.0~P1.6控制注塑机的7道工序,7道工序用控制7只发光二极管的点亮来模拟。
设定每道工序时间转换以延时来表示。
P3.3为“故障”开关,合上为故障报警。
控制P1.7上的音响发出报警声响。
报警声响只有在工作期间才会响起,而停止工作期间报警不会响起。
P3.4脚上的单刀双掷开关作为“启动”或“停止”开关。
设定前6道工序只有一位输出,只点亮1只发光二极管,第7道工序有3位同时输出(P1.6、P1.5、P1.4上的3只发光二极管同时点亮)。
本题目利用单片机的P1.0~P1.6输出的高低电平来控制发光二极管的亮与灭,表示工业生产过程的顺序控制进程,P1.7输出的高低电平控制是否发出报警声响。
P3.3与P3.4作为输入,单片机检测P3.3与P3.4的输入电平,来判断“故障”开关和工作“启动”或“停止”开关的状态。
顺序控制器的原理电路及仿真如图7-5所示。
电路中的7个发光二极管从上到下分别代表7道工序。
仿真运行,发光二极管将按顺序控制规律来点亮。
P3.4引脚上的单刀双掷开关来选择控制操作启动(向上)或(向下)。
P3.3引脚上的开关闭合,表示发生故障,从而控制P1.7上的音响发出报警声响。
报警声响只有在工作期间才会响起,而停止工作期间警报不会响起。
题目6花样流水灯的制作
单片机的P2口上接有8只发光LED组成的花样流水灯。
输入引脚P3.3接有一只按键开关K。
K未按下时,单片机利用P2口的输出,控制花样灯左右循环流水点亮;
K按下时,控制发光二极管交替点亮;
当K松开时,花样灯恢复至左右循环流水点亮。
编程考虑:
在正常情况下,通过设给寄存器A初值,利用环移指令和延迟环节,使8个LED灯呈现正反向循环流水点亮。
当按下开关,使外部中断请求1引脚呈低电平,触发外部中断1,在中断处理程序中将寄存器A赋值0xaa,再通过环移指令和延时环节,使LED灯交替点亮,松开开关后,跳出外部中断处理,恢复先前的正反向循环流水点亮。
本题目的电路设计与仿真如图所示。
题目7扩展74LSTTL电路的开关检测器
利用74LSTTL芯片,可进行简单的I/O接口扩展。
本题目使用74LS244作为单片机扩展的输入口,它的8个输入端分别接8个开关K7~K0。
单片机扩展74LS373作为输出口,输出端接8个发光二极管LED7~LED0。
当某输入口的某个开关按下时,对应某按下开关的输入口线的二极管发光,从而显示出按下开关的位置。
74LS244是缓冲驱动器,作为扩展的输入口,它的8个输入端分别接8个开关K7~K0。
74LS373是8D锁存器,作为扩展的输出口,输出端接8个发光二极管LED7~LED0。
当某输入口线的开关按下时,该输入口线为低电平,读入单片机后,其相应位为“0”,然后再将口线的状态经74LS373输出,该位二极管点亮,从而指示出哪一个开关被按下。
图中有3个开关K0、K4和K5按下,从而对应的3个发光二极管LED0、LED4和LED5点亮。
题目8单一外中断的应用
AT89C51单片机的P1口接有8只LED,单片机的外部中断0输入引脚P3.2(INT0),引脚接有一只按钮开关K1。
程序启动运行时,控制P1口上的8只LED点亮。
按下开关K1,低4位与高4位交替闪烁1次;
然后P1口上的8只LED再次全亮。
按一次按钮开关K1,引脚INT0接地,产生一个外部中断0的中断请求,在中断服务程序中,让P1口低4位的LED和高4位的LED交替闪烁1次。
题目9BCD译码的2位数码管扫描的数字显示
利用单片机、BCD码译码芯片74LS47和2只LED数码管构成一个数字扫描显示系统。
2只数码管循环显示数字00,11……99。
二进制编码的十进制数简称BCD码(BinaryCodedDecimal),本题目使用74LS47完成BCD码的译码功能,再驱动数码管显示。
重点掌握BCD译码电路74LS47的工作原理及使用以及如何控制2位数码管来显示不同数字的编程。
本题目的电路设计与仿真如图示。
题目10LCD电子钟的制作
制作一个LCD显示的电子钟,在LCD显示器上显示当前的时间。
1.使用字符型LCD显示器显示时间。
2.显示格式为“时时:
分分:
秒秒”。
3.用4个功能键操作来设置当前时间。
功能键K1~K4功能如下。
(1)K1——进入设置现在的时间
(2)K2——修改小时,并显示修改结果。
(3)K3——修改分钟,并显示修改结果。
(4)K4——确认完成设置
本题目的难点在于处理功能键K1~K4的输入,由于每个功能键都具有相应的一种或多
种功能,因此程序中需要大量使用do{}while或while{}循环结构,以检测是否有按键按下的具体功能。
必须注意,程序设计中,小时、分钟、秒变量hour、minute、second必须置为全局变量,才能如上述函数一样在各处函数中直接进行修改,如为局部变量,则上述形式的直接修改无效。
1602液晶显示模块以及基于单片机定时器的时钟实现见教材介绍,不再赘述。
本题目的LCD显示的电子钟原理电路与仿真效果如图7-10所示。
程序执行后工作指示灯D1闪动一下,表示时钟开始运行。
按下按键K1后,D1停止闪烁,即时钟停止走时,时钟停在当前时刻;
按下按键K2和K3后,可改变小时和分钟;
按下按键K4后,时钟从修改后的时间重新开始运行。
为加强AT89C51的驱动能力,原理图中加入作为上拉电阻的排电阻(CTRESPACK-7),即图中的RP1。
题目11LED数码管秒表的制作
制作一个LED数码管显示的秒表,用2位数码管显示计时时间,最小计时单位为“百毫秒”,计时范围0.1~9.9s。
当第1次按下并松开计时功能键时,秒表开始计时并显示时间;
第2次按下并松开计时功能键时,停止计时,计算两次按下计时功能键的时间,并把时间值送入数码管显示;
第3次按下计时功能键,秒表清零,等待下一次按下计时功能键。
如果计时到9.9s时,将停止计时,按下计时功能键,秒表清零,再按下重新开始计时。
本秒表应用了AT89C51的定时器的定时工作模式,计时范围0.1~9.9s。
此外还涉及如何控制LED数码管显示数字的问题,即数码管显示程序的编写。
LED数码管显示的电子秒表原理电路与仿真如图所示。
题目12LCD显示的定时钟制作
制作一个简易的LCD显示的定时闹钟,当时钟时间与设置的闹铃时间一致时,继电器开关接通,也可发出声响(可控)。
若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。
定时闹钟的基本功能如下。
(1)显示时钟时间,格式为“时时:
分分”,并可重新设置。
(2)显示闹铃时间,格式为“时时:
分分”,且显示闪烁以便与时钟时间相区分。
闹铃时间可重新设置。
(3)程序执行后工作指示灯LED闪烁,表示时钟工作为时钟显示模式,LCD显示的初始时间为“23:
58”。
按下K2,闪烁显示的“00:
00”为闹铃的时间,单击K3又返回时钟显示模式。
时钟从“23:
58”开始计时,定时时间“00:
00”到时,继电器开关接通,控制电器的开启,且可发出声响(可控)。
时钟与闹铃时间的设置可通过4个功能按键K1—K4实现,具体说明如下。
(1)时钟时间的设置:
首先单击K1进入时钟设置模式。
此时每单击一下K1,则小时增1,单击一下K2,则分钟增1,再单击K3则设置完成,返回时钟显示模式。
此时小时和分钟均已发生变化。
单击K4,如果发出一声响,则定时到时,开关动作,蜂鸣器关闭;
单击K4,如果发出三声响,则开关动作,蜂鸣器发声。
(2)闹铃的时间设置:
首先单击K3进入闹铃的设置模式。
此时每单击一下K1,则小时增1,单击一下K2,则分钟增1,最后单击K3则设置完成,返回闹铃显示模式。
此时闹铃的小时和分钟均已发生变化。
(3)K4的功能:
闹铃是否发声的状态控制,设为ON状态,则闹铃时间到连续3次发出“哗”的声音,设置为OFF状态发出“哗”的一声。
开机默认声响关闭。
(4)K2单独的功能:
显示闹铃时间。
本题目的难点在于4个按键中的每个键都具有两个功能,以最终实现菜单化的输入功能。
过逐层嵌套的循环扫描,实现嵌套式的键盘输入。
另外,本题目中用到了电磁继电器(RELAY),电磁继电器一般由电磁铁触点等组成的,其工作电路由低压控制电路和高压工作电路两部分构成。
只要在线圈的两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。
当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。
这样吸合、释放,从而达到了在电路中的导通、切断的目的。
在本题目中,通过单片机输出的高电平、低电平对电磁继电器的通断进行控制,从而实现工控系统中重要的“以弱控强”。
本题目的LCD显示的定时闹钟电路原理图与仿真效果如图所示。
题目19可编程作息时间控制器设计
按以下要求设计一个以单片机为核心的可编程作息时间控制器。
(1)按照给定的时间模拟控制,实现广播、上下课打铃、灯光控制(屏幕显示)。
(2)具备日期和时钟显示。
本题目设计4路可调闹钟,从而实现打铃等功能。
当4路闹钟中的任一路到时,均会点亮灯、打铃。
如有需求,可对程序进行调整,增加闹钟的路数及到时后的处理方式。
题目中4个按键K1~K4的功能分别为:
(1)K1——设置现在的时间/时的调整;
(2)K2——显示闹钟设置的时间/分的调整;
(3)K3——设置闹钟的时间/设置完成;
(4)K4——闹钟更换。
可编程作息时间控制器电路原理与仿真如图7-19所示。
在“ClockFrequency”栏中输入晶振频率11.0592MHz。
启动仿真,当4路闹钟中的任一路到时,均会点亮、打铃等。
题目208位竞赛抢答器的设计
设计一个以单片机为核心的8位竞赛抢答器,要求如下:
(1)抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。
(2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。
(3)抢答器具有锁存与显示功能。
即选手按动按钮,锁存相应的编号,并且优先抢答选手的编号一直保持到主持人将系统清除为止。
(4)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。
(5)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答剩余时间,并保持到主持人系统清除为止。
(6)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。
同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将将选手编号(按键号)和抢答时间分别显示在LED上。
8位竞赛抢答器的原理与仿真如图70-20所示。
在“ClockFrequency”栏中输入晶振频率12MHz。
图中所示为剩余22秒时7号选手抢答成功。
题目13用定时器设计的门铃
用定时器控制蜂鸣器模拟发出叮咚的门铃声,“叮”的声音用较短定时形成较高频率,“咚”的声音用较长定时形成较低频率,仿真电路加入虚拟示波器,按下按键时除听到门铃声外,还会从示波器的屏幕上观察到两种声响的不同脉宽。
本题目设计需要一个蜂鸣器和一个开关,再配合相应的软件就可以实现。
软件设计时,采用定时器中断来控制响铃。
当按下开关时,开启中断,定时器溢出进入中断后,在软件中以标志位i来判断门铃的声音,开始响铃。
先是“叮”,标志位i加1,延时后接着是“咚”,标志位i加1,然后是关中断。
测铃响脉宽也是以标志位i来识别“叮咚”。
当i为0时给示波器A通道高电平;
i为2时,给示波器B通道高电平。
本题目设计的电路原理如图所示。
图中P2.0连接开关,P2.3连接蜂鸣器,P2.6、P2.7连接示波器用于观察蜂鸣器响应的脉宽。
运行住址后,按下按钮开关就可以听到两声“叮咚”。
打开示波器在A、B通道分别可以看到“叮”和“咚”的脉冲宽度。
“叮咚”响铃的脉宽如图7-21(b)所示。
图中上面的脉冲为“叮”,下面的脉冲为“咚”。
题目14控制数码管循环显示单个数字
利用单片机控制一个8段LED数码管,构成一个LED显示系统,循环显示数字0~9。
了解LED数码管显示原理,掌握字形码查表程序的编写。
LED数码管内部由7个条形发光二极管和1个小圆点发光二极管组成,根据各发光二极管的内部接线形式,可分为共阴极型和共阳极型。
字型码的概念:
LED数码管的g~a段的7个发光二极管的各段加加正电压而发亮,加低电平不发亮,发光二极管g~a段的不同亮暗组合就形成不同的字型。
单片机控制LED数码管显示不同的字型,需要向数码管的g~a段发送相应的字型码。
字型码表格:
显示数字0~9的字型码由于无规律可循,只能采用查表的方式来完成要求,这样可按照数字0~9的顺序,把每个数字的字型码按顺序排好,形成一个数组形式的字型码表。
根据要显示的数字,查找到相应的字型码,从而控制数码管显示相应的字符。
本题目的电路原理及仿真结果如图所示。
题目15十字路口交通灯控制器1
利用单片机设计一个十字路口交通灯控制器。
用单片机控制LED灯模拟指示。
模拟东西方向的十字路口交通信号控制情况。
东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。
二、原理说明
本题目为典型的LED显示和中断定时电路。
利用定时器T0产生每10ms一次的中断,每100次中断为1s。
对两个方向分别显示红、绿、黄灯以及相应的剩余时间即可。
值得注意的是。
A方向红灯时间=B方向绿灯时间+黄灯缓冲时间。
本题目采用的MAX7219芯片的使用说明请参见题目12的内容。
制作的十字路口交通灯控制电路原理图与仿真如图所示。
题目16十字路口交通灯控制器2
利用单片机设计一个十字路口交通灯控制器:
用单片机的定时器产生秒信号,控制十字路口的红、绿、黄灯交替点亮和熄灭,并且用4只LED数码管显示十字路口两个方向的剩余时间。
要求能用按键设置两个方向的通行时间(绿、红灯点亮的时间)和暂缓通行时间(黄灯点亮的时间)。
系统的工作应符合一般交通灯控制的要求。
二、原理说明
本题目原理与题15完全相同,区别仅在于将控制时间的变量minute置为全局变量,并
通过键盘扫描函数进行实时修改。
其中按键K1~K6功能分别为:
东西方向通过时间增
方向通过时间减少,南北方向通过时间增加,南北方向通过时间减少,黄灯时间增加,黄灯时间减少。
三、电路设计与仿真
制作十字路口交通灯控制电路原理图与仿真如图所示。
题目17基于DS18820的数字温度计设计
利用数字温度传感器DS18820与AT89C51单片机结合来测量温度,并在LED数码管上显示相应的温度值。
温度测量范围为-55℃~125℃,精确到0.5℃。
测量的温度采用数字显示,用3位共阳极LED数码管以串口传送数据,来实现温度显示。
DS18820温度传感器是美国DALLAS半导体公司最新推出的一种改进型的具有单总线接口的智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字读数方式。
D818B20的性能如下。
(1)总线接口,仅需要一个引脚与单片机进行通信。
(2)多个18B20均可挂在单总线上,实现多点测温功能。
(3)可通过数据线供电,电压范围为3.0V~5.5V。
(4)温度9或12位的数字读数方式。
(5)用户可定义报警设置
(6)报警搜索命令识别标志超过程序限定温度(温度报警条件)的器件。
(7)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(8)DS18B20采用3引脚PR-35封装或8引脚SOIC封装。
1.芯片的初始化流程
初始化流程见表:
主机状态
命令/数据
说明
发送
Reset
复位
接收
Presence
从机应答
0xcc
忽略ROM匹配(对单从机系统)
0x4e
写暂存器命令
2B数据
设置温度边界值TH和TL
1B数据
温度计模式控制字
2.温度转换以及读取流程
温度转换以及读取流程见表:
0x44
温度转换命令
等待
等待100~200ms
0xbe
读取内部寄存器命令
读取
9b
前2B为温度数据
单片机的晶振频率选择11.0592MHz。
启动仿真如图所示,其中DS18B20窗口显示的为当前环境温度,若单击调整DS18B20上的“↑”或“↓”箭头,相当于改变被测的环境温度,可以看到LED显示屏上的温度值发生相应的变化。
题目188×
8LED点阵屏模仿电梯运行的楼层显示
一、设计显示
设计采用单片机控制8×
8LED点阵屏来模仿电梯运行的楼层显示装置。
单片机的Pl口的8只引脚接有8只按键开关K1~K8,这8只按键开关Kl~K8分别代表1楼~8楼。
如果某一楼层的按键按下一单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置。
电梯初始显示0。
单片机的P1口的8只引脚接有8只按键开关K1~K8,这8只按键开关K1~K8分别代表1楼~8楼。
如果按下代表某一楼层的按键,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置。
在上述功能的基础上,向电路中添加LED指示灯和蜂鸣器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。
例如,当前位置在1层时,用户依次按下6、5时,则数字分别向上滚动到5、6时暂停且LED闪烁片刻,同时蜂鸣器发出提示音。
如果在待去的楼层的数字中,有的在当前运行的反方向,则数字先在当前方向运行完毕后,再依次按顺序前往反方向的数字位置。
用P2口做8×
8点阵的行选通,P1口完成按键的读取