61单片机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
(实验报告)
题目:凌阳单片机
姓名:骆艳
学号:2009301050220
指导老师:周云峰
2010 年 6 月 15 日
前言
当今社会上企业对于大学生动手能力的要求比较高,为了提高学生的自主动手能力和实践创新能力,学校组织学生进行两周的单片机课程设计。
而本课程设计所采用的便是凌阳科技大学制作的61板。
61板是SPCE061A EMU BOARD 的简称,是以凌阳16位单片机SPCE061A为核心的精简开发—仿真—实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。
它是一套使用方便、功能强大的十六位单片机开发系统,具备上手快、学习面广、技术性和趣味性强等特点,使它不仅适应于初学者,也适应于高层次的产品开发者。
我们通过基于61 板的电子实习,加强学生对电子学的认识和提高,在今后的课程设计、毕业设计以及具有创意的电子制作和产品设计中都能用61 板完成和进行高层次知识的学习。
电子实习与电子技术等理论课有很大的不同。
理论课枯燥乏味,如同纸上谈兵,让学生提不起来兴趣。
而电子实习是以电子产品生产为工程背景,通过实习使学生学到电子产品的工艺设计知识,并通过电子产品的制作,使学生了解电子产品制造过程、熟悉电子产品工艺,掌握制作电子产品的操作技能,为进一步学习和应用奠定基础。
目录
设计(61板单片机) (1)
前言.................................................................................................................................. - 1 - 第一章单片机的基本概念和作用........................................................................................ - 3 -
1.1 单片机的应用领域及其优点 (3)
1.2 单片机的工作过程 (4)
第二章凌阳61板介绍.......................................................................................................... - 5 -
2.1 了解61板单片机 (6)
2.261板的集成环境IDE (8)
2.361板地开发方式 (10)
2.4 61板的各功能模块 (11)
2.561板的各部分硬件电路 (13)
第三章流水灯设计 (14)
3.1设计方案 (15)
3.3硬件连接图 (16)
3.3流水灯原理 (17)
3.4流程图 (18)
3.5流水灯程序 (19)
第四章总结 (14)
致谢 (19)
第一章单片机的基本概念和作用
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU 的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
它体积小、重量轻、价格便宜、为学习、应用和开发提供了便利条件。
1.1单片机的应用领域及其优点
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种手机、充电器、电话、电风扇、录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
1、在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
例如精密的测量设备(功率计,示波器,各种分析仪)。
2、在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,
电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
1.2 单片机的工作过程
单片机是靠程序运行的,它通过不同的程序实现不同的功能,
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。
存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,同时,为了更加方便的检查我们编写的程序是否符合设计的系统的要求(或者说更好的进行程序调试),人们又发明了仿真机,当我们的程序仿真成功以后,再下载到我们设计的系统上,这样一来不仅为我们的程序调试提供了方便,也减少了把一个有误的程序下载到设计的系统上的可能。
当然如果你确认你的程序没有问题的话,也可以不使用仿真器,可惜的是这种牛人在现实中很少见。
总体来说单片机开发的一般过程是首先进行硬件设计,然后根据硬件和系统的要求在开发环境中编写程序,经多次使用仿真器把程序调试成功后,再通过烧录器把程序写到单片机里。
以指向下一条指令的起始地址,保证指令顺序执行。
第二章凌阳61板介绍
2.1了解SPCE061A单片机
SPCE061A是各类单片机里的一种,它是伴随着凌阳大学计划在大陆推出的,在短时间里SPCE061A单片机得到了各大专院校师生的认可,并在业界获得了良好的声誉,因为这个单片机代表了现代单片机的大部分特点,在这本书中所有的例子都以它为标准进行讲解。
现在可以说是一个单片机百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,SPCE061A单片机之所以能在短时间内在国内得到认同,主要是因为它代表了单片机发展的潮流。
1.它整合了多个常用的功能模块,让我们在进行系统开发的时候不用外加过多的硬件就可方便的完成一个系统的设计,这就是人们常说的SoC(System on chip)技术。
2.耗电少,可以满足很多手提设备、掌上设备低能耗的需求,低能耗也是电子技术一直在追求的一个目标。
3.可方便的用来实现声音录制、播放,Midi音乐合成和语音识别,相比别的单片机比较有特色。
4.可方便的完成一系列乘加的运数,实现一些数据处理比较容易,别的单片机一般都不具备这种功能。
5.芯片里具备在线仿真调试电路,使调试和程序下载更加方便,也把仿真器和烧录器的成本给节省下来了。
使用SPCE061A单片机进行学习,不仅可以学到单片机的一些基础知识,并且学习成本低廉,还可进一步了解单片机的发展方向和接触到当前先进的技术。
2.2 61单片机的集成环境IDE
61板配有凌阳自行研发设计的16位单片机开发环境IDE。
此工具在windows环境下操作,支持标准C语言和汇编语言,集编译、链接、调试和仿真于一体,应用方便简单易学。
同时还提供大量的编程函数库,大大加快了软件开发的进程。
集成开发环境IDE具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表等,使编程、调试工作方便且高效。
此外,它的软件仿真功能可以在不连接仿真板的
情况下模拟硬件的各项功能来调试程序。
在集成开发环境IDE中,可以非常方便将编写好的程序,通过61板配套的下载线下载到61板上进行在线调试。
2.3 61板的开发方式
由于61板开发系统与传统单片机开发系统的不一样,下载线和在线调试器赋予的功能就比较多了,它不仅承担着把开发环境生成的目标代码灌入单片机的功能,在进行程序调试时,它又承载着把单片机里各功能模块的当前讯息传送到开发环境,以便程序员能够根据这些数据判断程序的正确与否,从而进行程序的修改,因为传上来的是单片机内部功能模块的当前讯息,所以这个调试过程就形象地称之为在线调试。
我们通过下载线将61板与电脑连接起来,这种方法适合作为初学者的我们很好的学习
2.4 61板各功能模块
熟悉61板,应该从各功能模块入手。
下面将各区的功能进行一下简要的介绍,以便在后面的编程调试时知道是要操作硬件的哪一部分,关于详细介绍请参考附录。
1.电源区:61板采用3节五号电池进行供电,由J10接入,在61板上,前后两组电容用来耦合滤波,使其供给芯片的电电源接反源更加的干净平滑。
为了获得标准的 3.3v电压,在板子上加入SPY0029A三端稳压管。
两CE基个二极管,是为了防止误将电源接反造成不必要的损失而设置的,在操作中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。
后面的零电阻及其电源、地分成不同的几路是为减少电磁干扰设置的。
2.程序下载区:I本运作方式是通过控制clock及通过ICE喂食指令方式,老来控制cpu的运行及缓存器资料和内存资料的存取,因此必须透过控制缓存器值得设定来控制目前cpu的动作。
3.音频输入部分:在61板上,MICP和MICN将随着MIC产生的波形变化,并在两个端口处形成两路反想的波形,再经过两级运放放大,把放大的语音信号交给ADC转换为数字量,这个时候我们就可以通过单片机编程对这些数据进行处理,比如说语音数据压缩、语音识别样本处理。
4. J3是语音输出接口,一个放大,然后输出,SPY0030A放大,然后输出。
5.SPCE061A与周边:这就是整块板子的大脑,所有控制信息都是从这里发出的,那些周边器件用来协助SPCE061A单片机正常工作。
6.键控区:采用这几个按键我们可以做一些简单的试验,比如说当板子里下载了复读机的程序,按这几个按键就可以分别用来进行录音、暂停和播放。
7.复位区:这里是由几个简单的电子元器件组成,当按下这里面的按键后,单片机就重新开始工作,也可以说成是单片机里的程序从第一条开始重新运行。
8.端口区:用于对外挂硬件的控制,或者获取外部硬件的一些状态以便SPCE061A来进行处理。
2.561 板的各部分硬件电路
61 板的硬件电路大体上可分为SPCE061A 最小系统、电源电路、音频电路、ICE 接口等模块,下面分别介绍61 板的各部分电路。
也可参照表3.2所示。
1、SPCE061A 最小系统
SPCE061A 最小系统中,包括SPCE061A 芯片及其外围的基本模块,其中外围的基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等。
2、电源电路
由电池盒提供的 4.5V直流电压经过SPY0029 后产生 3.3V给整个系统供电。
SPY0029 是凌阳公司设计的电压调整IC,采用CMOS 工艺,具有静态电流低、驱动能力强、线性调整出色等特点。
VDDH3 为SPCE061A的I/O电平参考,如果该点接SPCE061A(PLCC84 封装,下面的介绍中当出现SPCE061A的引脚描述时,均指此封装的芯片)的51 脚,可使I/O输出高电平为 3.3V;VDDP为PLL锁相环电源,接SPCE061A的7脚;VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A的15脚和36脚;A VSS1是模拟地,接SPCE061A的24脚;VSS是数字地,接SPCE061A的38脚;A VSS2接音频输出电路的A VSS2。
3、音频电路
音频电路由音频输出和音频输入两部分组成。
SPCE061A内置2路10 位精度的DAC,只需要外接功放电路即可完成语音的播放。
SPY0030 是凌阳的一款音频放大芯片,可以工作在 2.4~6V 范围内,最大输出功率可达700mW。
SPCE061A 芯片中已经集成了音频输入专用ADC 以及AGC 放大电路,因此芯片外部的电路比较简单。
4、ICE 接口电路
SPCE061A芯片内部集成了ICE(在线仿真)接口,PC 机通过Probe(在线调试器)或EZ_Probe (简易下载线)与61 板相连,就可以方便地完成程序的下载、调试等。
61 板为Probe 和EZ_Probe 各自提供了一组接口,可通过S5 跳线来选择使用的接口类型。
表 3.2 61板各部分硬件说明
第三章流水灯设计
3.1 设计方案
1. 编程要求:主程序利用C语言编写。
2.实验目的和设备
(1). 熟悉μ’nSP™ IDE 环境及在该环境下用汇编和C 语言编写的应用程序。
(2). 熟悉简单的μ’nSP™汇编语言指令。
(3). 以A 口和B 口低八位为例,学会使用SPCE061A 单片机I/O 口的基本输出功能
(4).装有Windows 系统和μ’nSP™ IDE 仿真环境的PC 机一台。
(5). 61 板一套;LED 键盘模组一套;10 针排线两根
3. 实现功能:IOA 低8 位接至SEG 接口控制LED 的导通,IOB6 连至DIG7 通过ULN2003A 控制8 个LED的共阴极电平状态,也可将DIG7 直接连至VDD,
3.2 硬件连接图
3.3 流水灯原理
流水灯是由一个带有八个发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
硬件连接图如下图所示。
A口低八位接1×8键盘,B口低八位接八个LED,要求按每个按键的时候相应的LED被熄灭,显然,应该把A口的低八位设置为输入,B口的低八位设置为输出。
我们从图3.2看出,按键按下的时候会给A口一个高电平。
为了使A口在按被触发的状态,我们把A口设置为带下拉电阻的输入。
同时,我们注意到8个LED是共阳极的,低电平点亮,高电平熄灭。
所以,我们在把B口设置为同相的输出的时候,要让某个LED熄灭,只需在对应的I/O口位输出高电平。
3.4 流程图
3.5 流水灯程序
#define P_IOA_Data (volatile unsigned int *)0x7000
#define P_IOA_Buffer (volatile unsigned int *)0x7001
#define P_IOA_Dir (volatile unsigned int *)0x7002
#define P_IOA_Attrib (volatile unsigned int *)0x7003
#define P_IOB_Data (volatile unsigned int *)0x7005
#define P_IOB_Buffer (volatile unsigned int *)0x7006
#define P_IOB_Dir (volatile unsigned int *)0x7007
#define P_IOB_Attrib (volatile unsigned int *)0x7008
#define P_Watchdog_Clear (volatile unsigned int *)0x7012
//======================================================== ==========================//
// 函数名称:Delay()
// 功能描述:实现延时
//======================================================== ==========================//
void Delay()
{ // 延时子程序
unsigned int i;
for (i=0; i<32768; i++)
{
*P_Watchdog_Clear=0x0001; // 清看门狗
}
}
//======================================================== ======================//
// 函数名称:int main()
// 日期:20040816
// 功能描述:单向循环点亮
// 语法格式:void main(void);
// 入口参数: 无
// 出口参数: 无
// 注意事项:仅为用户模型
//======================================================== ======================//
int main()
{
int LedControl = 0x0001;
*P_IOA_Dir = 0x00ff; // 设置A 口低8 位为同向低输出
*P_IOA_Attrib = 0x00ff;
*P_IOA_Data = 0x0000;
*P_IOB_Dir=0x0040; // 设置B6 口为高电平输出,保证LED 共阴极接地*P_IOB_Attrib=0x0040;
*P_IOB_Data=0x0040;
while(1)
{
*P_IOA_Data = LedControl; // 送数据到A 口
LedControl = LedControl << 1;
If (LedControl > 0x00FF)
LedControl = 0x0001;
Delay();
}
}
第四章总结
在本次设计中,随着设计的深入,发现自己所学知识的匮乏。
该设计是大学两年来的所学知识的一次综合的应用,它不仅是完善的一次知识回顾,更使我在这次重温知识的过程中把以前没有弄懂弄明白了。
虽然只有短短两周,却让我获益匪浅,在设计的过程中,我们的指导老师给予了我们极大的帮助和指导,为我们提供了大量对我们设计有帮助的参考资料和相关书籍;并帮助我们一次又一次的解决了在设计中所遇到的各种问题和困难,领导我们发现错误,纠正错误,对我们的设计进行了多次的审阅,在此向我们的老师致以最衷心和诚挚的感谢!同时也要同样感谢在本次设计过程中帮助过我们的其他老师和同学们。
在这两周里我发现了自身的缺点,自己学习的不够细心,粗心大意使自己喜欢犯一些错误,同时也是对自己的学习态度的一次检验。
通过这次实践我明白不管做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没什么办不到的。