单片机课程设计题目 下载本文

课程设计要求:

1. 课程设计的所有题目都应在PROTEUS 7仿真环境下运行通过。 2. 要求:

(1)在keil IDE(μvision2 orμvision3)或者WAVE6000中完成应用程序设计、并编译;

(2)在PROTEUS 7下的ISIS Professional中完成电路设计、调试与仿真通过。

题目1 智能电子钟(LCD显示)

设计要求:

以AT89C51单片机为核心,制作一个LCD显示的智能电子钟: (1) 计时:秒、分、时、天、周、月、年。 (2) 闰年自动判别。

(3) 时间、月、日交替显示。 (4) 自定任意时刻自动开/关屏。

(5) 计时精度:误差≤1秒/月(具有微调设置)。

题目2 电子时钟(LCD显示)

设计要求

以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: ? 使用字符型LCD显示器显示当前时间。 ? 显示格式为“时时:分分:秒秒”。

? 用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引脚上。 功能键K1~K4功能如下。 ? K1—进入设置现在的时间。 ? K2—设置小时。 ? K3—设置分钟。 ? K4—确认完成设置。

程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。

题目3 秒表

设计要求

应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。设计一个“复位”键,按下“复位” 键后,秒表从0开始计时。

题目4 定时闹钟

设计要求

使用AT89C51单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD时钟。 定时闹钟的基本功能如下: ? 显示格式为“时时:分分”。 ? 由LED闪动来做秒计数表示。

? 一旦时间到则发出声响,同时继电器启动,可以扩充控制家电的开启和关闭。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00”,按下操作键K1~K4动作如下:

(1) K1—设置现在的时间。 (2) K2—显示闹钟设置的时间。 (3) K3—设置闹铃的时间。

(4) K4—闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。

设置当前时间或闹铃时间如下。 (1) K1—时调整。 (2) K2—分调整。 (3) K3—设置完成。

(4) K4—闹铃时间到时,发出一阵声响,按下本键可以停止声响。 本题目的难点在于4个按键每个都具有两个功能。

题目5 音乐倒数计数器

设计要求

利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。

定时闹钟的基本功能如下。 ? 字符型LCD(16 ? 2)显示器。 ? 显示格式为“TIME 分分:秒秒”。

用4个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声。

程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。 ? K1—可调整倒计数的时间1~60分钟。

? K2—设置倒计数的时间为5分钟,显示“0500”。 ? K3—设置倒计数的时间为10分钟,显示“1000”。 ? K4—设置倒计数的时间为20分钟,显示“2000”。

复位后LCD的画面应能显示倒计时的分钟和秒数,此时按K1键则在LCD上显示出设置画面。此时,若:

a. 按操作键K2—增加倒计数的时间1分钟。 b. 按操作键K3—减少倒计数的时间1分钟。 c. 按操作键K4—设置完成。

本题目难点是实现音乐的播放,可利用定时计数器,通过载入不同的计数初值,产生频率不同的方波,输入到蜂鸣器(SOUNER)中,使其发出频率不同的声音。本设计中单片机晶振为1.0592MHz,通过计算各音阶频率,可得1、2、3、4、5、6、7共7个音应赋给定时器的初值为64580、64684、64777、64820、64898、64968、65030。

在此基础上,可将乐曲的简谱转化为单片机可以“识别”的“数组谱”,进一步加入对音长、休止符等的控制量后,可以实现音乐的播放。

题目6 基于数字温度传感器的数字温度计

设计要求

利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温度测量范围为?55℃~125℃,精确到0.5℃。所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。

题目7 基于热敏电阻的数字温度计

设计要求

使用热敏电阻类的温度传感器件利用其感温效应,将随被测温度变化的电压或电流用单片机采集下来,将被测温度在显示器上显示出来:

? 测量温度范围?50℃~110℃。 ? 精度误差小于0.5℃。 ? LED数码直读显示。

本题目使用铂热电阻PT100,其阻值会随着温度的变化而改变。PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。厂家提供有PT100在各温度下电阻值值的分度表,在此可以近似取电阻变化率为 0.385Ω/℃。向PT100输入稳恒电流,再通过A/D转换后测PT100两端电压,即得到PT100的电阻值,进而算出当前的温度值。

采用2.55mA的电流源对PT100进行供电,然后用运算放大器LM324搭建的同相放大电路将其电压信号放大10倍后输入到AD0804中。利用电阻变化率0.385Ω/℃的特性,计算出当前温度值。

题目8 十字路口交通灯控制

