单片机课程设计-公交车报站器课程设计.doc

上传人:李主任 文档编号:3262600 上传时间:2019-08-06 格式:DOC 页数:35 大小:7.56MB
返回 下载 相关 举报
单片机课程设计-公交车报站器课程设计.doc_第1页
第1页 / 共35页
单片机课程设计-公交车报站器课程设计.doc_第2页
第2页 / 共35页
单片机课程设计-公交车报站器课程设计.doc_第3页
第3页 / 共35页
单片机课程设计-公交车报站器课程设计.doc_第4页
第4页 / 共35页
单片机课程设计-公交车报站器课程设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《单片机课程设计-公交车报站器课程设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计-公交车报站器课程设计.doc(35页珍藏版)》请在三一文库上搜索。

1、 辽源职业技术学院课程设计用纸 目 录模块一 基础部件实验项目1 P1口实验一项目2 P1口实验二项目3 简单I/O口扩展实验一项目4 简单I/O口扩展实验二项目5中断实验项目6定时器实验项目7码显示实验项目8 8279显示接口实验一项目9 D/A转换实验项目10 A/D转换实验项目11 P1口扩展LCD实验模块二 综合模拟设计一 设计要求二 总体方案三 硬件设计四 软件设计五 系统调试与脱机运行结束语参考文献模块一 基础部件实验项目1 P1口实验一一、实验目的:1 学习P1口的使用方法。2 学习延时子程序的编写和使用。二、实验设备:CPU挂箱、8031CPU模块三、实验内容:1 P1口做输出

2、口,接八只发光二极管,编写程序,使发光二极管循环点亮。2 P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。四、实验原理: P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。可以用第二个实验做一下实验。先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。再来看一下延时程序的实现。现常用的有两种方法,一是

3、用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。本实验系统晶振为6.144MHZ,则一个机器周期为126.144us即10.512us。现要写一个延时0.1s的程序,可大致写出如下: MOV R7,#X (1) DEL1:MOV R6,#200 (2) DEL2:DJNZ R6,DEL2 (3) DJNZ R7,DEL1 (4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要10.256us,现求出X值:10.256+X(10.256+20010.256+10.256)=0.110指令(1) 指令(2) 指令(3) 指令(4)所需时间 所需时

4、间 所需时间 所需时间X=(0.110-10.256)/(10.256+20010.256+10.256)=127D=7FH经计算得X=127。代入上式可知实际延时时间约为0.100215s,已经很精确了。五、实验原理图:P1口输出实验 P1口输入实验六、实验步骤:执行程序1(T1_1.ASM)时:P1.0P1.7接发光二极管L1L8。执行程序2(T1_1.ASM)时:P1.0P1.7接平推开关K1K8;74LS273的O0O7接发光二极管L1L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSOCS7相应的片选地址请查看第一部分系统资源,以后不赘述)。七、实验结

5、果:执行程序一的时候,发光二极管循环点亮。执行程序二的时候,拨动开关K1-K8,相应的发光二极管点亮。八、程序框图: 循环点亮发光二极管通过发光二极管将P1口的状态显示九、实验问题: 项目2 P1口实验二 一、实验目的:1 学习P1口既做输入又做为输出的使用方法。2 学习数据输入、输出程序的设计方法。二、实验设备:CPU挂箱、8031CPU模块三、实验内容: 使用P1口,按位设置为输入输出,模拟汽车转向灯。四、实验原理:P1口的使用方法这里不讲了。有兴趣者不妨将实验例程中的“SETB P1.0, SETB P1.1”中的“SETB”改为“CLR”看看会有什么结果。另外,例程中给出了一种N路转移

6、的常用设计方法,该方法利用了JMP A+DPTR的计算功能,实现转移。该方法的优点是设计简单,转移表短,但转移表大小加上各个程序长度必须小于256字节。五、实验原理图:P1口输入、输出实验六、实验步骤:平推开关的输出K1接P1.0;K2接P1.1;发光二极管的输入L1接P1.2;L2接P1.3;L5接P1.4;L6接P1.5。运行实验程序T2.ASM,K1做为左转弯开关,K2做为右转弯开关。L5、L6做为右转弯灯,L1、L2做为左转弯灯。七、实验结果: 结果显示:1:K1接高电平K2接低电平时,右转弯灯(L5、L6)灭,左转弯灯(L1、L2)以一定频率闪烁;2:K2接高电平K1接低电平时,左转

