51单片机实验课题集

51单片机实验课题集
51单片机实验课题集

51单片机实验课题设计要求

1.1课程设计的总体要求

本课程设计是在理论课程学习和软件设计的基础上,对51单片机硬件系统进行了解和研究,使学生更深入的掌握51单片机开发技术,培养学生面对实际课题,发现问题、分析问题和解决问题,提高学生的实验动手能力。设计根据实验大纲提供的题目要求,选择适当的课题,并通过课题资料收集、原理分析、理论计算、实际编程、系统调试、测试和故障排除,解决在实际设计中的问题,使设计系统能正常工作,有能力的同学可以超出题目要求任意发挥设计。

(1)基本要求:

根据课题要求,研究51单片机实验(如AT89S51_V1.4等)开发板或其它实验开发板的功能和实验样例,学习和掌握keil集成开发环境或Medwin集成开发环境,在此基础上仔细研究课题功能,重新设计实验所需要的电气原理图,编写相对应的应用程序,实现其功能,学生课题实验的优劣可以从以下几个标准衡量:

1.只会使用标准测试程序和资源实现课题部分功能;

2.使用标准测试程序及其他资源实现部分功能;

3.通过修改标准程序实验全部课题基本要求者;

4.完全自主编程实现全部课题基本要求者;

5.软硬件技术应用自如,超越课题要求者。

(2)发挥要求:

在完成本人选题的基本要求前题下,完成发挥部分要求,并具有新内容的自主

发挥和创新,并取得良好效果。

(3)分类标准:

1.完成了实验(1)的全部要求,并熟练运用开发工具。

2.在完成实验(2)的部分要求,并具有创新内容。

1.2分组和实验注意事项

本实验提供的实验课题根据教学要求组成设计小组,进行分工合作,实验工作要细心认真、防止意外,有问题及时向指导老师反映,同学间可以通过研讨、互相学习解决实验中的问题。

每组同学实验过程包括:

(1)听课,了解实验方法

(2)调研和了解课题,进行课题的方案选择

(3)学习开发工具,包括实验板,编程软件,仿真软件等

(4)学习汇编语言以及C语言在51编程上的使用

(5)学习系统测试、调试和故障排除,功能实现

(6)自主实验,包括课题实现和相关资料整理提交

1.3报告要求

(3)基本要求:写明实验内容和方法,画出所用部分资源的原理图等。

(4)提高要求:说明选题依据,资源的选择和该资源在设计中的功能说明,原理图设计,程序结构框图和说明,操作使用说明。

(5)发挥部分:提出设计思想,设计原理图,提供源程序,说明创新点。提供程序

的使用说明(即注释)。

(6)实验体会和意见

1.4绩评定标准

成绩分:不及格、及格、中等、良好、优秀五个等级。

成绩以验收记录为主,参考考勤记录、答疑记录、报告内容质量和其他表现。

注:现场验收时先提交设计报告

在设计报告合格后进行现场作品演示

老师提问学生现场解答

1.5需要学习和完成的内容:

1、51单片机实验开发板或其它实验开发板的功能学习

2、实验课题的研究

3、keil集成开发环境或Medwin集成开发环境的应用学习

4、测试仪器的使用

5、51单片机的编程技术和调试

6、实验报告的制作

2 51单片机实验课题集

第三组

351单片机实验课题设计要求

3.1 总体要求

本课题需要具有8LED数码管(6LED或其他LCD

屏等其它显示设备)和4X4键盘及其它附加键盘的多功

能实验板为工作平台,4X4键盘的初始定义如图1,在

实际使用中可以根据各自课题的具体要求,改变个别按

键的定义。本课题是结合日常学习、生活和娱乐中常见

的电器设备而设计,鉴于实验实际条件和实际设备的制

作困难,大部分的机电运动都采用图形模拟,有些课题

已经给出了模拟要求,制作中需要按照要求实现,没有

给出要求的设计,学生可以发挥想象,创新设计。

课题设计重要的第一步是体验生活,了解生活中这

些设备的实际运用方法,第二步是理论和原理学习,需要学生查找资料,分析原理。第三步是研究模拟系统和实际设备的差异,研究实现模拟方法。第四步是程序设计与实现,第五步是程序调试和功能测试,最后需要提交完整的设计报告。根据需要,也可以提交作品的PPT 报告或演示视频。

每个课题分为基本要求和发挥部分,学生应该在完成方案设计的基础上,从基本要求做起,逐步完善,在有能力和时间的情况下可以自由发挥,超越原课题的设计要求。

基本的8LED屏见图2,屏面和键盘的结合运动是课题的主要设计,模拟和实际的转换是考验学生想象力的重要部分。采用其它显示屏或其它附加键盘的设计方法可以自行定义。

3.2 课题要求

3.3.1第一组实验课题要求

1、可编程摩尔斯电报发报机设计

题目:可编程摩尔斯电报发报机设计

基本要求:

●研究摩尔斯电码的基本原理。

●用键定义一个发报键,实现手工发报。

●按键信号通过蜂鸣器发声,信号同时通过一个IO脚输出(可以用示波器观察)。