设计要求

设计一个十字路口交通灯控制器。用单片机控制LED模拟交通灯。东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。

本项目为典型的LED显示和中断定时电路。利用定时器T0产生每10ms一次的中断,每100次中断为1s。对两个方向分别显示红、绿、黄灯,并显示相应的剩余时间。值得注意的是,A方向红灯时间=B方向绿灯时间+黄灯缓冲时间。

题目9 波形发生器设计

设计要求

设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。

本题目中,方波信号是利用定时器中断产生的,每次中断时,将输出的信号按位取反即可。

其他波形可以通过单片机控制DAC来实现。

(1)三角波信号是将输出的二进制数字信号依次加1,达到0xff时依次减1,并实时将数字信号经D/A转换得到;

(2)锯齿波信号是将输出的二进制数字信号依次加1,达到0xff时置为0x00,并实时将数字信号经D/A转换得到的;

(3)梯形波是将输出的二进制数字信号依次加1,达到0xff时保持一段时间,然后依次减1直至0x00,并实时将数字信号经D/A转换得到的;

(4)正弦波是利用MATLAB将正弦曲线均匀取样后,得到等间隔时刻正弦波取样值,

然后依次输出后经D/A转换得到。

题目10 人行道电子指示屏的设计

设计要求

设计一个单片机控制的两个16×16点阵LED模块显示的人行道电子指示屏。当人行道禁止行走时,如题10图(a)所示,显示红色,上面是禁止通过的图案,下面是剩余时间。当人行道允许通过时,应显示绿色,如题10图(b)所示,,上面是剩余的时间,下面是允许通过的图案,

(a) (b)

题10图 人行道电子指示屏

题目11 数字频率计

设计要求

设计一个以单片机为核心的频率测量装置。使用AT89C51单片机的定时器/计数器的定时和计数功能,外部扩展6位LED数码管,要求累计每秒进入单片机的外部脉冲个数,用LED数码管显示出来。

(1)被测频率fx<110Hz,采用测周法,显示频率×××. ×××;fx>110Hz,采用测频法,显示频率××××××。

(2)利用键盘分段测量和自动分段测量。

(3)完成单脉冲测量,输入脉冲宽度范围是100?s~0.1s。 (4)显示脉冲宽度要求如下。

Tx<1000?s,显示脉冲宽度×××。 Tx>1000?s,显示脉冲宽度××××。

测量频率有测频法和测周法两种。

(1)测频法,利用外部电平变化引发的外部中断,测算1s内的波数,从而实现对频率的测定;

(2)测周法,通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。简而言之,测频法是直接根据定义测定频率,测周法是通过测定周期间接测定频率。

理论上,测频法适用于较高频率的测量,测周法适用于较低频率的测量。经过调校,在测量低频信号时,本项目中测频法精度已高于测周法,故舍弃测周法,全量程采用测频法。

题目12 8位竞赛抢答器的设计

设计要求

以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。

设置一个系统清除和抢答控制开关S,开关由主持人控制。

抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。

抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。

当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。

参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。

题目13 单词记忆测试器程序设计

设计要求

设计一个以单片机为核心的单词记忆测试器:

实现单词的录入(为使程序具有可演示性,单词不少于10个)。

单词用按键控制依次在屏幕上显示,按键选择认识还是不认识,也可以直接进入下一

个或者上一个。单词背完后给出正确率。

本题目实质上是一个具有一定复杂程度键盘扫描程序,可将单词存储在一个二维数组中,按“确定”键开始程序后,次显示0行的数组,即第一个单词。之后按下“向上”按键,显示上一行数组,即上一个单词;按下“向下”按键,显示下一行数组,即下一个单词。当显示的行数超过9时,程序结束,并通过按“确认”的次数,计算出正确率。

题目14 数字电压表设计

设计要求

以单片机为核心,设计一个数字电压表。采用中断方式,对2路0~5V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存。超过界限时指示灯闪烁。

本题目本质上是以单片机为控制器,ADC器件采用ADC0809(proteus库中只有ADC0808,使用ADC0808来代替ADC0809),要求的电压显示,是对ADC采集所得信号的进一步处理。

为得到可读的电压值,需根据ADC的原理,对采集所得的信号进行计算,并显示在LED上。本项目中ADC0808的参考电压为+5V,根据定义,采集所得的二进制信号addata所指代的电压值为:

而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以100),其计算的数值为:

将小数点显示在第二位数码管上,即为实际的电压。