7、弯灯(L1、L2)灭,右转弯灯(L5、L6)以一定频率闪烁;3:K1、K2同时接低电平时,发光二极管全灭;4:K1、K2同时接高电平时,发光二极管全亮。八、程序框图: 九、实验问题:项目3 简单I/O口扩展实验一交通灯控制实验一、实验目的:1 学习在单片机系统中扩展简单I/O接口的方法。2 学习数据输出程序的设计方法。3 学习模拟交通灯控制的实现方法。二、实验设备:CPU挂箱、8031CPU模块三、实验内容:扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。四、实验原理:要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即

8、红、黄、绿各两个。不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。74LS273作为输出锁存器,映射在CPU的0CFA0H地址处,用来锁存I/O口的信号。74LS273是一个扩展输出口,同时也是一个单向驱动器,以减轻总线口的负担。五、实验原理图六、实验步骤:74LS273的输出O0O7接发光二极管L1L8,74LS273的片选CS273接片选信号CSO.运行实验程序T3.ASM,观察LED显示情况是

9、否与实验内容相符。七、实验结果: 初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。八、程序框图:九、实验问题:项目4 简单I/O口扩展实验二一、实验目的:1 学习在单片机系统中扩展简单I/O口的方法。2 学习数据输入,输出程序的编制方法。二、实验设备:CPU挂箱、8031CPU模块三、实验内容:利用74LS244做为输入口,读取开关状态,并将此状

10、态通过发光二极管显示出来。四、实验原理:MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是有限的。若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。程序中加了一段延时程序,以减少总线口读写的频繁程度。延时时间约为0.01秒,不会影响显示的稳定。五、实验原理图:简单I/O实验2六、实验步骤:1 74LS244的IN0IN7接开关的K1K8,片选信号CS244接CS1。2 74LS273的O0O7接发光二极管的L1L8,片选信号CS273接CS2。3 全速执行T4.ASM。4 拨动开关K1K8,观察发光

11、二极管状态的变化。七、实验结果: 拨动开关K1K8,开关拨到L端时,相应的发光二极管点亮;拨到H端时,相应发光二极管变灭。八、程序框图:九、实验问题:项目5 中断实验有急救车的交通灯控制实验一、实验目的:1 学习外部中断技术的基本使用方法。2 学习中断处理程序的编程方法。二、实验设备:CPU挂箱、8031CPU模块三、实验内容:在实验三的内容的基础上增加允许急救车优先通过的要求。当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。四、实验原理:当按下PULSE键时,产生一个中

12、断信号,CPU保存当前交通灯的状态,进入中断服务子程序,中断服务子程序结束后,返回到中断前的状态。本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没

13、有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作: MOV A,#0F0H (0) MOVX R1,A (1) MOV SAVE,A (2)程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下则没有问题。发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。五、实验原理图:(同实验三)六、

14、实验步骤:74LS273的输出O0O7接发光二极管L1L8,74LS273的片选CS273接片选信号CS2,此时74LS273的片选地址为CFB0HCFB7H之间任选。单脉冲输出端P-接CPU板上的INT0。运行实验程序T5.ASM,观察发光二极管的亮灭变化。然后,按PULSE键,再观察发光二极管的状态。七、实验结果: 不按PULSE按键的时候,现象如同实验三。当按下PULSE 时,东西南北的红灯同时点亮10秒,之后恢复到按键前的状态。八、程序框图: 主程序框图 中断程序框图九、实验问题:项目6 定时器实验循环彩灯实验一、实验目的:1 学习8031内部计数器的使用和编程方法。2 进一步掌握中断

15、处理程序的编写方法。二、实验设备:CPU挂箱、8031CPU模块三、实验内容由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0P1.7分别接发光二极管的L1L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。四、实验原理:1 定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样, 为振荡频率的1/12。本实验中时钟频率为6.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。时间常数可按下述方法确定

16、:机器周期=12晶振频率=12/(610)=2us设计数初值为X,则(2e+16-X)2=0.1,可求得X=15535化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH2 初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。3 设计中断服务程序和主程序中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。五、实验原理图: 六、实验步骤:P1.0P1.7分别接发光二极管L1L8即可。运