●在8LED数码管或LCD上显示时长波形(一横为短音,三横为长音。

●可以设定短音和长音和发报间隔的门限时间

●自动记录每一组摩尔斯电码

●可实现记录电码的重发功能(自动重发一组码)

发挥部分:

●具有摩尔斯电码表(数字、字母和符号表)存储功能(自查资料)。

●可以采用输入数字、字母和符号的方式发报(立即发送)

●可以采用输入数字、字母和符号组方式存储多组摩尔斯电码报文(10组)●编程定义多组电码的发报顺序、发报间隔、长码、短码的时长等参数

●自动连续发报。

显示格式:

LED数码管显示格式见下图

LCD图形屏:移动波形显示

2、摩尔斯电报译码器设计

题目:摩尔斯电报译码器设计

基本要求:

●研究摩尔斯电码的基本原理。

●设置电报参数(长码、短码、码组间隔、报文间隔等)

●存储一组报文数据

●在一个IO口自动重复发送该报文,并用示波器观察波形。

●同时在蜂鸣器中发出长短声音

●通过另一个IO脚接收电码信号。

●存储并翻译组莫尔斯电码(电码表请查资料)

●用LED/LCD/数码管上显示电报信号时长波形。

●用键盘查询电文内容

发挥部分:

●存储记录多组摩尔斯电码

●选择查询并显示每一组电报报文数字

●报文转发功能。通过键盘控制

●报文回复功能,“电报已收到”等信息

●报文删除功能,用键盘进行电文管理

显示格式:

LED数码管显示格式见下图

LCD图形屏:移动波形显示

3、交通灯控制器设计

题目:交通灯控制器设计

基本要求:

●研究十字路口交通管理的基本理论。

●设计一个简单的十字路口交通灯控制器

●可以任意设定主/次方向的通行时长

●可以任意调节黄灯时长

●黄灯前3秒,绿、红等闪动

●用蜂鸣器发声表示信号转换提醒(黄灯亮时)

●设计数字倒计时牌,同步灯的时长信息

发挥部分:

●设计三车道十字路口信号灯(南北方向)

●右转灯常亮,直行和左转分时通行

●灯的排列可以自行设计,可以增加辅助灯

显示格式:

LED数码管/LCD字符屏用数字编号路口1、2、3、4

LCD图形屏:图形表示路口形状,LED灯表示通行状态

8X8点陈模块图形自定义

4、步进电机控制器设计

题目:步进电机控制器设计(模拟)基本要求:

●了解步进电机工作原理(单4拍、双4拍、8拍原理)。

●设计一个简单步进电机控制电路(单4拍等)

●用4LED灯显示步进信号(慢变化,格式见下图)

●用键盘控制步进电机的启动/停止,加速/减速,正转/反转

●交替显示电机速度参数,运转时间

发挥部分:

●设计双4拍、8拍波形,功能同基本要求

●多种波形的手动切换

●多种波形的自动切换

显示格式:

用LED数码管亮/灭表示某线高/低电平,并根据速度不同更改闪烁频率,用2个

LED数码管的外圈表示电机正反转和速度。

LCD图形屏:图形表示多路波形形状随速度的变化,并能画出电机实时运行状态。

注:当为6LED数码管时自行考虑简化图形显示

步进电机励磁顺序表

5、温度控制的梦幻彩灯设计

题目:温度控制的梦幻彩灯设计(18B20)

基本要求:

●了解18B20的工作原理。

●自行设计多种彩灯变换程序(如左移、右移、压缩、扩张等)

●用键盘设定温度和彩灯显示间的关系

●温度每变化2度,改变一种显示模式

●用LED数码管/LCD屏显示温度参数

发挥部分:

●用采集到的温度作显示字实现多种变换(如左移、右移、压缩、扩张等)

●配上合适的音乐(每种显示一种音乐)

●语音报温度

显示格式:

LED数码管根据变换程序显示不同的色彩方式

LCD图形屏:可以根据显示程序显示变换的图形

6、温度控制信号发生器设计

题目:温度控制信号发生器设计(18B20)

基本要求:

●了解18B20的工作原理。

●能采集和显示实时温度值

●设计一信号发生器,能输出方波

●用IO口输出,用示波器观察

●设计一正弦信号通过D/A输出,用示波器观察

●用键盘选择输出信号类型

●用键盘改变输出信号的频率和幅值

●用LED数码管/LCD屏显示温度参数和信号类型

●用温度控制发生信号的频率,温度越高频率越高

发挥部分:

●能输出正弦、三角、锯齿等其他波形

●能设定温度和信号频率间的关系

●用温度控制多种信号频率,温度越高频率越高

●用LED数字屏/LCD屏显示信号波形参数或波形

显示格式:

LED数码管可显示方波以及波形参数

LCD图形屏:图形表示多路波形形状和波形参数

7、数字直流电压表设计

题目:数字直流电压表设计

基本要求:

●了解直流电压表的工作原理。

●设计一个直流电压测量器,测量范围0.01V-3V,

●用LED数码管/LCD屏显示测量值,显示精度0.1

●用键盘选择测量范围

发挥部分:

●能设置连续测量时间间隔参数

●动态连续测量信号,并能存储记忆每次测量值。

●通过按键查询存储数据。

显示格式:

LED数码管/LCD屏显示参数

8、数字交流电压表设计

题目:数字交流电压表设计

基本要求:

●了解交流电压表的工作原理。

●设计一个正弦交流信号源1KHz,电压输出范围0.01V-3V,

●用AD采集并进行参数处理

●用LED数码管/LCD屏显示测量参数(周期、频率和幅度等)●用键盘选择测量范围(分量程)

发挥部分:

●交流信号频率10Hz-10KHz (0.1-3V)可变

●用AD采集并进行参数处理

●用LED数码管/LCD屏显示测量参数(周期、频率和幅度等)●图形显示被测信号的波形

显示格式:

LED数码管/LCD屏显示参数

9、数字电阻测量仪设计

题目:数字电阻测量仪设计

基本要求:

●了解电阻测量方法和工作原理。

●设计一个精密电阻测量器,测量范围0.01Ω-10MΩ

●用LED数码管/LCD屏显示测量值,显示精度0.001

●用键盘选择测量范围(分档)

发挥部分:

●了解交流阻抗测量原理

●设计一正弦测试信号(1KHz)

●实现交流阻抗测量,被测频率10Hz-1KHz

●考虑交流测量的附加电路。

显示格式:

LED数码管/LCD屏显示参数

10、小型电容测试仪设计

题目:简易电容量测试仪设计

基本要求:

●了解电容测量方法和工作原理(LCR测试和交流电桥原理)。

●设计一个1KHz的正弦测试信号,能通过DA输出,用示波器观察。

●设计一个小容量简易电容测试仪,测量范围100pF-10uF

●用LED数码管/LCD屏显示测量值,显示精度0.001

●用键盘选择测量范围(分档)

发挥部分:

●了解交流容抗测量原理

●交流容抗测量,测试频率1KHz

●能描绘容抗-频率特性曲线或数据表

●考虑交流测量的附加电路。

显示格式:

LED数码管/LCD屏显示参数

11、音乐信号强度指示器设计

题目:音乐信号强度指示器设计

基本要求:

●存储数字音乐信号(随机信号)

●通过蜂鸣器或DA输出声音信号

●用键盘控制音乐的启动、停止、暂停、静音等操作

●8LED能显示音乐播放参数(歌号,启/停状态,到计时数等)

●用LED数码管/LCD屏或LED灯显示音乐信号强度(单排式)

●参数和波形显示可以切换

发挥部分:

●实现音乐信号的高、中、底能量分频

●用LED数码管/LCD屏或LED灯显示音乐信号强度(高、中、低三分频)

显示格式:

LED数码管/LCD屏显示参数

12、投票信息模拟器设计

题目:投票信息模拟器设计

基本要求:

●设计用按键设置9个被选举对象A、B、C。。。

●设计10个投票用户(用8LED显示)

●用键盘数字0-9代表选择对象

●设定每个用户可以投票的有效票数

●投票完成后能显示每位被投票人的有效票数

●能显示投票人数、有效票、无效票、赞成票、反对票、弃权票等信息

发挥部分:

●被选举对象可以扩大到更多

●投票人也可扩大到更多

●设计更为有效的数据统计方法

显示格式:

8LED数码管/LCD屏显示参数

LCD可以实时显示播放音乐的声谱变化

本设计要充分利用8LED数码管和4X4键盘功能

13、动作灵敏度测试仪设计

题目:动作灵敏度测试仪设计

基本要求:

●用LED/LCD作参数显示器,按键参数

●设计一个单键灵敏度测试功能器,测试、记录并显示两次按键的间隔时间

●测试、记录、显示每秒按键次数,动作灵敏度测试,

●显示最近两次按键的间隔时间和历史最短间隔时间(开/闭/开时间,精确到ms)

●设计多键同时按键的时间差测试,测试多指灵敏度

●能记录和查询显示每键的接触时间和时间差

●按键灵敏度排名

发挥部分:

●为每一按键设计一锻不同的音乐

●当每次抢键后播放胜出键的音乐声音

显示格式:

8LED数码管/LCD屏显示格式自定

14、节温器设计(18B20)

题目:节温器设计

基本要求:

●了解18B20的工作原理。

●了解步进电机的工作原理;

●当温度升高到一定温度时,启动电机,带动风扇运转,温度越高,风扇转动越快。(转

速可用声音代替,转速越快,频率越高)

●当温度下降到一定温度时,关闭电机(可用LED等代替)。

发挥部分:

●启动电机时,有一种报警声,当达到危险温度时,有另外一种持续报警声。

●可以计算风机转速

●可以记录启动电机的次数和时间,并能回放

显示格式:

8LED数码管可显示当前温度和风扇转速和模拟电机运转,格式见下图

LCD图形屏:当前温度和风扇转速,并能图形化显示风机的运转状态

15.俄罗斯方块游戏设计

题目:俄罗斯方块游戏设计

基本要求:

●了解俄罗斯方块游戏规则

●设置基本图形见下图

按键定义:OK=开始、

ESC=停止、

=》=时间速度+、

《= =时间速度-

1=左转90度

2=右转90度

3=快速落下

4=X翻转

5=Y翻转

0=随机更换图形键

●用8LED的每一LED构成一图形屏,

●游戏以各种随机出现的灯组,通过从左向右移动,在移动过程中可以转换灯组状态,以

点亮所有灯为目标,当8字全亮时可以去除该灯,后续灯可以右移1字,用以延长游戏时间。当亮灯延伸到最左边时游戏结束,移除的灯数为得分数。

●设计灯组移动声音提示功能,增加游戏乐趣。

发挥部分:

●设机游戏级别,使之具有升级功能,级别越高,灯的移动速度越快

●进一步增加复杂灯组,提高游戏难度

●记录游戏参数(姓名、游戏级别、游戏时间、得分等)并可查询。

显示格式:

LED数码管见图/LCD屏显示方法自定

16、压控变频器设计

题目:压控变频器设计(直流电压)

基本要求:

●用AD采样0-5V直流电压。

●用8LED/LCD显示实时电压值

●设计一方波信号发生器。

●用IO口输出,用示波器观察

●可以用键盘改变输出信号的频率

●用LED数码管/LCD屏显示信号频率

●建立电压与频率间的关系

●用调节电压控制信号的频率,电压越高频率越高(测最高频率)

发挥部分:

●设计一正弦信号通过D/A输出,用示波器观察

●能设定电压和信号频率间的关系

●用电压控制正弦信号频率,电压越高频率越高(测试最高频率)

●用LCD屏显示信号波形参数或波形

显示格式:

LED数码管显示参数格式见下图

LCD图形屏:图形表示多路波形形状和波形参数

3.3.2第二组实验课题要求

1.多用途定时提醒器设计

题目:多用途定时提醒器设计

基本要求:

●设计一个多段定时器用于日常提醒管理(最少3段)

●用4位8LED数码管显示时间,

●用另4位8LED数码管倒计时(最近提醒时间的到计时,时:分,小于1分时用秒计时)●到计时为0时发出声音提示,可以用按键关闭声音

●设计多个按键设置多段声音提示,如:事件号、时间+、时间-、启动、停止、暂停等●按键时发声

发挥部分:

●设计多时间段提示查询功能

●设计在每一转折点上用不同声音提醒。

●采用时间编程设定多段的定时的重复功能,如每天、仅一次,星期1-6,日等。

●设计语音提示功能,语音现场录音。

显示格式:

LED数码管显示要求见下图

LCD屏显示参数要求自定

注:当为6LED数码管时自行考虑简化图形显示如下:

2.智能步进电动百叶窗设计

题目:智能步进电动百叶窗设计

基本要求:

●用一台步进电机控制百叶窗叶片的旋转(正转/反转)

●用8LED数码管显示旋转角度和模拟电机转动

●设置按键:手动/自动切换、手动正转和手动反转,停止/启动键

●用一个小数点显示手动/自动状态,自动状态时二极管亮。

●用8LED/LCD显示电机旋转角度(0-180度)

●用键设置两个极限角度位置代替保护行程开关,用于保护百叶窗叶片:

当正转到极限位置时,电机停止正转,但还可以反转;

当反转到极限位置时,电机停止反转,但还可以正转。

发挥部分:

●设计一个光检测器,用LED/LCD显示光强度值(这个要外接光线感应器,或者用按键

模拟光线的强弱)

●设定光强度的上限和下限

●在自动模式下,旋转角度自动跟踪光强度变化

动作原理:

单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:

当P<=S1时,控制M正转以增加进光量;

当P>S2时,控制M反转以减少进光量;

当S1

显示格式:

8LED数码管显示格式见下图

8LED数码管/LCD屏显示模拟图形

3.电子抢答器设计*

题目:电子抢答器设计

基本要求:

●设计有一主持人和8个参赛队的一对八抢答器(1个开始键8个抢答键)。

●设计8LED/LCD显示抢答状态

●当主持人按下开始键,参赛队在10秒钟内可以抢答。如超过10秒则不能抢答。如抢答

成功,则显示抢答的队号。

●可以查询抢答人数和顺序

●当主持人按下复位按键时,系统回到初始状态

发挥部分:

●设计一计数器,用LED/LCD显示启动后的时间(xx.xxx)

●抢答后能存储各按键按下时间和时间差(精确到0.001秒)

显示格式:

LED数码管/LCD屏显示倒计时时间、抢答的序号等

4.电子密码锁设计*

题目:电子密码锁设计

基本要求:

●密码锁由4X4键盘和6位数码管或者LCD显示器组成。

●设定的初始密码是000000,可修改设定密码,密码为6位阿拉伯数字

(修改密码需先输入原密码,再输2次新密码)

●当输入密码时,显示密码对应的阿拉伯数字

●当密码位数输入完毕按下确认键时(#),对输入的密码与设定的密码进行比较,若密

码正确,则门开,此处用小数点发光二极管点亮做为提示。

●若密码不正确,则可以重新输入密码(灯闪亮,同时有声音报警)。

●如连续三次输入错误,则禁止输入,并有连续一分钟的报警声。

发挥部分:

●密码显示可以用按键控制显示阿拉伯数字或者全部显示为“8”(即隐藏输入密码数字)●密码的位数可以从4位到6位任意选择

●设计忘记密码的处理方法(比如设计两组密码,密码的位数可以不同等)

●记录存储开门时间、时长记录

●能查询记录(显示方法自定)

显示格式:

LED数码管/LCD屏在密码锁不使用时显示日期、时间,当需要使用时,切换到使

用界面,显示对应的密码、开关次数等参数。

5.篮球比赛计分器设计*

题目:篮球比赛计分器设计

基本要求:

●能用6LED/LCD显示2个队的当前比分(3位LED代表一队,分为AB两个队,LCD可以

用两块屏分别显示各队的比分);

●设计6LED时间显示屏,要求见下图,显示当前进攻队的进攻时间倒计和比赛局,时间

等参数

●两屏可以互相切换观察,

●用键切换进攻方向;

●进攻计时超时有报警声。

●能显示当前局情况和倒计时间(xx.xx)

●用按键设计AB队得分输入,根据各自得分情况进行加1、2、3分(用3个键表示);

发挥部分:

●自动记录比赛过程的得分时间表

●用LED/LCD查询得分情况

●考虑得分记录时+队号

●统计队员得分情况

显示格式:

8LED数码管见下图

LCD屏显示方法自定

6.可存储式电子琴设计*

题目:可存储式电子琴设计

本设计利用8051单片机的控制程序结合LED/LCD,设计一台数字式可存储简易电子琴。

基本要求:

●使用8LED/LCD显示器来显示音阶输入的相关信息;

●当按下键盘组相对按键,压电喇叭会发出相对音阶单音,共有2个8度音阶;

●所有单音会存入8051内而保存起来;

●回放存储的音乐;

●可以按键暂停回放;

●可以实时显示目前正演奏的单音编码。

发挥部分:

●自动记录每个单音编号和时长

●给存储的音乐配歌名

●回放整段音乐

●回放时能显示倒计时和歌名等参数

显示格式:

LED数码管/LCD屏显示方法自定

7.八音盒设计*

题目:八音盒设计

本设计利用8051单片机结合内部定时器及8LED/LCD,设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。

基本要求:

●使用8LED/LCD显示器来显示目前演奏的歌曲编号;

●内建多首歌曲旋律

●按下单键就可以演奏歌曲;

●演奏时可以用按键播放、暂停、停止等操作。

●8LED/LCD能显示当前的歌名和播放倒计时,

发挥部分:

●可以查询已存的歌数、歌名和对应的编号

●自动编成实现顺序、循环、随机播放功能

●能根据歌编号调整播放顺序(自定义播放)

●在播放中可以快进/快退(用键控制)

显示格式:

8LED数码管/LCD屏显示方法自定

8.自动滚动广告牌设计

题目:自动滚动广告牌设计

基本要求:

●事先存储多串字符串(5组),每组10个以上数字或字母

●用8LED/LCD显示器定时滚动显示;每串应在停留3秒,再滚动输出下一串。

●按键控制播放效果(播放、暂停、停止、下一个、上一个、滚动加速、滚动减速)。

●增加字符串运动方式:

从右向左移出

从左向右倒退移出

每组跳出再左移出

反向向右移出

边移边闪动

每组左右同时移入在中间消失

淡入(由暗变亮)

淡出(由亮变暗)

其它

发挥部分:

●自动调整播放顺序

●实现循环、随机播放功能。

●在播放中加上背景音乐

●能按键添加显示数组

显示格式:

LED数码管/LCD屏显示方法自定

9.竞价器设计

题目:竞价器设计

基本要求:

●了解拍卖竞争的操作流程

●设计一个拍卖行用的拍卖竞价器;

●具有底价输入功能

●可设定竞价的加价规则和超时门限

●设计多个竞争价键

●显示每次加价的结果

●声音提示拍卖完成或流拍

发挥要求:

●记录拍卖流程;

●记录竞拍时间和总耗时间

●查询记录结果。

显示格式:

LED数码管/LCD屏显示方法自定

10.电风扇模拟控制系统设计

题目:电风扇模拟控制系统设计

基本要求:

●观察和了解一台实际电风扇的工作和状态,设计一电扇模拟控制器

●用8LED/LCD显示电风扇的工作状态(0,1,2,3,4四档风力),

0表示停转,4-转速最快

●设计按键“自然风”-1、“常风”-2和“睡眠风”-3;

●设计一个“摇头”键用于控制电机摇头,用1LED管指示摇头角度(8个)。

●设计一个“定时”键,用于定时时间长短设置;

发挥部分:

增加18B20温度计,测量室温

●设计超温自动启动功能,(用键设定温度门限)

●超温蜂鸣器断续报警

显示格式:

8LED数码管显示格式见下图

LCD屏显示方法自定

11.洗衣机控制器设计

题目:洗衣机控制器设计

基本要求:

●观察和了解一台实际洗衣机的工作和状态,设计一模拟洗衣机控制器

●自动洗衣流程包括:洗涤--)漂洗—》脱水—》--)漂洗—》脱水—》关机

