最新单片机课程设计

上传人:壹****1 文档编号:562383543 上传时间:2023-06-22 格式:DOCX 页数:19 大小:30.83KB
返回 下载 相关 举报
最新单片机课程设计_第1页
第1页 / 共19页
最新单片机课程设计_第2页
第2页 / 共19页
最新单片机课程设计_第3页
第3页 / 共19页
最新单片机课程设计_第4页
第4页 / 共19页
最新单片机课程设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《最新单片机课程设计》由会员分享,可在线阅读,更多相关《最新单片机课程设计(19页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计-键控彩灯 成员:45,31,10,03,43 类别:09 机电(4)类别描述(1)设计目的 1.熟悉51 系列单片机。2.熟悉汇编语言编程。3.掌握单片机应用系统的设计方法、过程和实现。 (2)设计任务描述、要求键控灯笼系统:1.键盘控制其操作和停止。2.键盘控制其流程和流向。3.键盘控制其照明模式。A. 全开全关B. 交叉照明成员之间的分工:袁德:04 组长。在总体设计中,任务描述、框图、功能模块图和 相关描述被分发给成员,以协助程序编辑和错误处理,并找到数据和 经验。唐越:担任软件设计师,根据功能模块图细分流程图,编辑相应 的程序和功能相关指令,搜索数据。曾于震:作为一名硬

2、件设计师,他根据总框图在DXP软件中画出 原理图、印刷电路板,寻找数据。邱根:排版WORD,协助唐越进行软件设计和数据搜索。 曹琪:在仿真软件上对编辑好的程序进行仿真培训和错误处理。目录第1章硬件设计1 1.1总体框图 11.2原理图和印刷电路板图 21.380C51 描述:4第2章软件设计6 2.1功能框图 62.2 主控制流程图 72.3 键盘检测流程图 92.4 功能键处理流程图 132 .5 显示灯流程图 152 .6 代码实现 19第三章模拟和调试28 3.1 调试步骤283.2错误处理 303.3模拟结果 31第四章设计经验32 参考34 第1 章硬件设计1.1 总体框图键盘控制8

3、0C51 芯片发光二极管彩色灯显示振荡器电路复位电路电源电 路功能描述:电源:80C51单片机采用5V电源,正极接40引脚,负极 接 20 引脚。振荡电路:在 80C51 单片机中集成一个高增益定向放大器,用于 构成放大器。只有晶体振荡器和电容器被连接起来形成一个完整的振 荡电器。晶体振荡器跨接在引脚18 (XTAL2输出)和19( XTAL1输入) 之间,引脚 18 和 19 通过两个小电容并联接地。晶体振荡器可以使用 一个 12 兆赫兹的小型水平晶体振荡器,电容值可以在 18 到 47 pF 之 间。通常,可以使用 27pF 的小磁片电容器。复位电路:微控制器上的9引脚(RST)为复位引脚

4、,采用手动复位, 电容为10uF,连接在RST和地之间的电阻为10ke/Vpp引脚:31引脚 为/Vpp,此引脚接地。键盘电路:单片机 P3.2P3.5 引脚作为输入,在软件中设置381. 当按键未按下时,单片机引脚处于高电平;按键时,引脚接地, 单片机引脚处于低电平。通过编程软件(使用连续查询的方法),你可 以知道一个键是否被按下以及哪个键被按下。灯笼展示:发光二极管的阴极连接到单片机的引脚P1.0P1.7,阳极连接到 +5V 电源。当 P1 端口引脚连接到高电平时,发光二极管灯不点亮;当 P1 端口引脚连接到低电平时,发光二极管灯点亮。1.2原理图和印刷电路板图功能描述:8个发光二极管连接

5、到8*470电阻,连接到P0端口, 复位电路连接到 RST 端子。复位电路使用手动复位。电路的电阻值 为1K,电容为C=10uF.P3.2P3.5连接到四个弹性键,四个上拉电阻(4*1K)连接到键的 前面。单片机采用的晶振频率为 6HZ本电路中使用的两个电容C=(530pF)EA在片外只读存储器模式 下接地。PCB板图功能描述:用DXP软件绘制图2和图3。通过这些,可 以在电路板上实现硬件电路的安装和制造。待调试部件清单:序列号、 名称、型号/规格、附件数量、图纸编号 1 单片机芯片 AT89C51 1 2 碳膜电阻4708 R1R83碳膜电阻10K 1 R94碳膜电阻1K 4 R10R13

6、5触摸开关LSH 4S 1 S4 6无极性电容27pF 2 C1C2 7无极性电容 10uF 1 C3 8 水平晶振 12HZ 1 CY 1 .380C51 的相关说明:80C51引脚描述:、主电源引脚Vcc和GNDVcc(40引脚):主电源连接到+5VVSS (20引脚):接地2、时钟电路 引脚 XTAL1xtal 2 XL 2(引脚 18):连接到外部晶体振荡器的一端。片内是振荡电路反相放大器的输出。XTAL1(19(引脚19):连接到外部晶体振荡器的另一端。片内是振 荡电路的反相放大器的输入。3、控制信号 RST/Vpd、ALE/(/PROG)、/PSEN和(/ea)/vppst/vpd

7、(引脚9):复位端子。高电平有效,宽度大 于 24个时钟周期,从而复位单片机。该引脚具有复用功能。 Vpd 是 备用电源的输入,用于防止主电源断电。ALE/(/PROG)(30 英尺):数据锁存信号端子。当访问片外存储器 时, ALE 充当低 8 位地址的锁存控制信号。当平时不访问片外存储 器时,输出脉冲固定在时钟振荡频率的六分之一。 ALE 侧负载驱动 能力为 8 个 LSTTL 门。该引脚具有多路复用功能,用作编程脉冲输 入,用于对片内程序存储器进行编程(固化)。/PSEN(引脚29):读取片外程序存储器的选通信号端子。承载能力 为8LSTTL门。当读取外部只读存储器以实现外部只读存储器单

8、元的 读取操作时,PSEN为低电平有效。1、读取内部只读存储器时,PSEN不工作;2、当外部只读存储器读取时,它将在每个机器周期运行两次; 从外部随机存取存储器读取时,3、两个PSEN脉冲 将不会输出跳过的; 4、当连接外部只读存储器时,它连接到只读存储器的运行经验引脚。(/EA)/VPP(引脚31):/ea终止于高电平,中央处理器指令自动从片内程序存储器扩展到片外程序存储器。当/EA端子为低电平时,中央处理器仅从片外程序存储器中获取 指令。该引脚具有多路复用功能,Vpp是对片内程序存储器编程时的 编程电压。4、输入/输出引脚P1、和P3端口P1 .0 P1 .7(英尺1 8):8位双向输入/

9、输出端口。负载容量为3个LSTTL门。P1端口仅 用作输入/输出端口:内部有上拉电阻。P3 .0 P3 .7(英尺10 17): 8 级双向输入/输出端口。负载容量为 3个LSTTL门。还有一个特殊的第二功能。端口 2 的第二个功能、 P3:P3.0(10 英尺):RXD(串行端口输入)P3.1(11 英尺):TXD(串行端口输出)P3.2(12 英尺):/INT0(外部中断0输入)P3.3(13 英尺):/INT1(外部中断1输入)P3.4(14 英尺):T0(定时器/计数器0外部输入)P3.5(15 英尺):T1(定时器/计数器1外部输入)P3.6(16 英尺):/WR(片外数据存储器的写

10、选通信号输出)P3.7(17 英尺):/RD(片外数据存储器的读选通信号输出第 2 章软件设计 2.1功能框图主程序键盘检测模块功能键处理模块彩色光流显示模块去抖延 迟模块延迟模块功能描述:键盘扫描模块:检测一个键是否被按下,扫 描两次以确保一个键被按下,然后检查一个键是否由于抖动而被释 放。延时去抖模块:由于存在按键抖动,键盘抖动时间一般为 510ms, 抖动现象会导致中央处理器多次处理一个键盘操作,可能导致错误。 因此,通过软件来消除抖动的影响。主程序模块图:连接和初始化模块。灯笼显示模块;自来水灯模块采用8 个发光二极管,通过编写代 码实现四中自来水彩灯。本设计采用普通的阳极连接方式,通

11、过给单 片机不同的初始值,可以看到彩灯的变化。延时模块:延时是为了让我们看到彩灯变化的效果,这样我们就 可以看到彩灯的流动。2.2 主控制流程图开始堆栈初始化初始化 P1 初始化复位程序中的所有标志位 UPDOWN 、STARTED 、YUAN 、QUAN 、左毅、调用键盘检测程序 F0 到流光复初始值是 1?调用键盘处理程序 调用显示程序Y N图1主程序流程图功能描述:图1主程序流程图, 编写汇编主程序,开始初始化堆栈,复位 P1 会使色灯一开始处于关 闭状态,复位所有标志位,否则很容易在下一个操作中出错。给流代 码一个复杂的初始值,然后调用键盘程序查看是否有一个键被按下, 并跳回显示程序,

12、如果F0是,调用功能键处理程序,然后在调用显 示程序时返回循环。2.3 键盘检测流程图有按键吗?扫描键盘键盘扫描有按键吗?是否有按键来获得键值 n 并延迟 去抖?你的钥匙释放了吗?设置键按下标记 Y N 清除键按下标记退 出图 2 键盘检测流程图功能描述:根据图 2,写键盘扫描程序,首先清 除F0键,因为下面要读取P3端口,首先ORL写1到P3,然后给 P3 一个到其他四个位置1,如果反向一个,那么没有键按跳回来。如 果是 1,则按键。因为按下的键有抖动,去抖动延迟程序被调用来扫 描在稳定期间是否有键被按下。如果有一个键被按下,去抖键的值被 设置为Bo F0键标志被设置为1。在K_RET中,P

13、3端口设置为读 P3端口,ORL为Ao如果为0,则释放的密钥返回主程序。如果是1, 则没有释放的键跳回到K_RET周期,以检测是否有键被按下。延迟去抖流程图从R7复合D1: R6复合R6J减1至0开始? R7 减1至0?回到图5延迟去抖流程图延迟:;去抖延迟程序MOV R7,# 100; R7的初始值是D1:MOVR6, # 100;将R6返回到其初始值 DJZ R6,美元;当R6循环100次跳到自己的线路DJNZ R7时,D1; R7 循环跳转到 D1 10 次,以重新循环 RET 功能描述:根据图 5 编辑 20 毫秒去抖延迟程序,首先给出 R7 和 R6 复数值,然后首先从内部 循环R6

14、中减去1,直到它减少到0,例如R6,即从外部循环R7中 减去1,如果它没有达到0,则跳转回D1,并且当R7=0时返回。公式=lus*2*100*100=20ms 2.4功能键处理流程图获取键值是 00100000 吗?是 00010000 吗?是 00001000 吗?是 00000100 吗? N N N N n返回起始端为1? y重置开始结束n设置开始结束为1 左毅为1?将左毅设置为复位Y,将左毅设置为1 N,将YUN设置为 1,将 QUAN 设置为 1,将 UpDown 设置为复位 YUN 设置为复位 YUN 设置为复位 YUN 图 3 功能键处理流程图功能描述:根据图 3 编写功能 键

15、流程图,当 ACC.2 为 1 时,跳过第一个键处理:查看开始标志是否 为 1?如果不是 1,将其设置为 1 开始。如果是 1,跳转 D40 重置开 始标志。其他标志被重置然后返回,ACC.2 按 0 的顺序执行。当 ACC.3 为 1 时,跳过第二个按键处 理:查看左移标志是否为 1,如果为 1,跳到 D30 将左循环流量标志复 位,将上升下降设置为 1,将其他标志复位返回。如果它是 0,它向 左移动 1,这意味着它向左移动。 YUAN reset 将右循环标志设置为 1 以返回。 ACC.3 = 0 按顺序执行。 ACC.4 是 1,跳到第三个按键处理: 将全亮全关标志和十字灯设置为 1,并将向上向下复位返回。如果 ACC.4为0,则按顺序执行ACC.5,并跳到第四个按键处理:重置上升 下降,将YAUN设置为1,并重置全部打开和全部关闭以返回o ACC.5 = 0返回主程序。2 .5 显示灯流程图开始端= 1?上升速度是1?元是1 ?给Pl左毅0FEH作为1 ?把LAMPCODE给阿尔卡,把 A 给 LAMPCODE, 把 A 给 P1 延迟程序,把 LAMPCODE 给 RR A, 把A给LAMPCODE, 把 A给P1延迟程序QUAN是1 ?返回D20 到A, A到D20,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号