- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“基于项目化教学的虚拟实验实训项目开发”项目总结
“基于项目化教学的虚拟实验实训项目开发”项目自立项以来已近一年,在这段时间里,项目组成员主要对单片机电子产品开发和电子技术基础(模电和数电)课程里所涉及到的实验实训项目进行虚拟项目开发,并把所有的项目文件上传至系里的教学网络平台上,开设了讨论区,交于授课老师试用。
一、项目开发的工作流程
1、项目名称的确定。通过各课程组成员的讨论并根据各课程实验实训的要求,确定了需开发的虚拟项目名称,具体项目如下表所示。
2、项目设计要求和参数的确定。根据教学的需要及仿真软件仿真库文件种类大小,确定各项目设计要求和参数。
3、绘制原理图。根据项目设计要求,选择相应的元器件,设计原理图,如果碰到库里没有的特殊元器件,可以选用相近器件代替,但有能力的话尽量自制新器件。
4、编程。根据教学的要求,用汇编和C语言分别编制各子任务的子程序和主程序。
5、调试。对所设计完的项目进行调试,功能上务必达到课程要求。
6、存档。把所设计完的项目文件分类,附上相关说明后存档,并上传至系教学平台上。
二、项目展示
1、流水彩灯的设计
1)项目功能要求
a.设计8种彩灯形式;
b.可以用键盘选择彩灯类型,并用数码管显示;
c.可以用键盘设定彩灯运行速度;
2)项目任务分解
a.并行I/O口线的控制;
b.数码管静态显示及7段译码的生成;
c.独立式键盘的编程;
3)项目原理图
4)项目源程序任务分解
a.8种彩灯程序
//Mode 0
unsigned int LEDIndex = 0;
bit LEDDirection = 1,LEDFlag = 1;
void Mode_0(void)
{
LEDShow(0x0001LEDIndex);
LEDIndex = (LEDIndex+1)%16;
}
//Mode 1
void Mode_1(void)
{
LEDShow(0x8000LEDIndex);
LEDIndex = (LEDIndex+1)%16;
}
//Mode 2
void Mode_2(void)
{
if(LEDDirection)
LEDShow(0x0001LEDIndex);
else
LEDShow(0x8000LEDIndex);
if(LEDIndex==15)
LEDDirection = !LEDDirection;
LEDIndex = (LEDIndex+1)%16;
}
//Mode 3
void Mode_3(void)
{
if(LEDDirection)
LEDShow(~(0x0001LEDIndex));
else
LEDShow(~(0x8000LEDIndex));
if(LEDIndex==15)
LEDDirection = !LEDDirection;
LEDIndex = (LEDIndex+1)%16;
}
//Mode 4
void Mode_4(void)
{
if(LEDDirection)
{
if(LEDFlag)
LEDShow(0xFFFELEDIndex);
else
LEDShow(~(0x7FFFLEDIndex));
}
else
{
if(LEDFlag)
LEDShow(0x7FFFLEDIndex);
else
LEDShow(~(0xFFFELEDIndex));
}
if(LEDIndex==15)
{
LEDDirection = !LEDDirection;
if(LEDDirection) LEDFlag = !LEDFlag;
}
LEDIndex = (LEDIndex+1)%16;
}
//Mode 5
void Mode_5(void)
{
if(LEDDirection)
LEDShow(0x000FLEDIndex);
else
LEDShow(0xF000LEDIndex);
if(LEDIndex==15)
LEDDirection = !LEDDirection;
LEDIndex = (LEDIndex+1)%16;
}
//Mode 6
void Mode_6(void)
{
if(LEDDirection)
LEDShow(~(0x000FLEDIndex));
else
LEDShow(~(0xF000LEDIndex));
if(LEDIndex==15)
LEDDirection = !LEDDirection;
LEDIndex = (LEDIndex+1)%16;
}
//Mod
文档评论(0)