●设置一键选择洗涤,漂洗,脱水(组合多选,墨认为全选)

●设置一键选择水位高—中—低(三选一)

●设置一启动、暂停、停止键,在洗衣过程中键都有效

●设置一衣物类型键,选择:普通、毛衣、面被等

●显示戏衣流程的到计时

●洗涤完成后用声音提示3声。

发挥部分:

●设计一个“预约”键,用于定时启动洗衣机;

●能修改和设置编程洗衣流程,包括洗衣过程和每个过程的时间

●研究.不同模式下的洗涤过程(棉普通方式、羊毛、浸泡等功能)。

●研究加温度洗涤过程

显示格式:

8LED数码管显示格式见下图

LCD屏显示方法自定

12.跑步机控制器设计

题目:跑步机控制器设计

基本要求:

●观察和了解一台实际跑步机的功能和状态,设计一模拟跑步机

●用键设定跑步速度(用两位LED/LCD)

●跑步启动后计算和显示跑步时间和距离

●设计启动,停止,加速/减速,升高/降底,紧急停止等键

●用LED/LCD合理安排数据显示

●具有倒计时运行功能

发挥部分:

●速度变化编成运行模式

●高度变化编成运行模式

●速度+高度混合编程运行模式

●计数热量消耗参数

显示格式:

