- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
洗衣机控制器 16位单片机大作业报告1
学院
大作业报告
课程名称: 嵌入式系统设计与实践
项目名称: 《洗衣机控制器》
班 级:
姓名: 学号:
成绩:________ 实验时间:2011.12.16
一、设计目的
运用C语言,HCS12 16位单片机的知识,根据题目的要求进行软硬件的设计和调试,从而加深对于本课程知识点的理解,掌握了如何使用CodeWarrior来整合各种驱动模块,再通过算法实现硬件上的运行。
二、功能描述
最终运行的功能为:
DG128开启,上电,LCD提示显示输入。
键入所选定时量程,LCD开始计时,此时,洗衣机启动。
定时结束,LCD提示计数完毕,洗衣机工作完毕。此时,手动关闭电源即可。
通过对于CodeWarrior 软件的操作,编写代码,最终实现freescale HCS12DG128单片机简单控制家用洗衣机的开启——计数——关闭功能。
三、硬件连接
四、设计方案
定时档位:
在洗衣机启动的时候,LCD上电,显示提示输入,键入不同的键,所对应的模式不同,共分为20分钟、25分钟、、、65分钟10个定时档。每个键所定义的模式为:键定义值0键位20分钟,键定义值每加1,相应计数值在20的基础上加5分钟。
主要驱动模块
键盘驱动源文件:KBI_I.c.
计数驱动模块:Timer.c
LCD显示驱动模块:LCD.c
五、程序设计代码
//头文件包含
#include Includes.h //总头文件
#include string.h
//在此添加全局变量定义
uint8 time[3];
extern uint8 KB_valueN,KB_DefValue;
void main()
{
//0.1 主函数中的变量定义
uint16 remember,cnt;
uint8 state=0;
uint32 mRuncount=0; //运行计数器
uint8 receive_data[33]=Time: ;
//uint8 d;//
//0.2 关总中断
DisableInterrupt(); //禁止总中断
//0.3 芯片初始化
MCUInit();
//0.4 模块初始化
TimerInit(); //定时器1初始化
LCDInit(); //LCD初始化
KBInit(); //键盘初始化
Light_Init(Light_Run_PORT,Light_Run,Light_OFF); //RUN指示灯初始化为暗
//0.5 开放中断
//
EnableTimer; //开放定时器1溢出中断
EnableKBint(); //开放键盘中断
EnableInterrupt(); //开放总中断
time[0] = 0; //(1) 时分秒缓存初始化(00:00:00)
time[1] = 0;
time[2] = 0;
remember = time[2]; //(2) 临时变量remember初始化
KB_valueN = 0xff;
LCDShow((uint8 *)Input: ); //LCD提示输入
// 主循环
for(;;)
{
//LCD显示计数器值
if (KB_valueN != 0xff)
{
if((KB_valueN==0xee)||(KB_valueN==0xde)||(KB_valueN==0xbe) ||(KB
文档评论(0)