计算机控制课设报告_第1页
计算机控制课设报告_第2页
计算机控制课设报告_第3页
计算机控制课设报告_第4页
计算机控制课设报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 微型计算机控制技术微型计算机控制技术 课程设计报告课程设计报告 学学 号号 姓姓 名名 指指 导导 老老 师师 所所 在在 学学 院院 物联网工程学院物联网工程学院 完完 成成 日日 期期 2016 年年 6 月月 22 日日 2 目目 录录 1 1 课程设计目的课程设计目的 3 3 2 2 主要设计任务和内容主要设计任务和内容 3 3 2 1 液晶时钟显示 3 2 1 1基本设计要求 3 2 1 2方案介绍 3 2 2 密码锁 7 2 2 1 基本设计方案 7 2 2 2 方案介绍 7 3 3 现场调试和修改现场调试和修改 8 8 3 1 液晶时钟显示 8 3 2 密码锁 8 4 4 课程设计小结课程设计小结 9 9 附录附录 10 10 液晶时钟显示程序源代码 10 密码锁程序源代码 16 3 一 一 课程设计的目的课程设计的目的 计算机控制技术课程是集微机原理 计算机技术 控制理论 电子 电路 自动控制系统 工业控制过程等课程基础知识一体的应用性课程 具有很强的实践性 通过这次课程设计进一步加深对计算机控制技术课 程的理解 掌握计算机控制系统硬件和软件的设计思路 以及对相关课 程理论知识的理解和融会贯通 提高运用已有的专业理论知识分析实际 应用问题的能力和解决实际问题的技能 培养独立自主 综合分析与创 新性应用的能力 二 二 主要设计任务和内容主要设计任务和内容 2 12 1液晶时钟显示液晶时钟显示 利用 STC89C51 单片机 LCD1602 电子显示屏和 DS1302 时钟芯片实现电 子时钟 2 1 12 1 1 基本设计要求基本设计要求 1 实现液晶显示时钟 2 实现按键调节和校准时间 2 1 22 1 2 方案介绍方案介绍 1 1 设计思路 设计思路 电路整体上由 AT89C51CPU 控制模块 LCD 显示模块 DS1302 时钟采集模块 按键处理模块四大模块组成 以 AT89C51 为核 心电路 控制 LCD 显示 具体的显示内容和方式由软件来完成 由于有时钟和日期的调节功能需要校准电路 按键有移位键 加 1 键 减 1 键三个按键组成 计时功能由 DS1302 完成 显 示功能则由 LCD1602 液晶完成 A A 电子时钟的设计框图电子时钟的设计框图 B B DS1302DS1302 时钟模块时钟模块 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片 内含 6 有一个实 时时钟 日历和 31 字节静态 RAM 通过简单的串行接口与单片机进行通信 实时时钟 日历电路提供秒分时日星期月年的信息每月的天数和闰年的天 数可自动调整时钟操作 a a 管脚描述 管脚描述 X1 X2 32 768KHz 晶振管脚 GND 地 RST 复位脚 DS1302时钟 采集模块 按键处理模 块 AT89C51CP U控制 LCD1602显示模 块 4 I O 数据输入 输出引脚 SCLK 串行时钟 Vcc1 Vcc2 电源供电管脚 b b DS1302DS1302 内部寄存器内部寄存器 CH 时钟停止位 寄存器 2 的第 7 位 12 24 小时标 志 CH 0 振荡器工作允许 bit7 1 12 小时模式 CH 1 振荡器停止 bit7 0 24 小时模式 WP 写保护位 寄存器 2 的第 5 位 AM PM 定义 WP 0 寄存器数据能够写入 AP 1 下午模式 WP 1 寄存器数据不能写入 AP 0 上午模式 TCS 涓流充电选择 DS 二极管选择位 TCS 1010 使能涓流充电 DS 01 选择一个二极管 TCS 其它 禁止涓流充电 DS 10 选择两个二极管 DS 00 或 11 即使 TCS 1010 充电功能也被禁止 RS 位电阻典型位 00没有没有 01R12K 10R24K 11R38K c c 时钟时钟 小时寄存器 85h 84h 的位 7 用于定义 DS1302 是运行于 12 小时模式 还是 24 小时模式 当为高时 选择 12 小时模式 在 12 小时模式时 位 5 是 10 小时位 当为 1 时 表示 PM 在 24 小时模式时 位 5 是第 二个 10 小时位 秒寄存器 81h 80h 的位 7 定义为时钟暂停标志 CH 当该位置为 1 时 时钟振荡器停止 DS1302 处于低功耗状态 当该位置为 0 时 时 钟开始运行 控制寄存器 8Fh 8Eh 的位 7 是写保护位 WP 其它 7 位均置为 0 在任何的对时钟和 RAM 的写操作之前 WP 位必须为 0 当 WP 位为 1 时 写保护位防止对任一寄存器的写操作 d d 控制字 即地址及命令字节 控制字 即地址及命令字节 7 6 5 4 3 2 1 0 RAMRD1 CK A4A3A2A1A0 WR 控制字的最高有效位 位 7 必须是逻辑 1 如果它为 0 则不能把数 据写入到 DS1302 中 位 6 如果为 0 则表示存取日历时钟数据 为 1 表示存取 RAM 数据 位 5 至位 1 A4 A0 指示操作单元的地址 位 0 最低有效位 如为 0 表示要进行写操作 为 1 表示进行读操作 5 控制字总是从最低位开始输出 在控制字指令输入后的下一个 SCLK 时 钟的上升沿时 数据被写入 DS1302 数据输入从最低位 0 位 开始 同样 在紧跟 8 位的控制字指令后的下一个 SCLK 脉冲的下降沿 读出 DS1302 的数据 读出的数据也是从最低位到最高位 C C 按键处理模块按键处理模块 首先 给 P1 赋值 0 xf0 这时 P1 4 P1 5 P1 6 P1 7 为高电平 P1 0 P1 1 P1 2 P1 3 为低电平 如果这时候有按键按下那么 P1 4 P1 5 P1 6 P1 7 就有一个会变成低电平 因此 P1 的值就不 等于 0 xf0 这是就可以判断有按键按下 然后延时一段时间去抖动 然后给 P1 赋值 0 xfe 也就是 P1 0 为低电平 其他为高电平 这时 如果有在 P1 0 线上的 P1 4 P1 5 P1 6 P1 7 有按键按下 那么 就会出现低电平 从而判断哪个按键按下 如果没有那么就给 P1 赋 值 0 xfd 也就是 P1 1 为低电平 其他为高电平 相同方法判断是 否有按键按下 如果没有那么就给 P1 赋值 0 xfb 如此类推 一共四次检测 D D LCDLCD 显示模块显示模块 1602 液晶也叫 1602 字符型液晶 它是一种专门用来显示字母 数 字 符号等的点阵型液晶模块 它由若干个 5X7 或者 5X11 等点阵 字符位组成 每个点阵字符位都可以显示一个字符 每位之间有一 个点距的间隔 每行之间也有间隔 起到了字符间距和行间距的作 用 正因为如此所以它不能很好地显示图形 用自定义 CGRAM 显 示效果也不好 a 管脚描述管脚描述 第 1 脚 VSS 为电源地 第 2 脚 VCC 接 5V 电源正极 6 第 3 脚 V0 为液晶显示器对比度调整端 接正电源时对比度最弱 接地电源时对比度最高 对比度过高时会 产生 鬼影 使用时可 以通过一个 10K 的电位器调整对比度 第 4 脚 RS 为寄存器选择 高电平 1 时选择数据寄存器 低电平 0 时选择指令寄存器 第 5 脚 RW 为读写信号线 高电平 1 时进行读操作 低电平 0 时 进行写操作 第 6 脚 E 或 EN 端为使能 enable 端 高电平 1 时读取信息 负 跳变时执行指令 第 7 14 脚 D0 D7 为 8 位双向数据端 第 15 16 脚 空脚或背灯电源 15 脚背光正极 16 脚背光负极 b 控制命令表控制命令表 1602 液晶模块的读写操作 屏幕和光标的操作都是通过指令编程来 实现的 说明 1 为高电平 0 为低电平 指令 1 清显示 指令码 01H 光标复位到地址 00H 位置 指令 2 光标复位 光标返回到地址 00H 指令 3 光标和显示模式设置 I D 光标移动方向 高电平右移 低电平左移 S 屏幕上所有文字是否左移或者右移 高电平表示有 效 低电平则无效 指令 4 显示开关控制 D 控制整体显示的开与关 高电平表示 开显示 低电平表示关显示 C 控制光标的开与关 高电平表示有 光标 低电平表示无光标 B 控制光标是否闪烁 高电平闪烁 低 电平不闪烁 指令 5 光标或显示移位 S C 高电平时移动显示的文字 低电平 时移动光标 指令 6 功能设置命令 DL 高电平时为 4 位总线 低电平时为 8 位 总线 N 低电平时为单行显示 高电平时双行显示 F 低电平时显 示 5x7 的点阵字符 高电平时显示 5x10 的点阵字符 指令 7 字符发生器 RAM 地址设置 指令 8 DDRAM 地址设置 指令 9 读忙信号和光标地址 BF 为忙标志位 高电平表示忙 此 时模块不能接收命令或者数据 如果为低电平表示不忙 指令 10 写数据 指令 11 读数据 E E 主程序流程图主程序流程图 7 F F 实验设备与材料实验设备与材料 单片机开发板 计算机 KeiluVision4 G G 步骤步骤 1 将所设计的程序通过 keil 编译并产 生 hex 文件 2 用 usb 连接开发板与计算机 3 在开发板上调试观察实验现象并记录 4 调试完毕 切断开发板电源 整理好实验仪器 H H 程序程序 代码另附纸 2 22 2 密码锁密码锁 电子密码校验设计 由输入密码 设定密码 寄存电路 比较电路 显示电路 修改密码组成 本电子密码锁利用数字逻辑电路 实现 对锁的电子控制 突破了传统的机械锁的单一性 保密性低 易撬 性的缺点 数字电子密码锁具有保密性高 使用灵活性好 安全系 数高的优点 2 2 12 2 1 基本设计要求基本设计要求 1 具有解锁指示 2 具有密码修改功能 3 显示修改密码 2 2 22 2 2 方案介绍方案介绍 1 设计思路 其基本电路由七个部分组成 其中开锁输入电路和密码输入电路组 成输入电路 由锁存移位寄存 译码器组成显示电路 将输入的十 进制数由输入电路转换为 8421BCD 码 密码送入寄存器进行寄存 利用 541744S350 寄存器的移位功能把输入密码进行移位 每输入一 个新密码将之前输入的密码向左移位 最后是密码的十进制在显示 器显示 A A 密码锁的设计框图密码锁的设计框图 B B 数码管显示模块数码管显示模块 数码管按段数可分为七段数码管和八段数码管 八段数码管比七段数 码管多一个发光二极管单元 多一个小数点显示 按能显示多少个 8 可分为 1 位 2 位 3 位 4 位 5 位 6 位 7 位等数码管 按 初始化LCD 定时器 初始化DS1302 按键扫描 功能键是否按 下 N 时间LCD显示子程序 时间写入子程序 Y 单片机控 制模块 键盘 模块 电源 模块 报警 模块 显示 模块 8 发光二极管单元连接方式可分为共阳极数码管和共阴极数码管 共阳 数码管是指将所有发光二极管的阳极接到一起形成公共阳极 COM 的 数码管 共阳数码管在应用时应将公共极 COM 接到 5V 当某一字段 发光二极管的阴极为低电平时 相应字段就点亮 当某一字段的阴极 为高电平时 相应字段就不亮 共阴数码管是指将所有发光二极管的 阴极接到一起形成公共阴极 COM 的数码管 共阴数码管在应用时应 将公共极 COM 接到地线 GND 上 当某一字段发光二极管的阳极为高电 平时 相应字段就点亮 当某一字段的阳极为低电平时 相应字段就 不亮 本次课设采用的是 8 位共阴极数码管 C C 流水灯模块流水灯模块 当密码正确 密码锁打开时流水灯亮起 提示已开锁 只有在开锁 状态下才可以进行密码修改 D D 主程序流程图主程序流程图 I I 实验设备与材料实验设备与材料 单片机开发板 计算机 KeiluVision4 J J 步骤步骤 1 将所设计的程序通过 keil 编译并产生 hex 文件 2 用 usb 连接开发板与计算机 3 在开发板上调试观察实验现象并记录 4 调试完毕 切断开发板电源 整理好实验仪器 K K 程序程序 代码另附纸 三 三 现场调试和修改现场调试和修改 A A 液晶时钟调试液晶时钟调试 a 现场调试现场调试 1 将 hex 文件写入开发板 2 校准时间日期 将时间调为当时所在北京时间 b 现场修改现场修改 要求 将时间中的时分秒显示变为秒分时显示要求 将时间中的时分秒显示变为秒分时显示 键盘输入修改输入 密码存储 器 显示电路万能密码 比较器比较器 开锁 9 1 修改 LCD1602 显示模块 原代码的显示按照显示顺序分别由首地 址加偏移地址 修改显示模块分别所在的偏移地址 则显示时顺 序变化 2 修改按键扫描模块 原代码扫描到功能键按下则光标从秒位开始 闪烁变化调节 修改代码后光标从时位开始闪烁光标修改时间 B B 密码锁密码锁 a a 现场调试现场调试 1 将 hex 文件写入开发板 2 输入初始密码 000000 3 修改密码为任意想要值 关闭密码 4 再次开锁需输入修改后的密码 5 如果输入过程中出现错误可以按下 retry 键进行重新输入 b b 现场修改现场修改 要求 密码输错两次后锁定要求 密码输错两次后锁定 1 修改 retry 键模块 加入一个新的变量为 cishu 每当 retry 键按下则 cishu 2 修改 ok 模块 在原本密码正确条件下增加一条为 cishi 2 则当密码输错三次 密码锁自动锁定 即使输入正确密码也无 法打开 四 四 课程设计小结课程设计小结 回想起此次课设的过程 从选题到编程 从理论到实践 在两 周的日子里 我花了很多的心血 当然这一切都在最后得到了 回报 可以说得是苦多于甜 但是从中却学习到很多很多的东 西 不但巩固了以前所学的知识 而且对单片机原理课外知识 也得到了扩展 另外 在编程过程中 往往一个简单的误操作 就让程序运行出错 同时 对已编译的 hex 文件下载到试验箱 也是需要关注的地方 下载前需要关闭单片机电源 并打开波 特率按钮 确定设置后点击 下载 按钮 之后快速打开单片 机电源 若操作不当或者界限接触不好很容易造成软件下载失 败 当然 出现这种情况并不是严重的 只要重新按步骤再次 下载就可以了 在最关键的程序设计过程中 我体会到坚持不懈的恒心 为了 让程序达到自己的要求 必须对一段代码数次的更改 每次更 改后还要在仿真软件里实现 重复这样的操作的确是无味的 但是确是必要的 只有一次次的修改代码才会让程序运行的更 有效率 更人性化 更易理解 这也是我所追求的 在此次计 算机控制课设之后 我不仅加深了对单片机的理解 将理论很 好的应用到实际当中去 而且我们还学会了如何去培养创新精 神和严谨的科学作风 从而不断的战胜自己 超越自己 更重 要的是 我在这一次设计过程中 学会了坚持不懈 不轻言放 弃 当然该电子时钟还有很多不足之处 这警示我们在今后的 学习中要继续努力 锻炼自己 10 附录附录 1 液晶时钟程序源代码液晶时钟程序源代码 include define uint unsigned int define uchar unsigned char uchar a miao shi fen ri yue nian week flag temp key1n define yh 0 x80 第一行的初始位置 define er 0 x80 0 x40 第二行初始位置 sbit dula P2 6 sbit wela P2 7 sbit wr P3 6 sbit rs P3 5 sbit en P3 4 sbit SCLK P1 0 sbit IO P1 1 sbit RST P1 2 sbit ACC0 ACC 0 sbit ACC7 ACC 7 sbit key P3 7 sbit key1 P3 0 sbit key2 P3 1 sbit key3 P3 2 uchar code tab1 2014 THU uchar code tab2 void delay uint xms 延时函数 uint x y for x xms x 0 x for y 110 y 0 y 液晶写入 write 1602com uchar com 液晶写入指令函数 rs 0 置为写入命令 P0 com 送入数据 delay 1 en 1 拉高使能端 delay 1 en 0 完成高脉冲 write 1602dat uchar dat rs 1 置为写入数据 P0 dat 送入数据 delay 1 en 1 delay 1 en 0 over ds1302 void write byte uchar dat ACC dat RST 1 11 for a 8 a 0 a IO ACC0 SCLK 0 SCLK 1 ACC ACC 1 uchar read byte RST 1 for a 8 a 0 a ACC7 IO SCLK 1 SCLK 0 ACC ACC 1 return ACC void write 1302 uchar add uchar dat RST 0 SCLK 0 RST 1 write byte add write byte dat SCLK 1 RST 0 uchar read 1302 uchar add uchar temp RST 0 SCLK 0 RST 1 write byte add temp read byte SCLK 1 RST 0 return temp uchar BCD Decimal uchar bcd BCD 十进制编码 uchar Decimal Decimal bcd 4 return Decimal Decimal 10 bcd void ds1302 init ds1302 初始化 RST 0 SCLK 0 write 1302 0 x80 miao 0 x00 允许写 void write sfm uchar add uchar dat 写时分秒 uchar gw sw gw dat 10 sw dat 10 write 1602com er add write 1602dat 0 x30 sw write 1602dat 0 x30 gw void write nyr uchar add uchar dat 写年月日 uchar gw sw gw dat 10 sw dat 10 write 1602com yh add write 1602dat 0 x30 sw write 1602dat 0 x30 gw void write week uchar week 写星期函数 write 1602com yh 0 x0d switch week 12 case 1 write 1602dat M delay 5 write 1602dat O delay 5 write 1602dat N break case 2 write 1602dat T delay 5 write 1602dat U delay 5 write 1602dat E break case 3 write 1602dat W delay 5 write 1602dat E delay 5 write 1602dat D break case 4 write 1602dat T delay 5 write 1602dat H delay 5 write 1602dat U break case 5 write 1602dat F delay 5 write 1602dat R delay 5 write 1602dat I break case 6 write 1602dat S delay 5 write 1602dat T delay 5 write 1602dat A break case 7 write 1602dat S delay 5 write 1602dat U delay 5 write 1602dat N break lcd init 液晶初始化函数 wr 0 write 1602com 0 x38 设置液晶工作模式 write 1602com 0 x0c 开显示不显示光标 write 1602com 0 x06 整屏不移动 指针加一 write 1602com 0 x01 write 1602com yh 2 字符写入的位置 for a 0 a 14 a write 1602dat tab1 a delay 3 write 1602com er 4 for a 0 a 8 a write 1602dat tab2 a delay 3 void keyscan 按键扫描 key 0 if key1 0 key1 为功能键 delay 5 if key1 0 while key1 key1n if key1n 9 key1n 1 switch key1n case 1 TR0 0 关闭定时器 TR1 0 write 1602com er 0 x0b 写入光标位置 write 1602com 0 x0f 设置光标为闪烁 temp miao 10 16 miao 10 write 1302 0 x8e 0 x00 write 1302 0 x80 0 x80 temp miao 13 write 1302 0 x8e 0 x80 break case 2 write 1602com er 8 fen write 1602com 0 x0f break case 3 write 1602com er 5 shi write 1602com 0 x0f break case 4 write 1602com yh 0 x0f week write 1602com 0 x0f break case 5 write 1602com yh 0 x0b ri write 1602com 0 x0f break case 6 write 1602com yh 0 x08 yue write 1602com 0 x0f break case 7 write 1602com yh 0 x05 nian write 1602com 0 x0f break case 8 write 1602com 0 x0c 设置光标不闪烁 TR0 1 打开定时器 temp miao 10 16 miao 10 write 1302 0 x8e 0 x00 write 1302 0 x80 0 x00 temp miao write 1302 0 x8e 0 x80 break if key1n 0 当 key1 按下以下 再按以下键才有效 if key2 0 上调键 delay 5 if key2 0 while key2 switch key1n case 1 miao if miao 60 miao 0 write sfm 0 x0a miao 写入新的秒数 temp miao 10 16 miao 10 write 1302 0 x8e 0 x00 write 1302 0 x80 0 x80 temp write 1302 0 x8e 0 x80 write 1602com er 0 x0b 因为设置液晶的模式是写入数据后 指 针自动加一 在这里是写回原来的位置 write 1602com 0 x0b break case 2 fen if fen 60 fen 0 write sfm 0 x07 fen temp fen 10 16 fen 10 write 1302 0 x8e 0 x00 write 1302 0 x82 temp write 1302 0 x8e 0 x80 write 1602com er 8 break case 3 shi if shi 24 shi 0 write sfm 4 shi temp shi 10 16 shi 10 write 1302 0 x8e 0 x00 write 1302 0 x84 temp write 1302 0 x8e 0 x80 write 1602com er 5 break case 4 week if week 8 14 week 0 write week week write 1602com yh 0 x0f break case 5 ri if ri 31 ri 0 write nyr 10 ri temp ri 10 16 ri 10 write 1302 0 x8e 0 x00 write 1302 0 x86 temp write 1302 0 x8e 0 x80 write 1602com yh 11 break case 6 yue if yue 13 yue 0 write nyr 7 yue temp yue 10 16 yue 10 write 1302 0 x8e 0 x00 write 1302 0 x88 temp write 1302 0 x8e 0 x80 write 1602com yh 8 break case 7 nian if nian 100 nian 0 write nyr 4 nian write 1602com yh 5 break if key3 0 delay 5 if key3 0 while key3 switch key1n case 1 miao if miao 1 miao 59 write sfm 0 x0a miao 写入新的秒数 write 1602com er 0 x0b 因为设置液晶的模式是写入数据后 指 针自动加一 在这里是写回原来的位置 write 1602com 0 x0b break case 2 fen if fen 1 fen 59 write sfm 7 fen temp fen 10 16 fen 10 write 1302 0 x8e 0 x00 write 1302 0 x82 temp write 1302 0 x8e 0 x80 write 1602com er 8 break case 3 shi if shi 1 shi 23 write sfm 4 shi temp shi 10 16 shi 10 write 1302 0 x8e 0 x00 write 1302 0 x84 temp write 1302 0 x8e 0 x80 write 1602com er 5 break case 4 week if week 1 week 7 write week week write 1602com yh 0 x0f break case 5 ri 15 if ri 1 ri 30 write nyr 10 ri temp ri 10 16 ri 10 write 1302 0 x8e 0 x00 write 1302 0 x86 temp write 1302 0 x8e 0 x80 write 1602com yh 11 break case 6 yue if yue 1 yue 12 write nyr 7 yue temp yue 10 16 yue 10 write 1302 0 x8e 0 x00 write 1302 0 x88 temp write 1302 0 x8e 0 x80 write 1602com yh 8 break case 7 nian if nian 1 nian 99 write nyr 4 nian write 1602com yh 5 break void init 整个初始化 TMOD 0 x11 TH0 0 TL0 0 EA 1 ET0 1 TR0 1 void cmg void 数码管锁存函数 dula 1 P0 0 x00 dula 0 wela 1 P0 0 x00 wela 0 void main cmg 数码管锁存 lcd init 液晶初始化 ds1302 init 时钟模块初始化 init 整个初始化 while 1 TH0 65536 60000 256 TL0 65536 60000 256 keyscan void timer0 interrupt 1 中断 miao BCD Decimal read 1302 0 x81 fen BCD Decimal read 1302 0 x83 shi BCD Decimal read 1302 0 x85 ri BCD Decimal read 1302 0 x87 yue BCD Decimal read 1302 0 x89 nian BCD Decimal read 1302 0 x8d week BCD Decimal read 1302 0 x8b keyscan write sfm 10 miao write 1602com er 0 x0a write 1602dat write sfm 7 fen 16 write 1602com er 0 x07 write 1602dat write sfm 4 shi write nyr 4 nian write nyr 10 ri write nyr 7 yue write week week 2 密码锁程序源代码密码锁程序源代码 include define uchar unsigned char define uint unsigned int uchar old1 old2 old3 old4 old5 old6 原始密码 000000 uchar new1 new2 new3 new4 new5 new6 每次 MCU 采集到的密码输入 uchar a 16 b 16 c 16 d 16 e 16 f 16 送入数码管显示的变量 uchar wei key temp bit allow genggai ok wanbi retry close 各个状态位 sbit dula P2 6 sbit wela P2 7 sbit beep P2 3 unsigned char code table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 0 x00 0 x40 void delay unsigned char i uchar j k for j i j 0 j for k 125 k 0 k void display uchar a uchar b uchar c uchar d uchar e uchar f dula 0 P0 table a dula 1 dula 0 wela 0 P0 0 xfe wela 1 wela 0 delay 5 P0 table b dula 1 dula 0 P0 0 xfd wela 1 wela 0 delay 5 P0 table c dula 1 dula 0 P0 0 xfb wela 1 wela 0 delay 5 17 P0 table d dula 1 dula 0 P0 0 xf7 wela 1 wela 0 delay 5 P0 table e dula 1 dula 0 P0 0 xef wela 1 wela 0 delay 5 P0 table f dula 1 dula 0 P0 0 xdf wela 1 wela 0 delay 5 void keyscan P3 0 xfe temp P3 temp temp if temp 0 xf0 delay 10 if temp 0 xf0 temp P3 switch temp case 0 xee key 0 wei break case 0 xde key 1 wei break case 0 xbe key 2 wei break case 0 x7e key 3 wei break while temp 0 xf0 temp P3 temp temp beep 0 beep 1 P3 0 xfd temp P3 temp temp if temp 0 xf0 18 delay 10 if temp 0 xf0 temp P3 switch temp case 0 xed key 4 wei break case 0 xdd key 5 wei break case 0 xbd key 6 wei break case 0 x7d key 7 wei break while temp 0 xf0 temp P3 temp temp beep 0 beep 1 P3 0 xfb temp P3 temp temp if temp 0 xf0 delay 10 if temp 0 xf0 temp P3 switch temp case 0 xeb key 8 wei break case 0 xdb k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论