8LED数码管显示格式见下图

LCD屏显示方法自定

西南科技大学单片机原理实实验四及代码

2.1 实验四中断实验 一、实验目的 加深对MCS-51单片机中断系统基础知识的理解。 二、实验设备 Keil C单片机程序开发软件。 Proteus仿真软件 DP51-PROC单片机综合实验仪。 三、实验内容和步骤 内容: 利用外部中断输入引脚(以中断方式)控制步进电机的转动。要求:每产生1次中断,步进电机只能步进1步。 实验程序: 使用INT0的中断服务程序控制步进电机正向步进;使用INT1中断服务程序控制步进电机反向步进。 设计思路: ①主程序在完成对INT0和INT1的设置后,可进入死循环(等待中断请求)。 ②为便于实验观察和操作,设INT0和INT1中断触发方式为边沿。 ③步进电机的转动控制由外部中断的服务程序来实现。 ④当前步进电机的相位通电状态信息可以使用片内RAM中的一个字节单元来存储。 设计参考: ①主程序需要设置的中断控制位如下: IT0和IT1 外部中断触发方式控制 0=电平 1=边沿(下降沿) EX0和EX1 外部中断允许控制0=屏蔽 1=允许 PX0和PX1 中断优先级级别控制0=低级 1=高级 在同级别(PX0=PX1)时INT0的优先级高于INT1 EA 中断允许总控制0=屏蔽 1=允 许 ②外部中断服务程序的入口地址: 0003H 外部中断0 0013H 外部中断1 预习: 1)编写好实验程序。 2)根据编写的程序和实验步骤的要求制定调试仿真的操作方案。