本示例程序将1.25 V和2.5 V作为两路输入的报警值,反映在二进制数字上,分别为0x40和0x80。当A/D转换结果超过这一数值时,将会出现二极管闪烁和蜂鸣器发声。

题目15 可编程作息时间控制器设计

设计要求

设计一个以单片机为核心的可编程作息时间控制器:

按照给定的时间模拟控制,实现广播、上下课打铃、灯光控制(屏幕显示),同时具备日期和时钟显示。

本题目原理与题目4相同,程序是在定时闹钟的基础上将定时闹钟改造为4路可调闹钟,从而实现打铃等功能。当四路闹钟中的任一路到时,均会点亮灯、打铃。如有需求,可对程序进行调整,增加闹钟的路数,及到时后的处理方式。

题目中4个按键的功能分别为:设置限制的时间/时的调整、显示闹钟设置的时间/分的调整、设置闹钟的时间/设置完成、闹钟更换。

题目16* 节日彩灯控制器的设计

设计要求

以单片机为核心,设计一个LED显示的节日彩灯控制器,P1.2~P1.5引脚上接有4个按键,4个按键的各自的功能如下:

? P1.2—开始键,按此键则灯开始流动(由上而下)。 ? P1.3—停止键,按此键则停止流动,所有灯为暗。 ? P1.4—上,按此键则灯由上向下流动。 ? P1.5—下,按此键则灯由下向上流动。

本题目本质上是由按键控制功能的流水灯,LED工作的方式通过键盘的扫描实现。其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,即可实现所要求的功能。

题目17 单片机双机之间的串行通信设计

设计要求

两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。串行口工作方式为方式1的全双工串行通信。

实验原理

两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器T1计数初值TH1、TL1进行设定。故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的T1计数初值TH1、TL1实现的。示例程序中将0xaa从主机传输到从机,并显示在从机的数码管上实现串口通讯的验证。

如串口通讯线路过长,可考虑采用MAX232进行电平转换,以延长传输距离。值得注意的是,为了减少计算载入初值时的误差,最好采用11.0592MHz的晶振。

题目18 电子琴设计

设计要求

设计一个电子琴。利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出8个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音。

当系统扫描到键盘上有键被按下,则快速检测出是哪一个键被按下,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲输入到蜂鸣器后,就会发出相应的音调如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音调。关于发声原理,参见题目5。

题目19 数字音乐盒的设计

设计要求

以单片机为核心,设计一个数字音乐盒:

利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。采用LCD显示信息。开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。可通过功能键选择乐曲、暂停、播放。

题目20 单片机控制步进电机

设计要求

采用单片机控制一个三相单三拍的步进电机工作。步进电机的旋转方向由正反转控制信号控制。步进电机的步数由键盘输入,可输入的步数分别为3、6、9、12、15、18、21、24和27步,且键盘具有键盘锁功能,当键盘上锁时,步进电机不接受输入步数,也不会运转。只有当键盘锁打开并输入步数时,步进电机才开始工作。

电机运转的时候有正转和反转指示灯指示。

电机在运转过程中,如果过热,则电机停止运转,同时红色指示灯亮,同时警报响。本题目的关键之处是:如何生成控制步进电机的脉冲序列。

原理

步进电机的不同驱动方式,都是在工作时,脉冲信号按一定顺序轮流加到三相绕组上,从而实现不同的工作状态。由于通电顺序不同,其运行方式有三相单三相拍、三相双三拍和三相单、双六拍三种(注意:上面“三相单三拍”中的“三相”指定子有三相绕组;“拍”是指定子绕组改变一次通电方式;“三拍”表示通电三次完成一个循环。“三相双三拍”中的“双”是指同时有两相绕组通电)。

(1)三相单三拍运行方式:题20图所示为反应式步进电动机工作原理图,若通过脉冲分配器输出的第一个脉冲使A相绕组通电,B,C相绕组不通电,在A相绕组通电后产生的磁场将使转子 上产生反应转矩,转子的1、3齿将与定子磁极对齐,如图(a)所示。第二个脉冲到来,使B相绕组通电,而A、C相绕组不通电;B相绕组产生的磁场将 使转子的2、4齿与B相磁极对齐,如图(b)所示,与图(a)相比,转子逆时针方向转动了一个角度。第三个脉冲到来后,是C相绕组通电,而 A、B相不通电,这时转子的1、

3齿会与C组对齐,转子的位置如图(c)所示,与图(b)比较,又逆时针转过了一个角度。

题20图 反应式步进电机工作原理图

