第10章 单片机应用系统设计 习题解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章单片机应用系统设计习题解答
1.单片机应用系统设计由哪几个步骤组成?每一个步骤的主要任务是什么?
答:单片机应用系统设计过程一般包括需求分析、可行性分析、系统体系结构设计、软/硬件设计、综合调试等几个步骤。
需求分析主要为了解现有同类产品的性能特点及市场需求状况,掌握用户对产品的希望和要求。通过对需求信息的分析,判断市场和用户是否需要该产品,从而决定是否要开发该产品。需求分析的主要内容包括:现有产品的结构、功能、性能特点及存在的问题;国内外同类产品的发展状况和发展趋势;新产品的结构、功能、性能及特点。经过需求调查,整理出需求报告,作为产品可行性分析的主要依据。
可行性分析是从原理、技术、需求、资金、材料、环境、研发/生产条件等方面分析论证产品开发研制的必要性及可行性,论证产品的经济效益、社会效益和生态效益。从而决定产品的开发研制工作是否需要继续进行下去。可行性分析通常从以下几个方面进行论证:市场或用户需求:说明市场/用户是否需要该产品;科学原理与技术:证明产品的工作原理是正确可行的,用现有的技术是可以实现的;资金、材料及研发/生产条件:说明是否具有研发/生产资金及来源,是否需要特殊材料及解决途径,是否具有研发/生产人员、设备、场地等条件;经济效益、社会效益和生态效益:论证产品有多大的经济效益、有何社会效益、是否污染环境;现在的竞争力与未来的生命力:说明产品的优势和发展潜力。
系统体系结构可以用逻辑框图明确表述。体系结构设计时主要包括如下部分:硬件和软件功能划分;技术路线;核心器件选择
硬件设计的任务主要包括硬件功能模块划分、电路原理图设计、系统仿真、印刷电路板(PCB板)绘制、元器件的焊接与测试。
软件设计的任务主要包括编程语言的选择、软件任务划分、算法设计、程序编写与调试等。
综合调试主要包括系统软硬件脱机综合运行、样机工作现场测试以及产品定型,资料整理等工作。
2.用Proteus仿真实现本章内容给出的“全自动洗衣机控制器”。进一步扩展功能。
答:“全自动洗衣机控制器”的硬件、软件内容在第10章中都有详细介绍,请读者根据第10章内容,在Proteus下仿真实现。此处不再赘述。
扩展部分。可以在系统中添加时间倒计时显示功能,主要思路为设置时间全局变量,用
来显示当前倒计时时间。通过定时中断,对倒计时全局变量进行操作并进行显示。主要参考代码如下:
Int min,sec; //定义时间全局变量
………
//在定时中断中,修改代码如下:
//****************************************
void vTimer0() interrupt 1
{
TH0=TIME0H;
TL0=TIME0L;
time_count ++;
if (time_count==300)
{
time_count = 0;
//定时中断代码中,添加如下时间显示代码:
if(sec==0&min!=0) //判断是否符合时间修改条件按
{
sec=59; //修改秒全局变量
min--; //修改分全局变量
}
//定时时间到,提示信息
if(sec==0&min==0) //判断秒和分倒计时是否为零
{
speaker_on(); //蜂鸣器叫
delay(300); //报时300秒
speaker_off(); //蜂鸣器停
}
…………………
//在显示代码中,添加如下代码,用来在LCD上显示分和秒
/**********LCD显示函数**********/
void display()
{
int level_1, level_2, level_3, voltage_1, voltage_2, voltage_3, minshi, minge, secshi, secge;
clearLCD();
//process: 1浸泡,2脱水,3洗涤,4进水,5漂洗,
//method:1方式一,2方式二,3方式三,4方式四
//speed:1速度1/4,2速度2/4,3速度3/4,4速度4/4
level_1 = ad_level / 100 + 48;
level_2 = (ad_level %100 ) /10 + 48;
level_3 = (ad_level %10 ) + 48;
voltage_1 = ad_voltage / 100 + 48;
voltage_2 = (ad_voltage %100 ) /10 + 48;
voltage_3 = (ad_voltage %10 ) + 48;
minshi=min / 10 + 48; //获得分钟的十位
minge=min%10+48; //获得分钟的各位
secshi=sec / 10 + 48; //获得秒钟的十位
secge=sec%10+48; //获得秒钟的个位
…………….
则在LCD显示中,利用write_data(display_string)这个函数即可实现在对应位置显示对应字符的功能。
3.按照单片机应用系统设计方法设计一个单片机应用实例。
答:请读者参考第10章内容,自己设计。