实验单元电路: 1) 步进电机驱动电路。 步进电机共有4相,当以A →B →C →D →A →B …的顺序依次通电时,电机就会正转,若按相反的顺序依次通电,电机就会反转。每顺序切换一相(1步),电机旋转18°,切换的频率决定电机的转速(切换的频率不能超过电机的最大响应频率)。根据图 2.4中的电路,当BA (插孔)输入为高时,对应的A 相通电。 2) SW 电路 开关SW X 拨在下方时,输出端SWX 输出低电平,开关SW X 拨在上方时,输出端SWX 输出高电平。其中SW1和SW3具备消除抖动电路,这样,SW1或SW3每上下拨动一次,输出端产生单一的正脉冲(上升沿在前,下降沿在后)。 3) LED 和KEY 电路 步骤: 1) 在S : \ STUDY \ Keil 文件夹中新建Ex04文件夹(该文件夹用于保存本次实验的所 有内容),通过网上邻居将服务器上本次实验共享文件夹下的所有文件拷贝到S : \ STUDY \ Keil \ Ex04文件夹中。 2) 在Keil C 中创建一个新工程,新工程保存为S : \ STUDY \ Keil \ Ex04\Ex04.uv2,然 后选择单片机型号为Generic 中的8051。 图2.5 单脉冲电路原理图 +5V +5V 图2.4 步进电机驱动电路原理图 LED1 LED8 +5V 8 图2.6 LED 和KEY 电路 +5V 8

单片机课程设计51实验报告DOC

福建工程学院软件学院 题目:51开发洗衣机 班级:物联网工程1202 成员: 座号:04 28 指导老师: 日期:年月日课设报告