当脉冲不断到来时,通过分配器使定子的绕组按着A相--B相--C相--A相??的规律不断地接通与断开,这时步进电动机的转子就连续不停地一步步的逆时 针方向转动。如果改变步进电动机的转动方向,只要将定子各绕组通电的顺序改为A相--C相--B相--A相,转子转动方向即改为顺时针方向。

单三拍分配方式时,步进电动机由A相通电转换到B相通电,步进电动机的转子转

过一个角度,称为一步。这时转子转过的角度是30度。步进电动机每一步转过的角度称为步距角。

(2)三相双三拍运行方式:每次都有两个绕组通电,通电方式是AB→BC→CA→AB??,如果通电顺序改为AB→CA→BC→AB??则步进电机反转。双三拍分配方式时,步进电动机的步距角也是30度

(3)三相单,双六拍运行方式:三相六拍分配方式就是每个周期内有六个通电状态。这六中通电状态的顺序可以使A→AB→B→BC→C→CA→A??或者A→CA→C→BC→B→AB→A??六拍通电方式中,有一个时刻两个绕组同时通电,这时转子齿的位置将位于通电的两相的中间位置。在三相六拍分配方式下,转子每一步转过的角度只是三相三拍方式下的一半,步距角是15度。

单三拍运行的突出问题是每次只有一相绕组通电,在转换过程中,一相绕组断电,另一相绕组通电,容易发生失步;另外单靠一相绕组通电吸引转子,稳定性不好,容易在平衡位置附近震荡,故用的较少。

双三拍运行的特点是每次都有两相绕组通电,且在转换过程中始终有一相绕组保持通电状态,因此工作稳定,且步距角与单三拍相同。

六拍运行方式转换时始终有一相绕组通电,且步距角较小,故工作稳定性好,但电源较复杂,实际应用较多。

题目21 单片机控制直流电动机

设计要求

用单片机设计一个控制直流电机并测量转速的装置。单片机扩展有A/D转换芯片ADC0809(用ADC0808代替)和D/A转换芯片DAC0832。

(1)通过改变A/D输入端可变电阻来改变A/D的输入电压,D/A输入检测量大小,进而改变直流电机的转速。

(2)手动控制。在键盘上设置两个按键—直流电动机加速键和直流电机减速键。在手动状态下,每按一次键,电机的转速按照约定的速率改变。 (3)键盘列扫描(4 ? 6)。

实验原理

本题目难点是对直流电机的控制。与步进电机类似,直流电机也可精确地控制旋转速度或转矩。

直流电机是通过两个磁场的互作用产生旋转。其结构如题21图(a)所示,固定部分

题21图(a) 有刷直流电机结构示意图

(定子)上,装设了一对直流励磁的静止的主磁极N和S,在旋转部分(转子)上装设电枢铁心。定子与转子之间有一气隙。在电枢铁心上放置了由A和X 两根导体连成的电枢线圈,线圈的首端和末端分别连到两个圆弧形的铜片上,此铜片称为换向片。

换向片之间互相绝缘,由换向片构成的整体称为换向器。换向器固定在转轴上,换向片与转轴之间亦互相绝缘。在换向片上放置着一对固定不动的电刷B1和B2,当电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。

定子通过永磁体或受激励电磁铁产生一个固定磁场,由于转子由一系列电磁体构成,当电流通过其中一个绕组时会产生一个磁场。对有刷直流电机而言,转子上的换向器和定子的电刷在电机旋转时为每个绕组供给电能。通电转子绕组与定子磁体有相反极性,因而相互吸引,使转子转动至与定子磁场对准的位置。当转子到达对准位置时,电刷通过换向器为下一组绕组供电,从而使转子维持旋转运动。如题21图(b)所示。

题21图(b)

直流电机的速度与施加的电压成正比,输出转矩则与电流成正比。由于必须在工作期间改变直流电机的速度,直流电机的控制是一个较困难的问题。直流电机高效运行的最常见方法是施加一个 PWM(脉宽调制)方波,其占空比对应于所需速度。电机起到一个低通滤波器作用,将PWM信号转换为有效直流电平。特别是对于微处理器驱动的直流电机,由于PWM信号相对容易产生,这种驱动方式使用的更为广泛。

本题目为了能够演示DAC0832的使用,未使用PWM驱动方式。而是利用直流电机的

