8225的初始化程序
- 格式:doc
- 大小:27.00 KB
- 文档页数:1
《计算机组成原理与汇编语言》习题第一章1. 计算机中为什么都采用二进制数而不采用十进制数?2. 写出下列用原码或补码表示的机器数的真值:a (1 01101101 (2 10001101 (3 01011001 (4 110011103. 填空:a (1 (123410=(2=(16b (2 (34.687510=(2=(16c (3 (271.33 10 = ( 2= ( 16d (4 (101011001001 2 = ( 10 = ( 16e (5 (1AB.E 16 = ( 10 = ( 2f (6 (10101010.0111 2= ( 10 = ( 164. 已知X=36,Y=-136,Z=-1250,请写出X、Y、Z的16位原码、反码、和补码。
5. 已知[X]补=01010101B,[Y]补=10101010B,[Z]补=1000111111111111B,求X、Y、Z及X+Y,Y-Z的十进制值为多少?6. 用8位补码进行下列运算,并说明运算结果的进位和溢出:a (1 33+114 (233-114 (3(-33+114 (4(-33 -1147. 将下列十进制数表示为8421BCD码:(18609 (25254 (32730 (429988. 将下列8421BCD码表示为十进制数和二进制数:a (101111001 (2001010000101 (3022********* (4 010*********9. 将下列数值或字符串表示为相应的ASCII码:(151 (27FH (3C6H (4Computer (5 how are you?10. 定点数和浮点数表示方法各有什么特点?11. 微处理器、微型计算机和微型计算机系统三者之间有什么不同?12. 微型计算机由哪几部分组成,各部分功能是什么?13. CPU在内部结构上由哪几部分组成,CPU应具备什么功能?14. 简述计算机执行指令和执行程序的过程。
简易数字时钟的设计(完整程序附在最后)摘要:本电子钟利用单片机AT89S52控制日历时钟芯片DS12C887实现多功能数字时钟。
该时钟由单片机控制日历时钟芯片实现年份、月份、日期、时间信息的获取,并且通过LCD12864对年份、月份、日期、星期、节日、时间信息进行显示,可以对年份、月份、日期、星期、时间进行修改,具有掉电后时间信息不丢失的功能。
另外具有闹钟功能和具有整点报时功能,可设置闹铃时间,当闹铃时间到时,进行闹铃,通过任意按键可解除闹铃;当整点到来,鸣奏音乐。
采用18B20进行温度测控,超出温度阈值将会进行报警。
我们将程序固化到单片机中,并且设有程序下载口,可以方便对程序进行升级。
关键词:多功能数字时钟,单片机AT89S52,日历时钟芯片DS12C887,闹铃,整点报时。
1 设计要求基本设计要求(1)单片机控制日历时钟芯片实现年份、月份、日期、星期、时间信息的获取。
(2)在LCD上对年份、月份、日期、星期、时间、信息进行显示。
(2)可以对年份、月份、日期、星期、时间进行修改。
(3)具有掉电后时间信息不丢失的功能。
发挥部分(1)具有闹钟功能。
可设置闹铃时间,当闹铃时间到时,进行闹铃。
通过按键可解除闹铃。
(2)具有整点报时功能。
(3)程序固化到单片机中,并且可直接进行程序下载和更新。
2 总体设计2.1 系统组成及工作原理本电子钟由单片机、定时、显示、按键、定时提醒、ISP在线编程6部分组成。
产品以AT89S52单片机、DS12C887时钟芯片为核心,显示部分采用LCD12864,使用6个按键、1蜂鸣器和一个温度传感器,加上ISP在线编程模块。
DS12C887时钟芯片产生时钟信号和存放闹铃数据,其精度和可靠性高,在单片机掉电状态下能正确走时、保存闹铃数据长达10年,故能实现停电重起后定时设计不变的关键设计指标。
AT89S52单片机实时获取DS12C887的时间和闹铃数据,驱动LCD和蜂鸣器。
显示部分的LCD有高亮度,低成本等诸多优点。
华东交通大学信息工程专业单片机课程设计报告目录目录 (I)摘要 (II)第一章设计要求 (1)1.1课程设计项目名称 (1)1.2项目设计目的及技术要求 (1)第二章总体方案 (2)2.2硬件电路设计 (2)2.2.1单片机最小系统电路 (2)2.2.2复位电路 (5)2.2.3 8255可编程并行I/O口接口芯片 (6)2.2.4蜂鸣器的工作原理 (8)2.3软件设计 (9)2.3.1时间调节原理框图 (9)2.3.2主程序流程图 (10)第三章总结 (11)第四章参考文献 (12)附录 (13)一、仿真图: (13)二、程序清单: (13)华东交通大学信息工程专业单片机课程设计报告摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于数字钟电路的基本组成包含了数字电路的主要组成部分,因此进行数字钟的设计是必要的,研究数字钟及扩大其应用,有着非常现实的意义。
单片机数字时钟就是其中的一款设计。
它具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。
单片机数字钟是单片机为核心。
时钟,本设计是以单片机AT89S52配备LED数码显示管,数字钟采用24小时制方式显示时间,带有年月日、秒表和闹钟功能。
本设计打算采用蜂鸣器做提醒,因没有蜂鸣器所以采用闪灯来提醒。
第七章1. 什么叫中断?什么叫可屏蔽中断和不可屏蔽中断?答:当CPU正常运行程序时,由于微处理器内部事件或外设请求,引起CPU中断正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务子程序,中断服务程序执行完毕,再返回被中止的程序,这一过程称为中断。
可屏蔽中断由引脚INTR引入,采用电平触发,高电平有效,INTR信号的高电平必须维持到CPU响应中断才结束。
可以通过软件设置来屏蔽外部中断,即使外部设备有中断请求,CPU可以不予响应。
当外设有中断申请时,在当前指令执行完后,CPU首先查询IF位,若IF=0,CPU就禁止响应任何外设中断;若IF=1,CPU就允许响应外设的中断请求。
不可屏蔽中断由引脚NMI引入,边沿触发,上升沿之后维持两个时钟周期高电平有效。
不能用软件来屏蔽的,一旦有不可屏蔽中断请求,如电源掉电等紧急情况,CPU必须予以响应。
2. 列出微处理器上的中断引脚和与中断有关的指令。
答:INTR:可屏蔽中断请求输入引脚。
NMI:不可屏蔽中断请求输入引脚INTA:可屏蔽中断响应引脚INT n :软件中断指令,其中n为中断类型号INTO:溢出中断,运算后若产生溢出,可由此指令引起中断。
CLI:中断标志位IF清0STI:置位中断标志位为13. 8086/8088系统中可以引入哪些中断?答:(1)外部中断两种外部中断:不可屏蔽中断NMI和可屏蔽中断INTR(2)内部中断内部中断又称软件中断,有三种情况引起:①INT n :中断指令引起的中断②CPU的某些运算错误引起的中断:包括除法错中断和溢出中断③由调试程序debug设置的中断:单步中断和断点中断。
4. CPU响应中断的条件是什么?简述中断处理过程。
答:CPU响应中断要有三个条件:外设提出中断申请;本中断位未被屏蔽;中断允许。
可屏蔽中断处理的过程一般分成如下几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。
CPU在响应外部中断,并转入相应中断服务子程序的过程中,要依次做以下工作:⑴从数据总线上读取中断类型号,将其存入内部暂存器。
AT89S52单片机实验板使用说明书注:用户拿到开发板后先测试开发板的好坏,方法是给开发板通上电,如果数码管从0开始进行加计数那么说明开发板是好的。
如果通电后电路板没有反应,请及时联系我们。
此时用户应该将LED-J2的跳线冒去掉,因为,8个LED和数码管是共用数据线的,当然,如果不去也不影响实验效果。
实验板使用注意事项:下载线和开发板的连接要正确,并口ISP下载线采用10芯排线,其中10芯排线的红色边一端是第1个脚,对应目标电路板接口的MOSI,在使用时请注意不要接反,以免损坏下载线和电路板。
USB-ISP下载线电路板和开发板上都有ISP的标号,连接时对应连接就可以了,千万不要接反,以免损坏下载线和电路板。
1.开发板PCB顶视图和底视图2.开发板尺寸:9cm*7cm3.开发板资源:(1)AT89S52单片机,可实现ISP编程(2)4位共阳数码管(3)八只贴片LED发光二极管(4)一个串口,与电脑进行串口通信(5)所有单片机引脚引出接口,本开发板将单片机的40个引脚全部引出,包括电源和地,方便用户扩展外设。
(6) DC-5V稳压电源供电接口(7) USB供电接口(8) DC-5V稳压电源供电 USB供电选择接口(9)系统复位按键,便于调试程序(10)ISP编程接口,通过此接口可以实现ISP在系统编程,不用将芯片从开发板拿下来就可以通过下载线将程序下载到单片机内,避免了以往采用编程器编程频繁拔插单片机的麻烦和易损坏芯片的风险。
(11)电源总开关,本开发板上有一个电源总开关,通过此开关可以方便的控制开发板的电源,避免频繁繁拔电源的麻烦。
注:本电源总开关采用的是进口金属封装左右拨动式电源总开关,质量可靠,放心使用。
避免了市场上很多开发板上使用的廉价的易损坏朔料封装开关给用户带来的不必要的烦脑。
4.开发板供电方式:(1)USB供电(2)DC-5V稳压电源供电(3)USB-ISP下载线供电注:在选用USB-ISP供电时,USB-ISP下载线电路板上的JP2必须用跳线冒接上。
8253的初始化编程8253的初始化编程内容:一是首先向控制寄存器写入控制字,以选定计数通道(三个中之一),规定该计数的工作方式和计数方式以及计数初值的长度和装入顺序(初值写入方式);二是向已选定的计数器按控制字的要求写入计数初值。
8253初始化的要求:(1)对每个计数器,控制字必须写在计数值之前。
这是因为计数器的读/写格式由它的控制字决定。
(2)计数值必须按控制字所规定的格式写入。
若控制字规定只写8位,只需写入一次(8位)计数值即可(规定写低8位则高8位自动置0,规定写高8位则低8位自动置0);规定写16位时必须写两次,先写低8位,后写高8位。
当初值为0时,也要分两写入,因在二进制计数时,“0”表示65336,在BCD码计数时“0”表示10000=104。
(3)对所有方式计数器都可以在计数过程中或计数结束后改变计数值,重写计数值也必须遵守控制字所规定的格式,并且不会改变当前计数器的工作方式。
(4)计数值不能直接写到减1计数器中,而只能写入计数值寄存器中,并由写操作之后的下一个CLK脉冲将计数值寄存器的内容装入减1计数器开始计数。
(5)初始化编程必须明确各个计数器的控制字和计数值不是写到同一个地址单元。
各个计数器的控制字各自独立确定,但它们都写入同一个端口地址(控制字寄存器)中,各个计数器的计数值则根据需要独立确定并写入各自计数器的相应寄存器中。
例1:设8086系统中8253的三个计数器的端口地址为060H,062H和064H,控制口地址为066H,要求计数器0为方式 1,按BCD计数;计数初值为1800D,计数器1为方式0,按二进制计数;计数初值为1234H,计数器2为方式3,按二进制计数;当计数初值为065H时,试分别写出计数器0,1,2的初始化程序。
计数器0的初始化:计数0的控制字:00100011B=23HMOV AL,23H ;计数器0的控制字OUT 0 66H,AL ;控制字写入8253的控制器MOV AL,18H ;取计数初值的高8位,低8位00可不送OUT 060H,AL ;计数初值送计数器0端口计数器1和初始化:计数器1的控制字:01110000B=70HMOV AL,70H ;计数器的控制字:方式0,送高8位和低8位,二进制计数OUT 066H,AL ;控制字写入8253的控制器MOV AL,034H ;取计数初值的低8位OUT 062H,AL ;计数初值的低8位,写入计数器1端口MOV AL, 12H ;取计数初值的高8位OUT 062H,AL ;计数初值的高8位写入计数器1端口计数器2的初始化:计数器2的控制字:10010110B=96HMOV AL,96H ;计数器2的控制字96H:方式3,只送低8位,二进制计数OUT 066H,AL ;控制字写入8253的控制口MOV AL,056H ;计数初值的低8位OUT 064H,AL ;计数初值的低8位写入计数器2的端口例2:要求读出计数器2的当前计数值,并检查是否为全“1”。
8253的初始化编程8253的初始化编程内容:一是首先向控制寄存器写入控制字,以选定计数通道(三个中之一),规定该计数的工作方式和计数方式以及计数初值的长度和装入顺序(初值写入方式);二是向已选定的计数器按控制字的要求写入计数初值。
8253初始化的要求:(1)对每个计数器,控制字必须写在计数值之前。
这是因为计数器的读/写格式由它的控制字决定。
(2)计数值必须按控制字所规定的格式写入。
若控制字规定只写8位,只需写入一次(8位)计数值即可(规定写低8位则高8位自动置0,规定写高8位则低8位自动置0);规定写16位时必须写两次,先写低8位,后写高8位。
当初值为0时,也要分两写入,因在二进制计数时,“0”表示65336,在BCD码计数时“0”表示10000=104。
(3)对所有方式计数器都可以在计数过程中或计数结束后改变计数值,重写计数值也必须遵守控制字所规定的格式,并且不会改变当前计数器的工作方式。
(4)计数值不能直接写到减1计数器中,而只能写入计数值寄存器中,并由写操作之后的下一个CLK脉冲将计数值寄存器的内容装入减1计数器开始计数。
(5)初始化编程必须明确各个计数器的控制字和计数值不是写到同一个地址单元。
各个计数器的控制字各自独立确定,但它们都写入同一个端口地址(控制字寄存器)中,各个计数器的计数值则根据需要独立确定并写入各自计数器的相应寄存器中。
例1:设8086系统中8253的三个计数器的端口地址为060H,062H和064H,控制口地址为066H,要求计数器0为方式 1,按BCD计数;计数初值为1800D,计数器1为方式0,按二进制计数;计数初值为1234H,计数器2为方式3,按二进制计数;当计数初值为065H时,试分别写出计数器0,1,2的初始化程序。
计数器0的初始化:计数0的控制字:00100011B=23HMOV AL,23H ;计数器0的控制字OUT 0 66H,AL ;控制字写入8253的控制器MOV AL,18H ;取计数初值的高8位,低8位00可不送OUT 060H,AL ;计数初值送计数器0端口计数器1和初始化:计数器1的控制字:01110000B=70HMOV AL,70H ;计数器的控制字:方式0,送高8位和低8位,二进制计数OUT 066H,AL ;控制字写入8253的控制器MOV AL,034H ;取计数初值的低8位OUT 062H,AL ;计数初值的低8位,写入计数器1端口MOV AL, 12H ;取计数初值的高8位OUT 062H,AL ;计数初值的高8位写入计数器1端口计数器2的初始化:计数器2的控制字:10010110B=96HMOV AL,96H ;计数器2的控制字96H:方式3,只送低8位,二进制计数OUT 066H,AL ;控制字写入8253的控制口MOV AL,056H ;计数初值的低8位OUT 064H,AL ;计数初值的低8位写入计数器2的端口例2:要求读出计数器2的当前计数值,并检查是否为全“1”。
8253的初始化程序1.确定端口地址:0310H、0312H、0314H、0316H2.确定工作方式(假设工作方式为):通道0,方式3通道1,方式1通道2,方式53.确定计数值:通道0:N0=1MHz/2KHz=500通道1:N1=480us/(1/1mhz)=480通道2:N2=264确定控制字:通道0:00110111B通道1:01110011B通道2:10011011B对3个通道的初始化程序如下:;通道0初始化程序MOV DX, 316HMOV AL,00110111BOUT DX,ALMOV DX,310HMOV AL,00HOUT DX, ALMOV AL,05HOUT DX,AL;通道1的初始化程序MOV DX, 316H MOV AL, 001110011B OUT DX, ALMOV DX, 312H MOV AL, 80HOUT DX, ALMOV AL, 04HOUT DX, AL;通道2初始化程序MOV DX, 316H MOV AL, 10011011B OUT DX, ALMOV DX, 314H MOV AL,26HOUT DX,AL; MOV AL,00H; OUT DX,AL8255A初始化程序对8255A进行初始化,要求端口A工作于方式1,输入;端口B工作于方式0,输出;端口C的高4位配合端口A工作,低4位为输入。
1.确定控制字端口地址:006CH。
2.确定工作方式:端口A,工作方式1,输入端口B,工作方式0,输出端口C,C0为输入,C4为配合工作3.确定方式选择控制字:1 011 100 1H(B9H)对3个端口的初始化程序如下MOV AL,B9HMOV DX,006CHOUT DX,AL另一个8255A初始化程序已知某8255A在系统中占用88~8BH号端口地址,现欲安排其PA,PB,PC口全部为输出,PA,PB口均工作于方式0模式,并将PC6置位,使PC3复位,试编写出相应的初始化程序:1.确定端口地址控制字以及PC口置位复位端口,8BH2.确定工作方式3.确定方式选择控制字MOV AL,80HOUT 8BH,ALMOV AL,ODHOUT 8BH,ALMOV AL,06HOUT 8BH,AL在8259A内部有两组寄存器:一组为命令寄存器,用于存放CPU写入的初始化命令字ICW1~ICW4(initialization command words);另一组为操作命令寄存器,用于存放CPU写入的操作命令字OCW1~OCW3(operation command words)。
8255的初始化程序:
1、地址确定
因为A10A9A8A7A6A5A4A3=01010011,A2A1=11为控制字端口,A2A1=10为C口,A2A1=01为B口,A2A1=00为A口,A0为0,所以8255A地址范围为24CH~24FH。
2、控制字确定
因为A口为方式0输出,B口为方式0输入,所以控制字为10000010B=82H 3、初始化程序
MOV AL,82H
MOV DX,24FH
OUT DX,AL
附8255知识:
8255是微机并行接口芯片。
8255是可编程I/O口扩展芯片。
对8255输入不同的指令可改变I/O口的工作方式。
8255与单片机系统连接方式简单,工作方式由程序设定,图2为8255的引脚图。
8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。
A、B、C寄存器的数据就是引脚PA7~PA0、PB7~PB0、PC7~PC0上输入或输出的数据。
而控制寄存器的数据则表明PA、PB、PC的工作方式。
通过CS、A0、A1、RD和WR对4个寄存器进行操作。
1)CS为低电平时选通8255;2)A1、A0为地址选通;3)RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。
4)D0~D7为数据口。
向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下。
这里只介绍应用最多的方式0。
方式0下8255的PA、PB及PC口上半部分(PC7~PC4)和下半部分(PC3~PC0)中任何一个端口都可以设定为输入或输出,PC口还可以进行位操作。
控制寄存器各位的含义如图3所示。
SLPC-24中8255工作在方式0。
PA、PB为输入口、PC为输出口,对控制寄存器写入的数据为10010010B,即92H。