目录 1摘要 (1) 2.设计需求 (1) 2.1功能需求 (1) 2.1.1 基本功能 (1) 2.1.2扩展功能 (1) 2.2 设计要求 (2) 2.2.1 单片机芯片部件功能 (2) 2.2.2 LCD数码显示管部件功能 (2) 2.2.3 按键部件功能 (2) 2.2.4 蜂鸣器部件功能 (2) 3硬件设计及描述 (2) 3.1总体描述 (2) 3.2系统总体框图 (3) 3.3Proteus电路图 (3) 3.4各部分硬件介绍 (4) 3.4.1晶振Protues仿真 (4) 3.4.2LCDProtues仿真 (5) 3.4.3 按键Protues仿真 (5) 3.4.4上拉电阻Protues仿真 (6) 3.4.5C51芯片Protues仿真 (6) 3.4.6上电复位电路Protues仿真 (8) 3.4.7蜂鸣器Protues仿真 (9) 4 软件设计流程及描述 (10) 4.1程序流程图 (10) 4.2函数模块及功能 (10) 5功能实现 (11) 5.1程序烧入上电调试 (11) 5.2时间递增跳变 (12) 5.3比分更变 (13) 5.4比赛得分复位 (14) 5.5比赛时间复位 (14) 6 心得体会 (15) 7源程序代码: (16)

1摘要 是为了方便足球比赛时计时与计分及时与准确公开而引申出的实用产品。在此设计中接入了一个1602液晶显示屏,第一行用来记录赛程的时间,第二行用于显示比赛的得分情况。赛程计时用倒计时来计时。在比赛结束时按下相应按键蜂鸣器会响起,提醒比赛时间结束。 这次试验运用C语言进行编程,编程后利用Keil uVision来进行编译,再生成.hex文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,最后利用单片机MCS-51实机来实现功能。 本设计以AT89S51单片机作为核心,综合应用单片机定时器、中断、LCD1602 液晶显示等知识,设计一款单片机和简单外设控制的足球计分器应用,同时显示当前的比赛进行时间,比赛队伍,比分状况。 2.设计需求 2.1功能需求 2.1.1 基本功能 (1)屏上显示比赛已运行时间 (2)屏上显示A队和B队的得分 (3)屏上显示上下半场(H-L) (4)通过按键控制比分的增减 2.1.2扩展功能 (1)按键实现比赛场次的更换 (2)按键实现比赛计时的复位 (3)按键实现比赛比分的复位 (4)在比赛结束时,蜂鸣器在主裁判的控制下响起

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

51单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。因此构成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。 主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/1210957630.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.360docs.net/doc/1210957630.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

51单片机实验报告-上传

本科生实验报告 实验课程单片微机原理与应用 学院名称ZZZZZ学院 专业名称电气工程及其自动化 学生姓名ZZZZ 学生学号ZZZZZ 指导教师ZZZ 实验地点6c902 实验成绩 二〇一六年三月二〇一六年五月

实验一单片机集成开发环境应用一实验目的 熟悉单片机集成开发软件(Keil); 掌握单片机实验板的使用; 掌握单片机P1口使用; 二实验内容 1、集成开发环境Keil介绍及开发流程 KEIL uVISION4是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM(产品全生命周期管理),汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。 安装好后,让我们一起来建立一个小程序项目吧。即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。 首先当然是运行KEIL51软件。运行几秒后,出现如图1-1的屏幕。

图1-1 2、建立第一个项目 点击工程菜单,选择弹出的下拉式菜单中的NewuVision Project,如图1-2。接着弹出一个标准Windows 文件对话窗口,如图1-3。在“文件名”中输入您的第一个C 程序项目名称,“保存”文件。这是KEIL uVision4项目文件,以后我们可以直接点击此文件以打开先前做的项目。 图1-2 New Project菜单

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

51单片机流水灯实验报告

51单片机流水灯试验 一、实验目的 1.了解51单片机的引脚结构。 2.根据所学汇编语言编写代码实现LED灯的流水功能。 3.利用开发板下载hex文件后验证功能。 二、实验器材 个人电脑,80c51单片机,开发板 三、实验原理 单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所示: 然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。 四、实验电路图

五、通过仿真实验正确性 代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A ACALL DELAY SJMP LOOP DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1 DJNZ R1,DEL2 RET End 实验结果:

六、实验总结 这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

51单片机实验程序

3 3 3 用查表方式编写y=x1 +x2 +x3 。(x 为0~9 的整数) #include void main() { int code a[10]={0,1,8,27,64,125,216,343,512,729}; //将0~9 对应的每位数字的三次方的值存入code中,code为程序存储器,当所存的值在0~255 或-128~+127 之间的话就用char ,而现在的值明显超过这个范围,用int 较合适。int 的范围是0~65535 或-32768~32767 。 int y,x1,x2,x3; //此处定义根据习惯,也可写成char x1,x2,x3 但是变量y 一定要用int 来定义。 x1=2; x2=4; x3=9; //x1,x2,x3 三个的值是自定的,只要是0~9 当中的数值皆可,也可重复。 y=a[x1]+a[x2]+a[x3]; while(1); //单片机的程序不能停,这步就相当于无限循环的指令,循环的内容为空白。 } //结果的查询在Keilvision 软件内部,在仿真界面点击右下角(一般初始位置是右下角)的watch 的框架内双击“double-click or F2 to add”文字输入y 后按回车,右侧会显示其16 进制数值如0x34,鼠标右键该十六进制,选择第一行的decimal,可查看对应的10 进制数。 1、有10 个8 位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的 数据(1 的个数为偶数)都要存到内RAM50H 开始的数据区中。试编写有关程序。 #include void main() { int a[10]={0,1,5,20,24,54,64,88,101,105}; // 将所要处理的值存入RAM 中,这些可以根据个人随意设定,但建议不要超过0~255 的范围。 char i; // 定义一个变量 char *q=0x50; // 定义一个指针*q 指向内部0x50 这个地址。 for(i=9;i>=0;i--) //9~0 循环,共十次,也可以用for(i=0;i<10;i++) { ACC=a[i]; //将a[i] 的值赋给累加器ACC if (P==0) //PSW0 位上的奇偶校验位,如果累加器ACC 内数值1 的个数为偶数那么P 为0,若为奇数,P 为1。这里的P 是大写的。 { *q=a[i]; q++; // 每赋一个值,指针挪一个位置指向下一个。 } } while(1); //同实验一,程序不能停。 }

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

心率计51单片机代码.doc