速度与施加电压成正比的原理,通过滑动变阻器向ADC0809(使用ADC0808代替)输入控制电压信号,经A/D转换后,输入到AT89C51中,AT89C51将此信号转发给DAC0832,通过功放电路放大后,驱动直流电机。DAC0832也可以用引脚、功能相同的DAC0830代替。ADC0809与DAC0832在教材中已有详细介绍,在此不再叙述。按照其时序图,按题21图(C)和题21图(d)两个图操作即可。

图 DAC0830时序

题21图(C) ADC0808时序图

题21图(d) DAC0830时序

题目22* 单只数码管循环显示0~9

设计要求

单片机控制1只数码管,循环显示0~9

题目23* 8只数码管滚动显示单个数字

设计要求

单片机控制8只数码管,滚动显示单个数字。

题目24* 8只数码管同时显示多个不同字符

设计要求

单片机控制8只数码管,同时显示8个字符。例如,从左至右显示“12345678”,接着显示“23456781”,在接着显示“34567812”,?? “81234567”, “12345678”,

题目25* K0~K3按键的状态显示

设计要求

单片机的P1口的P1.0~P1.3分别接有4只按键K0~K3,P0.0~P0.3分别控制4只LED0~LED3的亮与灭。当按下K0或K1时,LED0或LED1点亮,松开时,对应的LED灭,当按下K2或K3时,LED2或LED3点亮,再次按下并释放时熄灭,如此重复。

题目26* 数码管显示4×4矩阵键盘的键盘号

设计要求

单片机的P1口的P1.0~P1.7连接4×4矩阵键盘,P0口控制一只数码管,当4×4矩阵键盘中的某一按键按下时,数码管上显示对应的键号。例如,1号键按下时,数码管显示“1”, 14号键按下时,数码管显示“E”等等。

题目27* 按不同的键发出不同的声音

设计要求

单片机的P1口分别接有7个按键,分别对应输出7个音符。当某一按键按下时,发出对应的音符的声音。

题目28* 单片机控制左右循环的流水灯

设计要求

单片机控制8个LED左右循环来回点亮,产生来回走马灯效果。

题目29 单片机模拟控制交通灯

设计要求

单片机控制的12只LED分成“东西”方向、“南北” 方向两组,每组有2只红色、2只黄色、2只绿色的LED,程序运行时应模拟十字路口交通信号灯的切换过程与显示效果。

题目30 对两个外中断引脚上的中断计数

设计要求

本设计同时允许两个外中断引脚INT0和INT1中断,连接INT0和INT1脚上的两个按键触发这两个中断时,在两个中断服务程序中则分别会对这两个中断计数,并显示在左右各3只LED数码管上,再设有两个按键,分别用于两组计数的清零操作。

题目31* 节日彩灯的制作

设计要求:

用单片机控制P1口上的8个发光二极管进行花样显示,显示规律为(1)8个LED依

次左移点亮;(2)8个LED依次右移点亮,然后再依次左移点亮┉┉。

题目32* 单片机P1口控制转弯灯实验

设计要求

单片机P1.0上的开关接5V时,右转弯灯闪亮,P1.1上的开关接5V时左转弯灯闪亮。P1.0、P1.1 开关同时接5V或接地时,转弯灯均不闪亮。

题目33* 单片机P1口实现的顺序控制

设计要求

在工业生产中,象注塑机工艺过程大致按“合模?注射?延时?开模?产伸?产退”顺序动作,用单片机的I/O来控制最易实现。

单片机的P1.0~P1.6控制注塑机的七道工序,七道工序用模拟控制七只发光二极管的点亮来模拟,低电平有效,设定每道工序时间转换为延时。P3.4(输入)接工作启动开关,高电平动作。P3.3为外部故障输入模拟开关,低电平为故障报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序3位有输出(P1.6、P1.5、P1.4点亮发光二极管)。

题目34 单片机通过82C55控制交通灯

设计要求

用82C55作输出口,控制12个发光二极管燃灭,模拟交通灯管理。

82C55的PA0~PA7、 PB0~PB3接发光二极管L15~L13、L11~L9、L7~L5、L3~L1。 执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。

题目35 电话拨号键的LCD显示

设计要求

设计一个单片机监控的电话拨号键盘,将电话键盘中拨出的某一电话号码,显示在LCD显示屏上。电话键盘共有12个键,除了“0”~ “9”10个数字键外,还有“*”键

用于实现退格功能,即清除输入的号码;“#”键用于清除显示屏上所有的数字显示。还要求每按下一个键要发出声响,以表示按下该键。

题目36* 发光二极管的从左到右的流水点亮

设计要求