17、行实验程序T6.ASM,观察LED L1-L8。七、实验结果: L1、L2、L8依次点亮;L1、L2、L8依次熄灭;L1、L2、L8全亮、全灭。各时序间隔为0.5秒。八、程序框图: 主程序框图 中断程序框图 九、实验问题:项目7 数码显示实验一、实验目的:1 进一步掌握定时器的使用和编程方法。2 了解七段数码显示数字的原理。3 掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。二、实验设备:CPU挂箱、8031CPU模块三、实验内容利用定时器1定时中断,控制电子钟走时,利用实验箱上的六个数码管显示分、秒,做成一个电子钟。显示格式为: 分 秒四、实验原理:本试验采用动态显示。动态显示就是一

18、位一位地轮流点亮显示器的各个位(扫描)。将8031CPU的P1口当作一个位锁存器使用,74LS273作为段锁存器。定时时间常数计算方法为:定时器1工作于方式1,晶振频率为6MHZ,故预置值Tx为: (2e+16-Tx)x12x1/(6x10e+6)=0.1s Tx=15535D=3CAFH,故TH1=3CH,TL1=AFH五、实验原理图:六、实验步骤:将P1口的P1.0P1.5与LEDKEYBOARD PORT区的LED6LED1(数码管的输入)相连,74LS273的O0O7与LED-ALED-Dp相连,片选信号CS273与CS0相连。去掉数码管旁边LED-JUMP短接帽,否则数码管无法显示。

19、运行T9.ASM,观察数码管显示。七、实验结果: 可以看到数码管上显示格式为XXXX(分秒)的时钟。八、程序框图:项目8 8279显示接口实验一一、实验目的:1 掌握在8031系统中扩展8279键盘显示接口的方法。2 掌握8279的工作原理和编程方法。3 进一步掌握中断处理程序的编程方法。二、实验设备:CPU挂箱、8031CPU模块三、实验内容:利用8279键盘显示接口电路和实验箱上提供的6个数码显示,做成一个电子钟。四、实验原理:利用8279可实现对键盘/显示器的自动扫描,以减轻CPU的负担,且具有显示稳定、程序简单、不会出现误动作等特点。本实验利用8279实现显示扫描自动化。8279操作命

20、令字较多,根据需要来灵活使用,通过本实验可初步熟悉其使用方法。电子钟做成如下格式: MM-SS 由左向右分别为十位、个位(秒)。五、实验原理图:六、实验步骤:本试验不必接线。运行T10.ASM,观察数码管显示。七、实验结果: 数码管上显示由左向右分别为十位、个位(秒)。八、程序框图:项目9 D/A转换实验一、实验目的:1 了解D/A转换的基本原理。1 了解D/A转换芯片0832的性能及编程方法。2 了解单片机系统中扩展D/A转换的基本方法。二、实验设备:CPU挂箱、8031CPU模块三、实验内容:利用DAC0832,编制程序产生锯齿波、三角波、正弦波。三种波形轮流显示。四、实验原理:D/A转换

21、是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。产生锯齿波和三角波只需由A存放的数字量的增减来控制;要产生正弦波,较简单的手段是造一张正弦数字量表。取值范围为一个周期,采样点越多,精度就越高。本实验中,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。两个寄存器均对数据独立进行锁存。因而要把一个数据通过0832输出,要经两次锁存。典型程序段如下: MOV DPTR,#PORT MOV A,#DATA MOVX DPTR,A INC DPTR MOVX DPTR,A其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号。启动D/A。五、实验原理图:六、实验步骤:1、 D

22、AC0832的片选CS0832接CS0,输出端DAOUT接示波器探头。2、 将短路端子DS的1、2短路,运行程序T14.ASM,观察示波器。七、实验结果: 示波器上依次显示锯齿波,三角波,正弦波。 八、程序框图: 主程序MAIN 锯齿波显示子程序:PRG1 三角波显示子程序:PRG2 正弦波显示子程序:PRG3 中断子程序:DELAY 项目10 A/D转换实验一、实验目的:1 掌握A/D转换与单片机的接口方法。2 了解A/D芯片ADC0809转换性能及编程方法。3 通过实验了解单片机如何进行数据采集。二、实验设备:CPU挂箱、8031CPU模块三、实验内容:利用实验台上的ADC0809做A/D

23、转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果。四、实验原理:A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用的ADC0809属第二类,是八位A/D转换器。每采集一次需100us。ADC0809 START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需如下两条指令: MOV DPTR,#PORT MO