#include "STC12C5A.h" #include "SMG.h" #define FSOC 24000000L #define T1MS (65536-FSOC/12/1000) sbit LED0 = P0^0; unsigned int count=0;计时标志数 unsigned int xinlv=0;心率计算器 unsigned char seg[10] = {0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; sbit HC595_RST = P0^6; sbit HC595_SCK = P0^4; sbit HC595_RCK = P0^5; sbit HC595_DAT = P0^7;

外部中断代码void Exti0_Init() { IT0 = 1; //下降沿触发 TCON.0=1 EX0 = 1; //开外部中断0 IE.0=1 EA = 1; //开总中断 } void Exit0_ISR() interrupt 0 { Xinlv++; LED0=0; delay_ms(2); LED0=1; } 定时器代码void Timer0_Init() { TMOD = 0x01; TR0 = 1; //16位定时器工作方式 TH0 = T1MS>>8; TL0 = T1MS; ET0 = 1; //打开定时器0中断 EA = 1; //打开总中断 } void Timer0_ISR() interrupt 1 { unsigned int temp; count++; TH0 = T1MS>>8; TL0 = T1MS; if(count=5000) temp=Xinlv; for{} SMG_Display(temp); }

80C51单片机-实验报告

实验一 CPU片内(外)清零 1.CPU片内RAM清零 一、实验目的: 掌握MCS-51汇编语言的设计,了解单片机的寻址方式以及调试方法。二、实验内容: 把单片机片内的30H~7FH单元清零。 三、实验框图: 四、实验步骤: 用连续或者单步的方式运行程序,检查30H-7FH执行前后的内容变化。五、参考实验程序: 程序名称:PNQL.ASM ORG 0000H JMP MAIN ORG 0030H MAIN: MOV R0,#30H ;30H送R0寄存器 CLR1: MOV A,#00H ;00送累加器A MOV @R0,A ;00 送到30H-7FH单元 INC R0 ;R0加1 CJNE R0,#7FH,CLR1 ;不到7F字节再清 WAIT: LJMP WAIT END 六、实验思考: 如果把30H-7FH的内容改为99H,如何修改程序。

2.CPU 片外RAM清零 一、实验目的: 掌握MCS-51汇编语言的设计,了解单片机的寻址方式以及调试方法。 二、实验内容: 把外部扩展的RAM的0000H-00FFH单元内容清零。 三、实验框图: 四、实验步骤: 用连续或者单步的方式运行程序,检查0000H-00FFH执行前后的内容变化。 五、参考实验程序: 程序名称:PWQL.ASM ORG 0000H MAIN: MOV SP,#60H MOV DPTR,#0000H ;0000H送DPTR寄存器 MOV R6,#0FFH ;FFH送R6寄存器(计数) CLR1: MOV A,#00H ;00送累加器A MOVX @DPTR,A ;00 送到0000H-00FFH单元 INC DPTR ;DPTR+1 DJNZ R6,CLR1 ;不到FF个字节再清 WAIT: SJMP WAIT END 六、实验思考: 把1-10先对应存入片内0030H起始的单元内,然后再从片内取出,对应存入片外7FFFH起始的单元中去。

51单片机实验报告

实验一数据传送实验 实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV @R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 思考题: 1. 按照实验内容补全程序。 2. CPU 对8031内部RAM存储器有哪些寻址方式? 直接寻址,立即寻址,寄存器寻址,寄存器间接寻址。 3. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH ___0A0H~0AFH______________________ 内部RAM 50H~5FH___0A0H~0AFH_______________________ 实验二多字节十进制加法实验

实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。源程序清单:ORG 0000H RESET: AJMP MAIN ORG 0100H MAIN: MOV SP, #60H MOV R0, #31H MOV @R0, #22H DEC R0 MOV @R0, #33H MOV R1, #21H MOV @R1, #44H DEC R1 MOV @R1, #55H MOV R2, #02H ACALL DACN HERE: AJMP HERE DACN: CLR C DAL: MOV A, @R0 ADDC A, @R1 DA A MOV @R1, A INC R0 INC R1 DJNZ R2,DAL CLR A MOV ACC.0 , C RET 思考题: 1. 按照实验内容补全程序。 2. 加数单元、被加数单元和结果单元的地址和内容为? 3130H,2120H,6688H 3. 如何检查双字节相加的最高位溢出? 看psw.3 的溢出标志位ov=1 则溢出 4. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

51单片机蜂鸣器奏乐实验汇编代码

LJMP START ORG 000BH INC 20H ;中断服务,中断计数器加1 MOV TH0,#0D8H MOV TL0,#0EFH ;12M晶振,形成10毫秒中断RETI START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV IE,#82H MUSIC0: NOP MOV DPTR,#DAT ;表头地址送DPTR MOV 20H,#00H ;中断计数器清0 MUSIC1: NOP CLR A MOVC A,@A+DPTR ;查表取代码 JZ END0 ;是00H,则结束 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5:NOP MOV R6,A INC DPTR MOV A,#0 MOVC A,@A+DPTR MOV R7,A SETB TR0 MUSIC2:NOP CPL P3.2 MOV A,R6 MOV R3,A LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 MOV 20H,#00H INC DPTR LJMP MUSIC1 MUSIC3:NOP CLR TR0 MOV R2,#0DH

MOV R2,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1 END0:NOP MOV R2,#0FFH MUSIC6:MOV R3,#00H LJMP MUSIC0 DEL:NOP DEL3:MOV R4,#02H DEL4:NOP DJNZ R4,DEL4 NOP DJNZ R3,DEL3 RET NOP DAT: DB 18H, 30H, 1CH, 10H DB 20H, 40H, 1CH, 10H DB 18H, 10H, 20H, 10H DB 1CH, 10H, 18H, 40H DB 1CH, 20H, 20H, 20H DB 1CH, 20H, 18H, 20H DB 20H, 80H, 0FFH, 20H DB 30H, 1CH, 10H , 18H DB 20H, 15H, 20H , 1CH DB 20H, 20H, 20H , 26H DB 40H, 20H , 20H , 2BH DB 20H, 26H, 20H , 20H DB 20H, 30H , 80H , 0FFH DB 20H, 20H, 1CH , 10H DB 18H, 10H, 20H , 20H DB 26H, 20H , 2BH , 20H DB 30H, 20H , 2BH , 40H DB 20H, 20H , 1CH , 10H DB 18H, 10H, 20H, 20H DB 26H, 20H , 2BH, 20H DB 30H, 20H, 2BH , 40H DB 20H, 30H, 1CH , 10H DB 18H, 20H , 15H , 20H DB 1CH, 20H , 20H , 20H DB 26H, 40H, 20H , 20H

51单片机信号发生器实验报告

微控制器技术创新设计实验报告姓名:学号:班级: 一、项目背景 信号发生器也叫做振荡器或是信号源,在现在的科技生产实践中有着广泛而重要的应用。现在的特殊波形发生器在价格上不够经济,有些昂贵。而基于AT89C51单片机的函数信号发生器可以满足此要求。根据傅里叶变换,各种波形均可以用三角函数的相关式子表示出来。函数信号发生器能够产生多种波形,如三角波、锯齿波、矩形波、方波和正弦波。 二、项目整体方案设计 可以利用单片机编程的方法来实现波形的输出。可选用AT89C51作为控制器,输出相应波形的数字信号,再用D/A 转换器输出相应波形的模拟信号。用DAC0832作为D/A转换器,再经过两级放大后输出,最终在示波器上显示。可以使用按键扫描来实现波形的变化

三、硬件设计 四、软件设计 #include #define uchar unsigned char #define uint unsigned int Const tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff ,0xff,0xff,0xff,0xff,0xff,0xff}; void delay(void) { uchar i; for(i=230;i>0;i--); }

void main() { uchar i; while(1) { for(i=0;i<18;i++) { P1=tab[i]; delay(); } } } 五、实验结果

六、项目总结 通过这次实验设计,锻炼我们综合运用知识,提出问题,分析问题,及解决问题的能力。我感慨颇多,在着手设计的这段日子里,我又学到了很多东西。特别是理论联系实际。我认为掌握单片机的应用及开发技术是最基本的也是必要的。单片机是以后从事相关嵌入式研发最为基本的入门芯片。所以学好单片机是我们电子类的必要任务。通过这次单片机课程设计的顺利完成,离不开付老师指导,也离不开班上同学的耐心帮助。在此,我对所有帮助过我的老师和同学表示我真挚的感谢!

单片机实验

实验一:MCS-51单片机开发环境的应用(2学时) 实验目的: 掌握MCS-51单片机实验系统的使用,以及在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 实验要求: ⑴将数据存储器的40H~4FH的内容赋值成00H~0FH,并将40H~4FH 的内容整体复制到50H~5FH。 ⑵将数据存储器的40H~4FH的内容赋值成00H~0FH,并将两两相加之和送到50H~57H的数据空间中。 实验二:MCS-51汇编语言典型算法程序设计(2学时) 实验目的: 掌握汇编语言程序设计的方法及常用算法的实现。 实验要求: ⑴将数据存储器的40H~4FH中杂乱无序的数按降序排列。 ⑵将两个ASCII码表示的两位10进制数转换成压缩BCD码(低4位存个位,高4位存十位)。

实验三:单片机I/O实验(2学时) 实验目的: 掌握MCS-51单片机的I/O口使用方法。 实验要求: ⑴P1口作输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 ⑵P1.0,P1.1作为输入口接两个拨动开关,P1.2,P1.3作输出口接两个发光二极管,编写程序读取开关状态,将此状态在发光二极管上显示出来。 实验四:单片机定时器实验(2学时) 实验目的: 了解MCS-51单片机定时器的结构及使用方法。 实验要求: 用CPU内部定时器方式计时,实现每秒钟输出状态发生一次翻转。

实验五:单片机中断实验(2学时) 实验目的: 掌握中断控制单元的设置方法及中断的编程方法。 实验要求: ⑴用单次脉冲申请中断,在中断处理程序中对输出信号进行翻转。 ⑵用单次脉冲申请中断,要求程序中对每次中断进行计数,并将计数结果显示在发光二极管上。 实验六:单片机综合实验(4学时) 实验目的: 通过实验培养学生综合设计能力,并从整体上了解单片机的性能。实验要求: 本实验模拟交通信号灯控制,一般情况下正常显示,当有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。设急救车通过路口时间为10秒。急救车通过后,交通恢复正常。本实验需用另一台PC机上的串口调试助手(或超级终端)发送“1”,表示有急救车通过。

基于51单片机的模数转换(AD)实验设计

HEFEI UNIVERSITY 单片机课程综述报告 主题基于51单片机的模数转换(A/D)实验设计姓名郭丽丽 专业通信工程 学号 1105021006 班级 11级通信(1)班 指导老师汪济洲 2014 年 6 月 2 日

目录 1.实验目的与要求 (1) 1.1实验目的 (1) 1.2实验要求 (1) 2.实验原理 (1) 2.1电路原理图 (1) 2.2 Proteus7.4 软件简介 (2) 3、实验步骤 (6) 4、源程序代码 (6) 5. 实验结果分析 (10) 6.总结 (10)

1.实验目的与要求 1.1实验目的 1.掌握A/D转换与单片机的接口方法 2.了解A/D芯片ADC0809转换性能及编程方法 3.通过实验了解单片机如何进行数据采集 1.2实验要求 1.采用查询法或中断法编程进行A/D采集; 2.采集0~5V范围的电压信号(以电位器模拟被测信号),使用4位串行数码管显示0~5V数值,小数点保留三位,实现简易电压表功能。 2.实验原理 2.1电路原理图 熟悉8051的输入输出端口的使用方法, 本实验的电路连接如图1所示。 图1 连接电路

2.2 Proteus7.4 软件简介 Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: ①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ②支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。 ③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。 ④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。 其操作界面如下图所示: 图2 Proteus操作页面

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 :学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为5V;显示精度0.001伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计 #include #include"intrins.h" #define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4;

sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) { uchar j; while(ms --) { for(j=0;j<120;j++); } } void ADC_read() { START=0; START=1; START=0; while(EOC==0); OE=1;

相关文档
最新文档