8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程来实现发光二极管的从左到右的流水点亮,即按照LED0→LED1→┉→LED7的顺序,每次点亮一个发光二极管,延时一段时间后熄灭这个发光二极管,然后点亮下一个发光二极管,重复循环。

题目37* 左右来回循环的流水灯

设计要求

8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。

题37图 节日彩灯的花样显示的规律

为了使显示效果更加绚丽多彩,P1端口8个引脚分别接有不同颜色的发光二极管。具体如题37表所示。

题37表 P1口 8个引脚的不同颜色的发光二极管

P1口引脚 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 发光二极管的颜色 红色LED 蓝色LED 绿色LED 黄色LED 红色LED 蓝色LED 绿色LED 黄色LED

题目38* 开关量检测指示器1

设计要求

AT89S51单片机的P1.4~P1.7接4个开关S0~S3,P1.0~P1.3接4个发光二极管LED0~LED3。编写程序,将P1.4~P1.7上的4个开关的状态反映在P1.0~P1.3引脚控制的4个发光二极管上。1个发光二极管的状态,对应一个开关的状态,例如P1.4引脚上开关S0的状态,由P1.0脚上的LED0显示,P1.6引脚上开关S2的状态,由P1.2脚上的LED2显示。凡是开关闭合的引脚,对应的LED发光二极管点亮。

题目39* 开关量检测指示器2

设计要求

AT89S51单片机P1.0和P1.1引脚接有两只开关S0和S1,两只引脚上的高低电平共有4种组合,这4种组合分别点亮P2.0~P2.3引脚控制的4只LED:LED0~LED3 (高电平点亮),编程实现此功能。

题目40 单一外中断的应用

设计要求

在51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0)引脚接有一只按钮开关K1。要求将外部中断0设置为负跳沿触发。在程序启动时,P1口上的8只LED亮。按一次按钮开关K1,使引脚INT0接地,产生一个负跳沿触发的外中断0的中断请求,在中断服务程序中,让低4位的LED和高4位的LED交替闪烁。

题目41 两个外中断的应用

设计要求

51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0)引脚接有一只按钮开关K1。在外部中断1输入引脚P3.3(INT1)引脚接有一只按钮开关K2。程序要求K1和K2都未按下时,P1口的8只LED呈流水灯显示,仅K1(P3.2)按下时,左右4只LED交替闪烁。仅按下K2(P3.3),P1口的8只LED全部闪亮。两个外中断的优先级相同。

题目42 中断嵌套的设计

设计要求

实现中断嵌套程序。51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0)

引脚接有一只按钮开关K1。在外部中断1输入引脚P3.3(INT1)引脚接有一只按钮开关K2。要求K1和K2都未按下时,P1口的8只LED呈流水灯显示,当K1按下再松开时,产生一个低优先级的外中断0请求(跳沿触发),进入外中断0中断服务程序,左右4只LED交替闪烁。此时按下K2再松开时,产生一个高优先级的外中断1请求(跳沿触发),进入外中断1中断服务程序,P1口的8只LED全部闪烁。当显示一段时间后,再从外中断1返回继续执行外中断0中断服务程序,即P1口控制8只LED左右4只LED交替闪烁。设置外中断1为高优先级,外中断0为低优先级。

题目43* 定时器控制P1口外接的8只LED每0.5s闪亮一次

设计要求

在AT89S51单片机的P1口上接有8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。要求采用定时器T0的方式1的定时中断方式,使P1口外接的8只LED每0.5s闪亮一次。

题目44* 外部计数输入信号控制LED的闪烁

设计要求

如题44图所示,51单片机的P1口上接有8个发光二极管LED0~LED7经限流电阻分别接至+5V上,采用定时器T1的方式1的中断计数方式,如题图所示,计数输入引脚T1(P3.5)上外接开关K1,作为计数信号输入。按4次K1后,P1口的8只LED闪烁不停。

题44图 外部计数输入信号控制LED的闪烁

题目45* 利用定时器扩展一个外部中断源

设计要求

利用定时器扩展一个外部中断源。可利用开关K1控制T0脚引脚电平发生负跳变,平时T0引脚为高电平。当检测到T0脚引脚电平发生负跳变时,计数器TF0溢出,这时将产生一个中断请求,进入中断服务程序中,将P1.0脚上的LED点亮。

题目46* 利用定时器在P1.0上产生周期为2ms的方波

设计要求

假设系统时钟为12MHz,利用定时器的定时,实现从P1.0引脚上输出一个周期为2ms的方波,并采用示波器来观察。

