1、 运行Keil C软件,选择建立工程,编写源程序,并添加到工程中,然后进行编译。3、进行实验 运行AVR studio软件,点击工具栏选择芯片AT89S52,在FLASH操作框中选择欲加载的.HEX文件,点击program,将程序写入到单片机中,当写入完成后即自动运行。4、观察并记录实验结果。如现象不正确,返回第2步。实验电路板图(一)实验电路图实验一、读程序存储器及简单I/O实验一、实验要求:1、P1口作输出口,接8只发光二极管,程序存储器的0500H0509H单元依次存放着数字09的ASCII码,编程将其依次读出写入到内部RAM的30H39H单元,并同时送P1口输出显示。2、P1口作输出口
2、,接8只发光二极管,编写程序,使发光二极管循环点亮。二、实验目的 1、熟悉实验系统的使用及调试方法。2、学习80C51汇编语言程序编写。3、学习P1口的使用方法。4、学习延时子程序的编写和使用。三、实验电路及连线 P1.0-P1.7接LED1-LED8 四、实验说明1、发光二极管当输入为0时点亮,1时熄灭。2、为了使发光二极管显示的ASCII码(实验1)以及循环点亮(实验2)明确看清,可采用多重循环的软件延时。五、实验报告要求 1、列出实验的汇编程序,画出实验连线图。2、列出实验步骤,记录实验结果。3、分析结果,得出结论。实验二、定时器实验由AT89S52内部定时器0,按方式1工作,即作为16
3、位定时器使用每0.05秒T1溢出中断一次。P1口的P1.0P1.8分别接8个发光二极管。要求编写程序模拟一时序控制装置。开机后第一秒钟L4,L5亮,第二秒钟L3,L6亮,第三秒钟L2,L7亮,第四秒L1,L8亮,第五秒L2,L7亮,第六秒L3,L6亮,第七秒L4,L5亮,第八秒L1,L2,L3,L4亮,第九秒L5,L6,L7,L8亮,第十秒全亮,第十一秒全灭。然后再从头循环。1、学习80C51内部定时器的使用和编程方法。2、学习中断处理程序的编程方法。三、实验电路及连线同实验一,P1.0-P1.7接LED1-LED81.关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。2.内部计
4、数器用作定时器时,是对机器周期计数。因为实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下方法计算:机器周期=1211.0592MHz1.0857S(65536-定时常数)*1.0857S=50mS定时常数4C00H3.在中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。1、画出实验电路原理图。2、画汇编程序流程图,并记录实验的汇编程序。3、列出实验步骤,记录实验结果。六、参考程序流程主程序:1、设置初始常数 2、开中断 3、等待中断 中断服务程序 1、保护现场 2、置计数常数 3、判断是否到1秒。是,步
5、骤4;否,步骤7。4、查表 5、显示数据 6、调整表格指针 7、恢复现场 8、中断返回实验三、外部中断实验由键盘生成外部中断信号,当任意键按下时,为外部中断请求信号,此时L2,L4, L6,L8亮,持续时间为5秒。1、进一步熟悉80C51内部定时器的使用和编程方法。2、学习外部中断的使用和编程方法。3、学习中断嵌套程序的编写方法。P1.0-P1.7接LED1-LED8,P0.0-P0.3接S4-S7,INT0接P3.2。1. S4-S7为键盘提供输入信号,为了实现任意键按下时,INT0引脚输出低电平,S4-S7输入应为全0。2外部中断0(高级)与定时器0(低级)形成两级中断嵌套。3外部中断时的
6、5秒延时可以采用软件延时或使用定时器1。1、 设置T0,T1初始常数 2、 设置中断优先级3、 开中断 4、 启动T0计数5、等待中断 T0中断服务程序 4、查表,显示数据 5、调整表格指针 6、恢复现场 7、中断返回INT0中断服务程序2、显示数据3、停止T04、置T1计数常数,启动T1计数 注:T1采用查询方式,也可采用中断嵌套5、判断是否到5秒。是,步骤5;否,等待。6、停止T1计数 注:步骤4-6可由软件延时代替7、启动T0计数,恢复现场 实验四、 扫描键盘及LED显示实验一、实验要求利用P1口与行列式键盘接口,分别定义8个按键,每个按键对应一个发光二极管,编写键盘扫描程序,当按键按下
7、时,对应的二极管点亮;当没有定义的其它按键按下时,二极管全灭。二、实验目的1.学习在单片机系统中扩展行列式键盘的方法。2.学习扫描键盘的实现方法。键盘:P1.0P1.7分别接键盘S0S7,中断式:P3.2接INT0,扫描式不接P3.2P0.0-P0.7接LED1-LED8。1. 首先画出实验用电气原理图(键盘和LED接口电路图);2. 根据电气原理图连线,分别编写中断式及扫描式键盘扫描程序;3. 根据设计的电气原理图,连线4. 下载程序,运行五、实验报告1. 画出电气原理图;2. 附上完整的程序代码;3. 画出程序流程;4. 具体说明中断式及扫描式键盘扫描的实现方法;实验五 单片机与PC机串行
8、通信实验AT89S52串行通信口工作在方式1,8位UART方式,允许接收,9600bps。在PC机上运行串口调试软件。编程实现,1)单片机接收PC机发送的数据并回送给PC机显示,可同时送LED显示;2)AT89S52内部定时器1,按方式1工作,每1秒钟内部RAM30H单元内容加1,并通过串行通信口送PC机显示。1、学习80C51串行通信口的编程方法。三、实验线路用RS-232接口通信线连接实验系统与PC机。1、本次实验为两个程序。2、在PC机上运行串口调试软件,设置波特率为9600bps,无奇偶校验位。3、正确连线,编写并下载运行AT89S52串行通信程序。4、观察并验证实验结果。实验六 I2
9、C串行总线存储器读写实验由AT89S52内部定时器1,按方式1工作,每1秒钟24LC32的0001H单元内容加1,以键盘作为外部中断输入信号,有键按下时,读取0001H单元内容并送LED显示。1、进一步掌握定时器和外部中断的使用方法。2、学习80C51与I2C串行总线器件的接口方法。3、学习80C51模拟I2C总线的编程方法。P0.0-P0.7接LED1-LED8,P1.0-P1.3接S4-S7,INT0接P3.2。SDA接P1.7,SCL接P1.6,A0、A1、A2接地1、以内部数据存储器30H单元作为缓存,暂存定时信息,即1秒钟加1,然后再写入到24LC32中。2、器件地址为0,采用字节写
10、及读随意地址,读写地址均为0001H。3、参考教材中程序例子,编写模拟I2C总线的子程序。4、外部中断程序中,读24LC32送LED显示。2、画程序流程图,说明24LC32读写方法。3、记录实验的汇编程序。4、列出实验步骤,记录实验结果。主程序略,参考实验三。T1中断服务程序 否,步骤6。4、30H内容加2 5、调用写24LC32子程序 2、停止T1计数3、调用读24LC32子程序4、读出的数据(在累加器A中)送LED显示5、启动T1计数注:调用读24LC32子程序会引起T1定时误差,此处忽略不计。写24LC32子程序1、 发送起始位2、 发送写控制字节1010 0000B3、 发送应答位4、
11、 发送两个地址字节,中间需发送应答位5、 发送30H内容6、 发送应答位7、 发送停止位8、 返回读24LC32随意地址子程序5、 发送应答位6、 发送起始位7、 发送读控制字节1010 0001B8、 发送应答位9、 读一个字节到ACC10、 发送非应答位11、 发送停止位12、 返回实验七、 扫描键盘及液晶显示实验利用P1口与行列式键盘接口,编写键盘扫描程序,把按键输入的键码,显示在LCD液晶显示器上。3.学习液晶显示的接口及程序设计方法。P2.0-P2.7接LCD数据脚DB0-DB7,P3.4接LCD RS脚,P3.5接LCD RW脚,P3.6接LCD E脚,P3.7接LCD PSB脚四、
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1