1、 16 位单片机大作业位单片机大作业 实验实验报告报告 实验名称: 洗衣机控制器 专 业: 通信工程 姓 名: 班 级: 学 号: 一、设计目的一、设计目的 运用C语言,深入了解MC9S12XS128单片机的知识,根据题目的要求进行软 硬件的设计和调试,从而加深对于本课程知识点的理解,掌握了如何使用 CodeWarrior来整合各种驱动模块,再通过算法实现硬件上的运行。 二、功能描述二、功能描述 最终运行程序实现的的功能为: 通过对 于CodeWarrior 软件 的操 作, 编写 代码, 最终 实现 freescale MC9S12XS128单片机简单控制洗衣机洗衣功能。 按自己的要求将实验
2、箱连线,通电后,LCD显示屏上面上排显示可以设定的 时间,下排显示倒计时的时间,通过键盘输入设定的时间,开始计时,LED显示 灯(绿灯亮起)。设置好固定的洗衣时间后,开始执行“洗衣”,倒计时完成后, 即“洗衣”完成,在LCD显示屏上面显示“洗衣”的时间到,即时间到00:00, LED所有灯亮。 三实验设备三实验设备 1PC 机 一台 2S12 嵌入式开发系统 一台 3连接导线 若干 4小键盘 一个 四模块四模块 (一)定时模块 定时器实现溢出中断接线图 PTA0 PTA1 PTA2 PTA3 PTA4 PTA5 PTA6 PTA7 PTA口(KEY1-8) Vcc 导线接插点 (二)LED 指
3、示灯模块 0x55:绿灯亮 0xFF:全部灯亮 (三)LCD 显示模块 表 7-1 HD44780 引脚信号 管脚号 符号 电平 方向 引脚含义说明 1 Vss 电源地 2 Vdd 电源(+5V) 3 V0 液晶驱动电源(05V) 4 RS H/L 输入 寄存器选择;1-数据寄存器 0-指令寄存器 5 R/W H/L 输入 读写操作选择:1-读操作 0-写操作 6 E H/L HL 输入 使能信号:R/W =0,E 下降沿有效 R/W=1,E=1 有效 710 DB0 DB3 三态 8 位数据总线的低 4 位,若与 MCU 进行 4 位传送时,此 4 位不用 1114 DB4 DB7 三态 8
4、 位数据总线的高 4 位,若与 MCU 进行 4 位传送时,只用此 4 位 1516 E1E2 输入 上下两行使能信号,只用于一些特殊型号 (四)键盘输入模块 键盘接线原理图: 实验箱提供一个 16 键键盘,用于键盘中断信号的输入。键盘插孔如下图所示。 图 7-1 MCU 与 LCD 的连接 LCD(HD44780) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 E R/W RS V0 Vdd VSS +5V PTB7 PTB6 PTB5 PTB4 PTB3 PTB2 PTB1 PTB0 PTM6
5、PTM3 PTM2 本实验中: (1) 键盘采用手动接线,将键盘接入双排插孔下一排插孔。 (2) PTP03 分别接键盘接线处的 14; (3) PTA03 分别接 5-8; (4) PTB 口接 8 个小灯。 2 五设计方案五设计方案 实验中需要添加模块都是平时上课的时候做过的实验模块, 所以要实现预 期的功能,只需要在以前的程序的基础上稍加修改,把各个模块在主程序中联系 起来,加以调用,就可以实现所要求的功能。 列线 n1 n2 n3 n4 MCU 内部上拉电阻 键盘接线原理图 1 2 3 4 5 6 7 8 行线 m1 m2 m3 m4 5V PTB0 PTB1 PTB2 PTB3 PT
6、B4 PTB5 PTB6 PTB7 PTB(LED1-LD0-7) PTP0(PWM1) PTP1(PWM2) PTP2(GPIO-78) PTP3(GPIO-77) PTA0(KEY1) PTA1(KEY2) PTA2(KEY3) PTA3(KEY4) 主要驱动模块有: 计数定时模块:Timer.c LCD显示模块:LCD.c LED指示模块:Light.c 键盘输入模块:KBI_I.c 六程序设计代码六程序设计代码 main.cmain.c /包含头文件 #include “Includes.h“ /包含总头文件 #include /在此添加全局变量定义 uint8 receive_data32; uint8 valve,mark