题目47* 利用定时器在P1.1上产生周期为1s的方波

设计要求

假设系统时钟为12MHz,编写程序实现从P1.1引脚上输出一个周期为1s的方波,并采用示波器来观察。

提示:要在P1.0上产生周期为1s的方波,定时器应产生500ms的周期性定时,定时时间到则对P1.0求反。由于定时时间较长,用定时器不能直接实现,直接定时时间最长的就是,仅为65ms(系统时钟12MHz)多一点。

即定时器T0的方式1来定时10ms,每10ms对P1.0求反一次,P1.0输出的脉冲加到定时器T1的计数输入脚P3.5(T1脚),作为T1的计数输入,定时500ms只需计数50次。T1设为方式2计数。定时器T0和T1均采用中断方式工作。

题目48* 利用T1控制发出1KHz的音频信号

设计要求

利用定时器T1的中断来使P1.7控制蜂鸣器发出1KHz的音频信号,假设系统的时钟为12MHz。

题目49* 串行口方式0输出的应用

设计要求

利用单片机串行口的方式0输出,通过74LS164的输出来控制控制8个发光二极管轮流点亮。

题目50* 串行口方式0输入的应用

设计要求

单片机串行口外接一片8位并行输入、串行输出的同步移位寄存器74LS165,扩展一个8位并行输入口的电路,将接在74LS165的8个开关的状态(开关的一端接地,另一端接到74LS165的输入端)通过串行口的方式0的中断方式读入到单片机内。

题目51 串行口方式1的应用

设计要求

单片机甲、乙双机进行串行通信,双机的RXD和TXD相互交叉相连,甲机的P1口接8个开关,乙机的P1口接8个发光二极管。甲机设置为只能发送不能接收的单工方式。要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口,由P1口的8个发光二极管来显示8个开关的状态。双方晶振均采用11.0592MHz。

题目52 串行口方式3的应用

设计要求

甲乙两个单片机进行方式3(或方式2)串行通讯。甲机将8个流水灯控制数据发送给乙机,乙机再利用该数据点亮其P1口的8个LED。方式3比方式1多了一个可编程位TB8,该位一般作奇偶校验位。乙机接收到的8位二进制数据有可能出错,需进行奇偶校验,其方法是将乙机的RB8和PSW的奇偶校验位P进行比较,如果相同,接收数据;否则拒绝接收。

题目53 并行接口芯片82C55的应用

设计要求

根据题53图,要求82C55的PC口工作在方式0,并从PC5脚输出连续的方波信号,频率为500Hz,并用示波器观察。

题53图 82C55的接口电路

题目54* 利用74LSTTL 扩展的I/O接口的应用

设计要求

电路如题54图所示,编写程序把开关S7~ S0的状态通过74LS373输出端的8个发光二极管显示出来。例如当S5合上时,则LED5点亮。

题54图 利用74LSTTL 扩展的I/O接口

1题目55 测量INT引脚上正脉冲的宽度

设计要求:利用定时器/计数器门控制位GATEx的应用:测量INT1引脚上正脉冲的宽度(该脉冲宽度应该可调),并在6位LED数码管上以机器周期数显示出来。其方法如题

55图所示。

题55图 利用GATE位测量正脉冲的宽度

题目56 单片机之间的双向通信

设计要求:

两片单片机(称为甲机和乙机)之间采用方式1双向串行通信。

1.甲机的K1按键可通过串口控制乙机的LED1点亮、LED2灭,甲机的K2按键控制乙机LED1灭、LED2点亮,甲机的K3按键控制乙机的LED1和LED2全亮。

2.乙机的K2按键可控制向甲机发送数字,甲机接收的数字会显示在其P0端口的数码管上。

题目57 用定时器设计的门铃

设计要求

用定时器控制蜂鸣器模拟发出叮咚的门铃声,“叮”的声音用较短定时形成较高频率,“咚”的声音用较长定时形成较低频率,仿真电路加入虚拟示波器,按下按键时除听到门铃声外,还会从示波器的屏幕上观察到两种声响的不同脉宽。

题目58 单片机控制8×8 LED点阵屏显示数字

设计要求

用单片机的P0口外接74LS245作为控制8×8 LED点阵屏的行驱动,列选通由P1端口控制,程序运行时,8×8 LED点阵屏依次循环显示数字0~9。刷新时间由定时器T1的定时中断来完成。

题目59 单片机控制时钟芯片DS1302的液晶显示时钟

设计要求

