目录
1、设计原理与方法„„„„„„„„„„„„„„„„„„„„„„„„„„2
1.1、单片机系统概述„„„„„„„„„„„„„„„„„„„„„„„„„2
1.2、80C51内部结构与引脚说明 „„„„„„„„„„„„„„„„„„„„2 1.3、设计原理„„„„„„„„„„„„„„„„„„„„„„„„„„„„4 2、系统硬件线路设计图„„„„„„„„„„„„„„„„„„„„„„„„„6 3、程序框图„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„7 4、资源分配表„„„„„„„„„„„„„„„„„„„„„„„„„„„„„8 5、源程序„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„8 6、仿真结果„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„12 7、性能分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14 8、总结与心得„„„„„„„„„„„„„„„„„„„„„„„„„„„„„15 9、参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„16
1
武汉理工大学单片机课程设计说明书
1、设计原理与方法
1.1、 单片机系统概述
单片机也被称为微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
1.2、80C51内部结构与引脚说明 8051的CPU包含以下功能部件: (1)8位CPU。
(2)布尔代数处理器,具有位寻址能力。
(3)128B内部RAM数据存储器,21个专用寄存器。 (4)4KB内部掩膜ROM程序存储器。 (5)2个16位可编程定时器/计数器。
(6)32位(4×8位)双向可独立寻址的I/O口。 (7)1个全双工UART(异步串行通信口)。 (8)5个中断源、两级中断优先级的中断控制器。
(9)时钟电路,外接晶振和电容可产生1.2MHz~12 MHz的时钟频率。
2
武汉理工大学单片机课程设计说明书
(10)外部程序/数据存储器寻址空间均为64KB。 (11)111条指令,大部分为单字节指令。
(12)单一+5V电源供电,双列直插40引脚DIP封装。
MCS-51单片机中有两个16位的定时器/计数器T0和T1,它们由4个8位寄存器(TL0, TH0, TL1和TH1)组成,2个16位定时器/计数器是完全独立的。可以单独对这4个寄存器进行寻址,但不能把T0和T1当做16位寄存器来使用。具体结构框图如下: MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。其引脚图如图所示。 下面,我们将对一些本次试验用到的引脚,加以说明
Pin9:RESET/Vpd复位信号复用脚,当80C51通电,时钟电路开始工作,在RESET引
3
武汉理工大学单片机课程设计说明书
脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,80C51的初始态。
Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。 1.3、设计原理说明
本次设计的目的是实现两路相位可调的方波信号发生器。通过对51单片机工作原理的学
4
武汉理工大学单片机课程设计说明书
习,设计如下:
选用51单片机中的T0和T1两个定时器,对于两路输出信号P0.0和P0.1分别进行控制,通过定时器的定时计数功能,调整电平变化,产生方波
采取改变两个定时计数器计数初值的手段,改变方波电平产生的延时时间,从而改变方波频率(本次设计中方波占空比为1)
将P1.0设为调频端口,将P1.1设为调相端口。通过更改P0.1端口定时中断中加入输出方波前的独立延时时间,使两个波形之间产生相位差,相位差的步进值为45°
5
武汉理工大学单片机课程设计说明书
2、系统硬件线路设计图
6
武汉理工大学单片机课程设计说明书
3.程序框图
开始 设定计数器初值和相应的定时脉冲个数
依设定的计数初值开始设定定时器T0和T1的工作方式为方式一,并打开定时中断 N 调频按键TF1调相键tp按下 输出电平取反并重新给计数器赋初值 计数溢出 N N Y 将计数器初值减小,改变频率,输出方波 7 N Y 以18°步进值改变相位调频按键TF2Y 将计数器初值增大,改变频率,输出方波 返回武汉理工大学单片机课程设计说明书
4、资源分配表
以下是本设计单片机80C51的系统资源分配: P1.0调整频率步进值+1按键 P1.1调整频率步进值-1按键 P1.1调整相位按键
P0.0第一路方波输出端(定时中断入口0BH) P0.1第二路方波输出端(定时中断入口1BH) T0控制P0.0的方波输出 T1控制P0.1的方波输出
XTAL1与XTAL2接外部晶振,频率为12MHZ
5.源程序
ORG 0000H
AJMP START ORG 000BH AJMP BRK0 ORG 001BH AJMP BRK1 ORG 0030H
START:
MOV R0,#3CH
;设定定时器的初值
MOV R1,#0B0H
MOV R2,#0C3H ;相应的脉冲个数 MOV R3,#50H
MAIN:
8
SETB P0.0 SETB P0.1
MOV TMOD,#11H ;设定T0、T1均工作于方式1 MOV TH0,R0 ;设定T0初值
武汉理工大学单片机课程设计说明书
MOV TL0,R1
MOV TH1,R0 ;设定T1初值 MOV TL1,R1
SETB TR1 ;启动T1工作 WAIT:
JNB P1.0,TF1 ;等待调频按键的操作 JNB P1.1,TF2 ;等待调频按键的操作 JNB P1.2,TP
;等待调相按键的操作
SETB EA
SETB TR0 ;启动T0工作 SETB ET0 ;允许T0中断
LJMP WAIT TP:
MOV R4,#16H DL1: MOV R6,#16H DJNZ R6,$ DJNZ R4,DL1
MOV R7,#01H LJMP WAIT
TF1: ;步进值为+1Hz的调频程序 JNB P1.0,$
9
MOV A,R3 CLR C SUBB A,#88H MOV R3,A CPL A
MOV R1,A ;调频后的计数器初值低八位 MOV A,R2 SUBB A,#13H
武汉理工大学单片机课程设计说明书
MOV R2,A CLR C CPL A
MOV R0,A ;调频后的计数器初值高八位 MOV TH1,R0 ;重新给计数器赋初值 MOV TL1,R1 MOV TH0,R0 MOV TL0,R1
LJMP WAIT
TF2: ;步进值为-1Hz的调频程序 JNB P1.0,$
MOV A,R3 CLR C ADDC A,#88H MOV R3,A
CPL A
MOV R1,A ;调频后的计数器初值低八位 MOV A,R2 ADDC A,#13H MOV R2,A CLR C
CPL A
MOV R0,A ;调频后的计数器初值高八位 MOV TH1,R0 ;重新给计数器赋初值 MOV TL1,R1 MOV TH0,R0 MOV TL0,R1
LJMP WAIT BRK0:
10
;T0中断程序入口
武汉理工大学单片机课程设计说明书
SETB ET1
CPL P0.0 BRK1:
;T1中断程序入口
MOV TH0,R0 MOV TL0,R1 RETI
CJNE R7,#01H ,XX
;若R7为1,则调用调相程序
CALL CF XX: CF:
CPL P0.1
MOV TH1,R0 MOV TL1,R1 RETI
MOV R4,#16H DL2: MOV R6,#16H DJNZ R6,$ DJNZ R4,DL2 CPL P0.1
11
DEC R7 ;将R7位清零
RET ;返回定时中断程序
武汉理工大学单片机课程设计说明书
6.protuse软件仿真
初始波形
调频步进值+1
12
武汉理工大学单片机课程设计说明书
调频步进值-1
调相波形
13
武汉理工大学单片机课程设计说明书
7、性能分析
本次设计所实现的功能如下:
通过定时计数器,产生双输出同步,占空比为1的方波
通过更改计数器的初值,产生倍频效果,调节频率变化,实现频率可控
通过对T1定时计数器的设置,对其进行相位延时,从而产生步进值为18°的相位差,实现相位差可控
综上可知,本次设计基本实现了两路相位可调方波信号发生器的功能,尚待完善的功能如下:
频率的步进变化,而非倍频效果
对于相位差的步进,采用的是更改计数初值的办法来是第二个波形产生单独延时,所以对于改变后的频率不再是以18°为步进值改变。
14
武汉理工大学单片机课程设计说明书
8、总结与心得
这次单片机课程设计,我要求的题目是两路相位可调方波信号发生器,从找资源,到查阅书籍,到咨询同学,再到完成设计,大概用时一个星期左右。
通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
这个设计过程中,我遇到过许多次失败的考验,就比如,在实现频率步进值的时候,由于是采用计数初值的办法,所以不能完全按照标准的步进频率进行步进,调相也遇到了同样的问题,由于是按照步进初值的办法,所以调相也出现了缺点,他只能在初始频率上标准的按步进值变化,但是一旦改变了频率,他的步进值就会不再是18°了,对于答辩老师的意见,我觉得对计数进行跟踪确实是个好的办法,这样就能完全符合客户的要求了。
总之,这次课程设计我付出不少,但是我同样收获很多。
15
武汉理工大学单片机课程设计说明书
9、参考文献
张义和 王敏男 许宏昌,《例说51单片机》,人民邮电出版社,2008
李群芳 张士军 黄建,《单片微型计算机与接口技术》,电子工业出版社,2008 王守中 聂元铭,《51单片机开发入门与典型实例》,人民邮电出版社,2009 周兴华,《手把手教你学单片机》,北京航空航天大学出版社,2007
16
因篇幅问题不能全部显示,请点此查看更多更全内容