单片机大作业
- 格式:docx
- 大小:1.54 MB
- 文档页数:16
须知:1. 大作业的所有题目都应在PROTEUS 7.5(注意:只能使用7.5版本)仿真环境下运行通过。
2. 要求:(1)在keil IDE(μvision3)中完成应用程序设计、并编译;(2)在PROTEUS 7.5下的ISIS Professional中完成电路设计、调试与仿真通过。
题目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。
执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
单片机试题带答案版1、填空(每空2 分,共40 分)1、MCS-8051系列单片机字长是8 位,有40 根引脚,96系列字长是16 位。
单片机的特2、单片机的存储器的最大特点是指令存储器与数据存储器分开编址,Px并行口的地址是与数据存储器统一编址的,或者说属于该存储器。
3、8051最多可以有4 个并行输入输出口,最少也可以有1个并行口,即P1 。
P3常需复用作串行通信、外部中断、外部计数脉冲和读写控制信号。
4、ALE信号的作用是低8位地址锁存。
5、8051复位后,PC= 0 H。
若希望从片内存储器开始执行,EA脚应接高电平,PC值超过0FFF H时,8051会自动转向片外存储器继续取指令执行。
6、8051的C/T是加(加或减)计数的。
7、8051的中断向量表在3 H、0B H和13H、1BH、23H。
8、MOV A,40H 指令对于源超作数的寻址方式是直接寻址。
9、指令JB 0A7H,ABC的作用是若P2口的第7位为1则跳转到ABC 。
(0A7H是P2.7的地址)2、已知A = 0F8H,当执行ADD A,#0A9H指令后,PSW中的OV、CY、AC、P各为多少?若是有符号数,A中的结果用十进制表示是多少?(共5 分)[解答] OV:0、CY:1、AC:1、P:1 A:-953、在两个8051间用模式2进行串行通信,A机并行采集外部开关的输入,然后串行传输给B机;B机接收后并行输出控制LED发光。
画出连接示意图,写出完整的程序。
(共15 分)4、将8051外部扩展2K EPROM,同时扩展16K RAM作数据存储器,采用的2716是2K 的EPROM芯片,6264是8K的RAM芯片,74LS373是8位锁存器。
请画出连接示意图。
要求画出8051的数据、地址、ALE、PSEN、RD、WR信号;锁存器的数据入D、数据出Q、锁存控制G、OE;2716的A、数据O、片选CE、输出使能OE;6264的A、D、CE、OE、WE。
1 设计一个交叉路口指挥信号灯控制电路(要求红、绿、黄三灯依次点亮循环进行,时间分配为2:2:1,加一倒计时计数器)。
2 设计一个七输入表诀器(少数服从多数原则),能显示相应的表决结果。
3 设计一个水塔供水系统水泵电机控制电路。
4 设计一个八输入抢答器(显示抢答位)。
5 心率数字计(用脉冲或开关模拟心跳)
6 灯光自动管理器(定时开关灯)
7电梯楼层显示电路
8汽车尾灯控制电路设计(模拟转弯、刹车、警示)
9篮球竞赛30s计数器设计
10具有校时功能的电子表设计
11具有声、光、电显示的四输入抢答器
12设计一个振荡计数器(0,1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1,0,1………)
13节日彩灯控制器设计(设计几种闪烁方式)
14 led 流水灯控制(要求可以改变方向和速度);
15 设计一个五十进制计数器
16 设计一直流电机控制器,可使电机完成正、反、停、加速、减速运动控制。
江苏开放大学形成性考核作业学号姓名课程代码110049课程名称单片机应用技术评阅教师第 4 次任务共 4 次任务江苏开放大学单片机应用技术课程第4次形考作业—单片机大作业作业说明:第4次形考作业是单片机大作业报告,对应第11单元的学习内容。
是对整个单片机课程学习的检验。
完成日期评语得分评阅时间评阅教师【单片机大作业要求】学习第11单元,阅读单片机大作业内容与指导,根据给出的5个课题,任意选择1个课题,学习对应的课题课件,根据指导完成实践环节:使用Proteus软件和Keil软件完成上机仿真调试运行。
参考大作业报告案例,完成单片机大作业报告。
直接截图PPT或讲义上的图和程序不算完成,抄袭截图或PS姓名不得分。
(纸上完成内容要求手写签名,软件完成内容要求电子签名)单片机大作业报告1.写出所选课题名称和设计内容(只能在5个课题中选择1个)。
(20分)【作答结果】所选课题名称:工作指示灯设计内容:设计一个亮1s,灭1s的工作指示灯。
用定时/计数器构成LED灯控制器,在P1.0脚输出周期为2s的方波,即实现LED灯循环亮1s,灭1s。
2.在纸上画出所选课题的原理图并手写签名,拍照上传。
(30分)【作答结果】3.写出源程序。
可截图Keil中源程序(有电子签名)。
也可以将源程序写在纸上并手写签名,拍照上传。
(20分)【作答结果】4.根据原理图,用Proteus制作电路图,图上又有电子签名,全屏截图上传。
(15分)【作答结果】5.Proteus仿真调试结果截图,电子签名与4相同。
(15分)。
【作答结果】。
须知:1. 大作业的所有题目都应在PROTEUS 7.5(注意:只能使用7.5版本)仿真环境下运行通过。
2. 要求:(1)在keil IDE(μvision3)中完成应用程序设计、并编译;(2)在PROTEUS 7.5下的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—设置现在的时间。
单片机大作业物流卓1.LED闪烁实例LED闪烁实例中使用51单片机控制8个LED间隔亮灭,形成闪烁效果,在实例中51单片机通过一个延时程序控制P1端口轮流输出高电平和低电平,驱动发光二极管的发光和熄灭。
程序代码使用两个嵌套的for循环语句来控制延时,当到达延时之后使P1输出电平翻转。
下图为电路设计图以下为控制代码2.流水数字流水数字是一个51单片机使用I/O引脚驱动8段数码管,数码管轮流显示“0”~”F”数字或者字符。
单位8段共阳数码管的公共端连接到VCC上,数码管的8位数据引脚则连接到P1的八个引脚上,使用1K欧姆的电阻限流,51单片机通过P1引脚将对应字符的字形编码送出供数码管显示。
下图为电路设计图以下为程序代码3.多位数字显示本实例使用51单片机驱动6位数码管显示”123456”6位数字,51单片机用P1给6个8段数码管提供字形编码,而用P2.0~P2.5共6个引脚通过PNP三极管来选通对应的数码管显示。
在控制程序中,为了精确的控制延时时间的时间以便造成“扫描”效果,使用Delayms 和Delayus两个函数来控制精确延时。
下图为电路设计图以下为程序代码4.轮流加热显示系统轮流加热显示系统是一个用51单片机控制3个继电器轮流接通,给3个设备加热5s并且使用一位数码管来显示当前加热设备的编号。
51单片机用P2端口通过ULU2803驱动3个工作电压为5V的继电器,用P1口驱动一个数码管用于显示当前接通的继电器的编号。
下图为电路设计图以下为程序代码5.定时报警实例本实例是让51单片机没隔10min控制蜂鸣器报警,51单片机使用P2.7引脚通过一个NPN三极管驱动蜂鸣器,当P2. 7输出高电平时三极管导通,蜂鸣器发声。
51单片机使用P2. 7通过三极管控制蜂鸣器,当输出高电平时三极管导通蜂鸣器发声,使用Delayms函数来进行毫秒级延时,使用Delayus函数来进行微秒级延时,当10min延时到达,蜂鸣器打开100ms下图为电路设计图以下为程序代码6.计算机键盘实例本实例用51单片机的I/O引脚扩展一个4 x4的行列扫描键盘,16个键使用0~F编码用一个数码管将按下键的对应编码显示出来,并且有声音提示。
大工15春《单片机原理及应用》大作业题目及要求5篇第一篇:大工15春《单片机原理及应用》大作业题目及要求2015年9月份《单片机原理及应用》大作业具体要求:题目一:单片机电子时钟设计准则:设计一个基于51单片机或STM单片机的电子时钟,并且能够实现时分秒的显示和调节撰写要求:(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等;(3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;(4)总结:需要说明的问题以及设计的心得体会。
题目二:基于单片机的音频播放器设计准则:设计一个基于51单片机或STM单片机的音频播放器。
撰写要求:(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等;(3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;(4)总结:需要说明的问题以及设计的心得体会。
题目三:基于单片机的温度采集系统设计准则:设计一个基于51单片机或STM单片机的温度采集系统,测量的温度分辨率为0.5℃。
撰写要求:(1)首先介绍课题背景,包括温度采集系统的发展、应用情况等,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等;(3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;(4)总结:需要说明的问题以及设计的心得体会。
题目四:交通灯控制系统设计准则:设计一个基于51单片机或STM单片机的交通灯控制系统,实现十字路口交通信号灯的基本控制、显示功能。
撰写要求:(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等;(3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;(4)总结:需要说明的问题以及设计的心得体会。
单片机应用(案例教学)大作业提交材料:源程序、原理图、报告、实物。
报告格式见附件1.计算器设计实现的功能:整数和小数的加减乘除基本运算具体要求:1.1+2*3=7有乘除优先于加减的功能;2.除法后能显示小数位,若是10/5结果为整数,则不显示小数,显示2,若是10/3时结果显示,尽量精确,显示最多不超出8位;3.结果若为负数应显示负号。
123456789RP1RP8VC CCD0D1D2D3D4D5D6D7电子密码锁的设计1.系统通过4×4的矩阵键盘输入或设定开锁密码。
2.可以通过LCD查看已输入的字符个数[显示为*****]3.密码可存储,掉电不丢失。
简易电子琴设计一个电子琴,可演奏3和弦的、音程为三组(Ģ—Ề)的电子琴。
点阵显示器设计一个16×16的LED点阵图文显示屏,可显示图形和文字,显示图形和文字应稳定、清晰,各点亮度均匀。
图形和文字显示有静态、移入和移出等显示方式。
.电子万年历设计一个万年历,要求功能(1)能够在液晶显示屏上显示月、日、星期、时、分、秒、当前温度值。
(2)能够通过按键设置时间。
(3)能够通过按键设置温度报警范围,以及报警范围的上下限是否开启。
(4)当当前温度值超出报警范围时,通过蜂鸣器和红绿两个LED灯报警。
出租车计价1. 基本要求(1)能手动进行修改单价,对白天和晚上可以设置不同的单价标准;(2)单价标准的设计要求掉电保护;(3)要求设计等待计时计费功能;(4)数据输出:单价输出、路程输出、总金额输出;(5)按键:启动计时开关、数据显示切换、白天/晚上切换、等待计时、复位等。
(6)传感器采用霍尔传感器A44E。
7自行车速度里程计的设计用1602液晶进行显示自行车运行的里程、速度、当前时间,输入信号通过霍尔元件得到。
超声波测距能实现距离为10-500cm的测量,误差为2-4cm,小于30cm报警。
温度系统设计设计一个温度系统下位机利用单片机实现温度的显示,温度传感器采用DS18B20,并对温度值超出设定范围进行声光报警;上位机采用VB设计实现温度的收集和显示,并能控制下位机的报警温度范围。
单片机大作业
课题名称简易楼道灯电费计价系统
院、系、
自动化与电气工程学院部
专业电气工程及其自动化
班级
姓名
学号
指导教师
1.作业背景
城市居民楼内一般安装有楼道灯,方便夜间居民上下楼,其工作特点是人来灯亮,人走灯灭。
以热释电型楼道灯为例,其基本工作原理是:热释电传感器能检测人体是否进入感应范围,当人体未进入感应范围,即离楼道灯还有一定距离时,传感器输出低电平;当人体进入感应范围,即靠近楼道灯时,传感器输出高电平。
根据传感器的输出,单片机可决定是否点亮楼道灯。
由于楼道灯属本单元全体居民共用,为便于电费结算,现要求设计一套简易楼道灯电费计价系统,系统能自动计算楼道灯在一个月内的总点亮时间,并据此计算出应缴电费额度。
2.作业要求
系统由电源电路、热释电传感器、单片机、按键以及显示器组成,楼道灯供电为220市电,功率2kW(实际灯泡功率一般不会这么大。
考虑到实验演示时间有限,故假设此灯泡功率为该值)。
其中电源采用5V,热释电传感器的输出采用按键按下与否进行模拟,单片机采用51,显示器采用4位数码管,电价按5.86元/千瓦时(实际电价一般为0.58。
考虑到实验演示时间有限,故假设电价为该值),要求电费计算精度精确到0.01元。
用户可用按键查询本月楼道灯总点亮时间(精度0.01小时),以及本月总电费。
3.硬件部分
(1)仿真电路图
(2)实物电路图:
(3)
元器件列表
STC89C52RC 一个
按钮开关3个四位共阳数码管1个12M晶振1个CS9012三极管1个
二极管1个ZS230-25G灯泡1个HK4 100F-DC5V-SHG继电器1个接线端子1个3906PNP三极管4个
电容、电阻若干
(4)电路介绍:
1>起振电路:由一个12M晶振和两个20pF的电容组成,接在单片机STC89C52的18、19脚间,为整个电路提供时钟脉冲,一个机器周期为1us。
2>复位电路:由一个0.1nF的电容和一个100Ω的电阻,电容两端并联一个按钮开关S6组成复位电路,接在单片机第9脚上,按下开关S6,电路复位。
同时,将31脚接至VCC,采用内部存储器。
3>数码管显示电路:采用四位7段共阳数码管
位选线接至P2.0-P2.3,段选线接至P0口。
4>外部中断连线:按钮开关S1控制定时器T0开关状态,按下S1,模拟人来,则控制灯亮;按钮开关S2接至P3.3,控制外部中断INT1,按下S2,数码管显示当月灯亮总时间。
4.软件部分
(1)程序流程图
(2)程序代码: #include <reg52.h> #define SEG P0
//段选线接至P0
#define SCANP P2 //位选线接至P2 sbit LAMP=P1^2; //灯接至P1.2 sbit S1=P3^4; //
开关S1接至P3.4
sbit S2=P3^3;
//开关S2接至P3.3,外部中断INT1,显示时间(h ) #define count 50000
//声明计数值,0.05s
#define TH (65536-count)/256 //声明计数高8位 #define TL (65536-count)%256 //声明计数低8位 char count_T0=0; //计数T0中断次数 char count_T1=0; //计数T1中断次数
void debouncer(void);
void delay1ms(int); //声明动态显示延时x(ms)函数void dispmoney(void); //声明计费显示函数
char code TAB[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90}; char dispm[4]={0,0,0,0};//设置计费显示初值
char dispt[4]={0,0,0,0};//设置计时显示初值
char seconds=0;
char scan=1;
int t=0; // 声明灯在一个月内的总点亮时间t变量
int l=0;
char p=0;
char q=0;
main()
{
IE=0x8e; //允许T0、INT1、T1中断
TMOD=0x11; //T0采用Mode1、T1采用Mode1
TH1=TH;
TL1=TL;
TR1=1; //定时器T1启动
LAMP=1; //设置灯初始为熄灭状态
while(1)
{
if(S1==0) //开关S1若按下,模拟传感器检测到人来
{
debouncer();
if(S1==0)
{
TH0=TH;
TL0=TL;
TR0=1; //定时器T0启动
LAMP=0; //灯点亮
}
}
dispmoney(); //显示电费值
}
}
void T0_30s(void)interrupt 1 //T0定时器中断,计时30s
{
TH0=TH;
TL0=TL;
if(++count_T0==20) //计数溢出次数,20*0.05=1s {
count_T0=0; //重新计数
seconds++;
if(seconds==30) //计数30次,30*1=30s
{
seconds=0; //重新计数
LAMP=1; //设置灯灭
t++; //灯点亮时间加1
TR0=0; //停止T0定时器
}
}
}
void T1_1month(void) interrupt 3 //T1中断,定时1 month {
TH1=TH;
TL1=TL;
if(++count_T1==20) //1s
{
count_T1=0;
l++;
if(l==3600) //1h
{
l=0;
p++;
if(p==24) //1 day
{
p=0;
q++;
if(q==30)//1 month
q=0;
t=0; //灯点亮总时间t清零
}
}
}
}
void disptime(void) interrupt 2 //INT1中断,显示灯当月的总点亮时间{
char j;
int time;
scan=0x01;
for(j=0;j<4;j++)
{
time=t*30/36;
dispt[3]=TAB[time/1000];
dispt[2]=0x7f&TAB[time%1000/100];
dispt[1]=TAB[time%100/10];
dispt[0]=TAB[time%10];
SEG=0xff;
SCANP=~scan;
SEG=dispt[3-j];
delay1ms(2); //延时约2ms,4*2=8ms<16ms,可实现动态显示
scan<<=1;
}
}
void dispmoney(void) //计费显示函数
{
char i;
int money;
scan=0x01;
for(i=0;i<4;i++)
{
money=t*293/30;
dispm[3]=TAB[money/1000];
dispm[2]=0x7f&TAB[money%1000/100];
dispm[1]=TAB[money%100/10];
dispm[0]=TAB[money%10];
SEG=0xff;
SCANP=~scan;
SEG=dispm[3-i];
delay1ms(2);
scan<<=1;
}
}
void debouncer(void) //去抖动函数
{
int k;
for(k=0;k<2400;k++);
}
void delay1ms(int x) //延时x(ms)函数
{
int m,n;
for(m=0;m<x;m++)
for(n=0;n<120;n++);
}
5.仿真调试:
按钮开关S1模拟人来,灯亮后定时30s,灯灭,数码管刷新电费值一次,单位(元),精确到0.01元;按钮开关S2被按下时,数码管显示当月灯亮总时间,单位(小时),精确到0.01小时。
未按下开关
按下开关S1,定时30s开始
30s定时结束,数码管显示当月电费
按下S2,显示当月灯点亮总时间
6.实验总结
通过本次单片机大作业的完成,从刚开始的硬件电路设计,到软件程序的编写,然后经过软件Proteus的仿真调试,接着进行电路板焊接,到最后调试成功,
历时三周左右,让我受益颇多。
其中,也遇到很多的困难,比如元器件型号的
选择、购买,程序各部分单元的组合结构一改再改,还有软件应用的困难等,
但都通过与同学们的讨论、交流最终得以克服。
本人热爱动手实践,喜欢通过
理论的学习后可以将其与实践相结合,通过实践的过程,可以收获的不仅仅的
是短暂的成就感,更多的是对理论知识的深刻理解和对实践应用的不断熟练,
通过这个过程,使自己的专业素养进一步得到培养和锻炼。
总之,凡事预则立,不预则废。
我相信,向着自己追求的方向不断努力的过程是永远的快乐。