DS1302是美国DALLAS公司推出的高性能的实时时钟芯片,它可以对年、月、日、周、时、分、秒进行计时,具有处理闰年补偿功能,最大有效年份可达2100年,显示器件采用1602液晶显示屏。

题目60 单片机控制的LCD液晶显示屏的指针式电子钟

设计要求

本题目采用PG12864LCD液晶屏作为指针式电子钟的显示屏。液晶显示屏模拟表盘与时、分、秒指针,显示当前时间。本电子钟应具有时钟调整功能。

题目61 甲机通过串口控制乙机LED闪烁

设计要求

两片单片机(称为甲机和乙机)之间采用串行通信方式1来控制乙机的LED1闪烁,LED2闪烁, LED1和LED2同时闪烁,或者同时关闭LED1和LED2。

1.甲机发送字符“A”,控制乙机的LED1闪烁; 2.甲机发送字符“B”,控制乙机的LED2闪烁;

3.甲机发送字符“C”,控制乙机的LED1和LED2同时闪烁,; 4.甲机停止发送任何命令字符,则乙机的LED1和LED2均 停止闪烁

在上述功能的基础上,在电路中添加LED指示灯和蜂鸣器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。例如,当前位置在1层时,用户依次按下4、6、5时,则数字分别向上滚动到4、5、6时暂停且LED闪烁片刻,同时蜂鸣器发出提示音。声音频率可固定或可变。如果在待去的楼层的数字中,有的在当前运行的反方向,则数字现在当前方向运行完毕后,再依次按顺序前往反方向的数字位置。

题目62 单片机控制ADC0809的模数转换与显示

设计要求

本题目对单片机控制的ADC0809(proteus的元件库中没有ADC0809,用ADC0808来替代)的通道0的模拟量进行模数转换,转换为数字量后显示在3位数码管上。

也可对ADC0809的两个通道的输入模拟量进行转换,结果显示在8位数码管上,两个通道的结果的显示各占4位。

题目63 单片机控制8×8 LED点阵屏模仿电梯数字滚动显示

设计要求

单片机的P1口的8只引脚接有8只按键开关K1~K8,这8只按键开关K1~K8分别代表1楼~8楼。如果按下代表某一楼层的按键,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置。

题目67 单片机控制的LCD 1602的电子广告牌

设计要求:

用单片机控制字符型LCD 1602显示字符信息“Hello everyone!”和“Welcome to Kunming”。 字符信息“Hello everyone!”、“Welcome to Kunming”分别从LCD 1602右侧第一行、第一行滚动移入,然后再从左侧滚动移出,循环显示。

题目68 * 流水花样灯的设计

设计要求:

花样灯由8个发光二极管构成。正常情况下,花样灯正反向循环流水点亮,控制按键SW按下时,花样灯中的发光发光二极管交替点亮;当SW断开后,花样灯恢复至正常状态。

题目69 简易电子秒表的设计

设计要求:

应用AT89C51的定时器设计一个简易电子秒表,用2位数码管显示计时时间,计时范围0.1~9.9s。当第1次按下计时功能键时,秒表开始计时,并显示时间;第2次按下计时功能键时,停止计时,计算两次按下计时功能键的时间,并送入数码管显示;第3次按下计时功能键时,秒表清零、数码管显示归零,等待下一次按下计时功能键。

题目70 主从式多级通信系统的设计

设计要求:

所设计的主从式多级通信系统有一个主机和两个从机,其中1#从机的地址设为01H,2#从机的地址设为02H。

主机的RXD和从机的TXD相连, TXD和从机的主机的RXD相连,主机的P1口接2个按钮开关,一个代表1#从机,另一个代表2#从机,主机根据开关的状态,发送要访问的从机的地址,地址相符的从机则点亮发光二极管以示和主机进行通信,然后主机向从机发送数据,从机将接收到的数据进行显示。

从机的P1口接LED数码管,用来显示接收到的数据,P2.0引脚上的发光二极管指示和主机的通信状态。

主机和从机串口都设置为方式3,波特率为9600。主机发送地址时,TB8为1,主机发送数据时,TB8为0。从机在监听状态时SM2设置为1,接收到的地址若和本机地址相符,点亮P2.0引脚上的发光二极管以示和主机联络成功,并置SM2为0,准备接收数据,否则SM2仍维持为1不变,不接收数据。从机接收完数据后,将接收到的数据送显示,然后从机将SM2设置为1,返回到监听状态。主机根据按钮开关的状态,和相应的从机进行通信。