24、VX DPTR,AA中为何内容并不重要,这是一次虚拟写。在中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031CPU板上的INT0相连接。在中断处理程序中,使用如下指令即可读取A/D转换的结果: MOV DPTR,#PORT MOVX A,DPTR五、实验原理图:六、实验步骤:1 0809的片选信号CS0809接CS0。2 电位器的输出信号AN0接0809的ADIN0。3 EOC接CPU板的INT0.4 运行程序T15.ASM,转动ANOLOG OUT单元的旋钮,观察数码管。七、实验结果: 旋钮向左转,数码管数值变大;向右转,数码管数值变小。八、程序框图: 主程序 中断服务程序项目

25、11 P1口扩展LCD实验一、实验目的:学习液晶显示的编程方法,了解液晶显示模块的工作原理。掌握液晶显示模块与单片机的接口方法。二、所需设备1、CPU挂箱2、CPU模块(80C31)三、实验内容 编程实现在液晶显示屏上显示中文汉字“北京理工达盛科技有限公司”。四、实验原理说明五、实验步骤 1、实验连线P1.0P1.7接CPU挂箱上LCD模块的DB0DB7,T0接BUSY,T1接REQ。 2、运行实验程序LCDDOT1.asm,观察液晶的显示状态。六、实验结果液晶屏上依次显示“北京理工达盛科技有限公司”和“EDA-V型实验系统Techshine Co.LTD”。七、程序框图 模块二 综合模拟设计

26、 -公交车报站器一、设计要求首先在录音方式下通过键盘的操作录制三个不同的站名,然后在播放方式下,通过按不同的键,播放不同的站名。二、总体方案 方案一:设计连线语音模块上的P/R接至实验箱的开关K1,同时接至74LS244的IN7;语音模块上的/EOM接至实验箱的指示灯L2,同时接至74LS244的IN0;语音模块上的PD接至实验箱74LS273的O0,/CE接至74LS273的O1,CA0接至74LS273的O7;实验箱上CS273接CS0,CS244接CS1;键盘部分的RL10RL17接8279部分的RL0RL7,KA10KA12节KA0KA2。 方案二:运行程序AUDIO.ASM,进行语音

27、录放操作。 1、录音:将开关KK1置低电平,按“0”键复位地址,数码管显示“0”;按“MEM”键开始录音,此时指示灯LED2灭,可靠近麦克风说一段话“XX站到了,请您下车”,再按一次“MEM”键结束第一段录音,此时LED2亮,数码管显示“1”。如此可继续录第2、3N段。 2、播放:将开关KK1置高电平,按“1”“3”键播放相应的段,播放过程中LED2灭,播放完成后LED2亮,数码管显示相应的段号。按“ESC”键可循环播放13段,同时数码管显示相应的段号。三、硬件设计 1电路原理图键盘接口电路采用实验箱自带的8279接口电路,其原理可参阅前面的实验。通过74LS244、74LS274扩展的IO端

28、口给出语音模块的控制信号,语音模块原理见使用说明。设计电路结构如下图所示:键盘功能键说明:“0”键表示地址复位,每次录音前需按此键复位地址;“1”“3”键表示播放第几段录音;“MEM”键在录音时有效,表示录音/暂停(即第一次按下表示开始录音,第二次按下表示第一段录音结束,第三次表示开始下一段录音,第四次表示本段录音结束,以下类推)。“ESC”键在播放时有效,表示循环播放13段录音。IDS1700语音模块设计设计设备:单片机实验台(CPU挂箱、接口挂箱)设计模块:EL-LAB-AUDIO-ISD1700语音模块 系统接线:1、用串口电缆将串口(DB9与计算机的COM1相连。应用模块接线:1、将模

29、块上的INT与CPU板上的INT0相连;2、将模块上的DO与CPU板上的P11相连;3、将模块上的DI与CPU板上的P12相连;4、将模块上的CLK与CPU板上的P10相连;5、将模块上的SS与CPU板上的P14相连;6、将试验箱上开关KK1的输出K1与CPU板上的P15相连;7、将试验箱上开关KK2的输出K2与CPU板上的P16相连; 2、系统工作流程框图: 四、系统调试:1、首先检查连线,保证连线正确。2、试验台(箱)连接上位机并运-行ISD1700.c(根据需要可单步运行、单步跟踪、设置断点),检查接线正确无误后,加电,将开关KK1、KK2、KK3拨到低电平侧(L侧)先将KK1拨到H侧并对MIC讲话,结束后将开关KK1拨回L侧。将拨码开关KK2拨到H侧,开始放音,直至结束。3、如果想重放,先将开关KK2拨到L侧,在拨到H侧,则重复放音。结束语参考文献1、2、3、4、5、NO: 35

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1