单片机原理及应用实验

上传人:仙*** 文档编号:35473573 上传时间:2021-10-27 格式:DOC 页数:29 大小:5.50MB
返回 下载 相关 举报
单片机原理及应用实验_第1页
第1页 / 共29页
单片机原理及应用实验_第2页
第2页 / 共29页
单片机原理及应用实验_第3页
第3页 / 共29页
点击查看更多>>
资源描述
单片机原理及应用实验指导说明书信息物理与工程系王春勇2003年5月2日实验一 指令系统实验一、实验目的:掌握仿真器的安装、连接和调试方法开始除数为零清部分余数,装计数器R1置溢出标志部分余数、被除数左移部分余数-除数够减上商,建立新余数次数到余数最高位是1余数*2除数商+1清溢出标记返回YNYYYYNNNN掌握MEDWIN软件的使用掌握程序的编辑、编译和调试方法熟练掌握MCS-51单片机指令系统二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理仿真器是单片机开发过程中不可缺少的重要仪器,它能在仿真软件的控制下,完成MCS-51单片机的所有软件和硬件功能。并能实现编辑、编译/汇编、在线及模拟调试,能实现单步、连续、和设置断点运行,并能在PC机上显示单片机当前运行结果和各功能寄存器状态。四、实验步骤 1仔细阅读MEDWIN软件使用手册,了解软件使用方法。2打开PC机,按照MEDWIN软件安装方法,安装MEDWIN软件到指定目录。3按格式输入编制好的汇编程序。4对程序进行编译,查找语法错误。5根据编译过程指出的错误,修改错误,重复第4步,直到编译通过。6开始调试,让程序单步运行,通过观察输出结果的变化,查找程序错误。7修改错误,并重新编译调试,使程序输出正确结果五、实验要求实验前要预习,熟悉MCS-51指令系统,了解GDEE-II实验系统的基本结构和各部分的功能,仔细阅读MEDWIN软件的使用手册,掌握软件的安装和基本功能的使用。实验中要求用汇编语言,编制一段双字节除法程序,控制单片机运行。在MEDWIN软件的控制下,使仿真器工作在单步运行模式,通过观察各输出窗口,查找程序错误,最终使程序正常运行。双字节除法程序流程图如右:六、实验结果 在寄存器中输入给定数,检查输出结果是否正确。实验二 静态显示实验一、实验目的1 进一步掌握仿真器的使用和MEDWIN软件的调试方法。2 掌握由双字节16进制数转换为压缩BCD码的软件编制3 掌握输出接口的硬件连接方式和软件控制方法。4 掌握口地址的取得方法5 掌握7段LED显示原理二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理7段LED有共阴极和共阳极两种,当公共极为“0”,当阳极上输入“1”时,所选段被点亮,否则,LED不亮,这种LED称为共阴极;与之相反,当公共极为“1”,当阴极上输入“0”时,所选段被点亮,否则,LED不亮,这种LED称为共阳极。为了在LED上显示数字,首先要把数字转换为相应的段码,又称为字型码或字模。这一转换可通过硬件和软件来实现。在本实验中,字型转换通过硬件来实现。静态显示电路原理如下,它主要由四部分组成:1) 四位共阴极七段LED显示器。2) 由四片CD4511芯片组成的硬件译码电路,实现从BCD码到7段码的转换和电流驱动。3) 数据锁存部分,由两片74HC374组成。由于每个BCD码只要四位,而74HC374是一个8位数据锁存器,因此只要两片(U2、U3)74HC374就可锁存四位LED要显示的数据。4) 地址锁存译码部分,由地址锁存器74HC373和地址译码器74HC138组成,U2、U3的片选地址由U4:74HC138译码提供,根据电路结构,可得U2、U3的口地址分别为83H、84H。四、实验步骤1 分析静态显示电路原理;2 选择双字节16进制数转换为压缩BCD码的合适算法;3 根据静态显示原理和所选择转换算法,绘制相应的转换及显示流程图;4 按流程图编制单片机程序;5 进行程序编译,检查软件语法错误,如存在语法错误,则重复4 ,直到编译通过;6 连接仿真器和实验仪,并检查是否连接正确;7 进行单步调试,检查程序是否存在功能错误,如存在错误,则进行修改,返回步骤5,直至输出正确结果。五、实验要求实验前通过预习,掌握静态显示的基本原理,了解相关电路芯片的使用方法,绘制程序流程图。实验中要进一步掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的一般步骤,通过调试,在LED上正确显示任意双字节16进制数的BCD码。六、实验结果在程序进行编译、调试之后,能在LED上正确显示任意双字节16进制数的BCD码。实验三 动态显示实验一、实验目的1 掌握MEDWIN软件的使用和仿真器调试程序方法2 掌握动态显示的原理和电路组成原理3 掌握字模的制作方法4 掌握主程序、子程序的设计。5 掌握口地址的取得方法二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理动态显示实际上是利用人眼的视觉暂时停留原理而实现的,当某显示的闪烁频率大于25Hz时,人眼察觉不到闪烁的存在。动态显示就是让LED工作在脉冲状态,每次导通几毫秒,脉冲频率大于50Hz。由于工作在脉冲状态,瞬时导通电流较大,因此,选通电路要有电流驱动。为了使显示时每次只有一只LED被点亮,因此,每次只能有一个片选信号有效。在此实验中,字模译码采用软件译码,因此,首先要建立软件字模,存于ROM中,当显示时,查表就可得相对应的字模。如下动态显示电路原理图,它由四部分组成:1) 六位共阳极七段LED显示器,它们的段码都分别连在一起,称为A、B、C、D、E、F、G、H,选通信号分别连接,它们是DS1、DS2、DS3、DS4、DS5、DS6。2) 字模(段码)寄存驱动器,软件译码后,字模通过CPU写入到段码寄存驱动器U2(74HC374)中,由于段码的电流较小,因而没有添加更大电流的驱动器。3) 选通信号寄存器和驱动器,LED的选通信号写入到U3(74HC374)中,由于选通信号有较大电流流过,所以增加U5(MC1413)反相电流驱动器来驱动LED4) 地址锁存译码部分,由地址锁存器74HC373和地址译码器74HC138组成,U2、U3的片选地址由U4:74HC138译码提供,根据电路结构,可得U2、U3的口地址分别为80H、81H。四、实验步骤1. 根据电路原理编制动态显示软件流程2. 按流程图编制软件3. 编译检查软件语法错误,重复2 ,直到编译通过4. 连接好仿真器和实验仪,进行单步调试,查找程序错误。5. 修改错误,重新编译调试,使程序输出正确结果五、实验要求实验前通过预习,掌握动态显示的基本原理,了解相关电路芯片的使用方法和在电路中的作用,绘制程序流程图。实验中要进一步掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的一般步骤,通过调试,在LED上正确显示所须显示的字符。六、实验结果实验后能使动态显示器LED正常显示,无闪烁现象,显示字型正确。实验后,讨论动、静态显示在软、硬件实现及显示结果上的异同点。实验四 非编码键盘实验一、 实验目的1 掌握非编码键盘的电路原理和软件控制方法2 掌握非编码键盘的去抖方法3 掌握非编码键盘的键盘处理方法4 掌握行扫描和线反转实现键识别的软件实现方法二、 实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理键盘是一组开关的集合,是最常用的输入设备,键盘接口必须解决下列问题1 决定是否有键按下2 如果有键按下,决定是那一个键被按下3 确定被按键的读数4 能对按键的抖动进行抑制5 不管一次按键持续的时间多长,仅采样一个数据6 对同时有多个按键按下进行处理 一般键盘有编码键盘和非编码键盘。由于非编码键盘电路简单,所以,一般仪器中经常使用。下面是实验中4*4非编码键盘电路原理图:有两种方法能实现非编码键盘的键识别,一种是行扫描法,一种是线反转法,但后一种方法必须采用程控接口。行扫描方法是以步进扫描的方式,每次在键盘的一行发出扫描信号,同时检查列线输入信号,若发现某列输入信号与扫描信号一致,则位于该列和扫描行交点的键被按下。通过扫描,可识别是那一键按下。线反转法是借助程控并行口实现的,其实现方法是:1)使行线为输出口,输出“0000”,列线为输入口,读入此时的按键状态值;2)线反转,既行线为输入口,列线为输出口,输出“0000”,从行线读入此时按键状态值;3)根据两次的按键状态值决定是那一键按下。按键的去抖一般有两种方法,一种是硬件的,采用R-S触发器或J-K触发器,另外一种是用软件的方法,即延时去抖。在本实验中采用延时去抖。四、实验步骤1) 根据电路原理编制编码键盘软件流程2) 按流程图编制软件3) 编译检查软件语法错误,重复2 ,直到编译通过4) 连接好仿真器和实验仪,进行单步调试,查找程序错误。5) 修改错误,重新编译调试,使程序输出正确结果五、实验要求实验前通过预习,了解键盘工作的基本原理,特别掌握非编码键盘的按键识别的软件处理方法,绘制程序流程图。实验中要掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的方法和步骤,通过调试,在LED上正确显示从键盘输入的键值。每按一次,在LED上只显示一个键值。六、实验结果软件调试正确后,能正确识别所按按键,并在动态显示器上移位显示所输入键值。实验结束后,讨论两种键盘处理方法的优缺点。实验五 定时/计数器的使用一、实验目的1、 掌握定时/计数器的工作原理和控制方法2、 掌握TMOD、TCON寄存器中各位的功能及使用方法3、 掌握定时/计数器的初始化过程4、 掌握中断的控制方法5、 掌握中断矢量和中断程序的编制方法二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理MCS-51系列单片机有两个定时/计数器,它们在专用寄存器TMOD的控制下,可在软件的控制下,工作在四种模式。通过对控制寄存器TCON的控制,可使定时/计数器工作在中断或查询方式。MCS-51系列单片机有5个中断源,两级中断优先系统,可通过软件控制。定时/计数器实验电路原理图如下,其中动态显示系统如上一实验,可变时钟源控制参考GDEE-II光电EDA实验仪的使用说明。四、实验步骤1 按流程图编制软件2 编译检查软件语法错误,重复2 ,直到编译通过3 连接好仿真器和实验仪,进行单步调试,查找程序错误。4 修改错误,重新编译调试,使程序输出正确结果五、实验要求实验前通过预习,掌握定时/计数器的基本原理和控制方法,掌握中断过程和中断程序的编制方法,熟悉电路的连接,绘制程序流程图。实验中要进一步掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的一般步骤,通过调试,完成以下两部分工作:1)T1工作在定时状态,容许中断,产生1S标准时间,T0工作在计数状态,把1S时间内T0所计的数显示在LED上。2)T0工作在计数状态,测量INT0管脚上输入正脉冲的时间宽度。六、实验结果完成五中所要求的各项功能,在动态显示LED上显示运行结果。实验六 串口通信实验一、实验目的1 了解串口的工作原理2 掌握串口的软件编程控制方法3 掌握波特率的计算方法和串口的初始化过程4 进一步掌握中断的使用和键盘的控制5 了解RS232的传输标准二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理MCS-51单片机有一个全双工的通信接口,能同时进行发送和接收,同时也可做同步以为寄存器用。MCS-51单片机的串口由串口控制寄存器SCON控制,使它有四种工作模式和不同的波特率,还可工作在中断方式和查询方式。工作于模式1或3时,其波特率可变,可用下式来确定波特率:波特率=2SMOD/32 * (T1溢出速率)T1溢出速率=计数速率 / 256 TH1在实验中,显示和键盘电路如实验2、实验3,双机通信电路连接如下,由于MCS-51输出的是TTL电平,而我们一般在线路传输中采用RS232标准电平,因此要在接口中加入电平转换接口,实际中采用MAX202芯片实现TTLRS232和RS232TTL的转换。四、实验步骤1 按流程图编制软件2 编译检查软件语法错误,重复2 ,直到编译通过3 连接好仿真器和实验仪,进行单步调试,查找程序错误。4 修改错误,重新编译调试,使程序输出正确结果五、实验要求实验前通过预习,了解RS-232C的传输协议和要求,掌握单片机串口工作的基本原理和控制方法,掌握串口控制寄存器SCON的应用,了解串口各工作模式的工作原理,掌握串口波特率的设置方法和串口初始化过程,绘制串口工作程序流程图。实验中要掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的方法和步骤,实验要求实现双机通信,把键盘输入的键值通过串口传输出去,同时接收串口输入的数据,通过译码后,在LED上显示。在通信中要使用相同的通信协议,这样才能保证通信的畅通,在本实验中,通信中采用波特率=2400,数据位:8位,一个停止位,无奇偶校验。六、实验结果实验完后,实现双机通信,掌握要实现双机通信必须具备的条件。实验七 并行D/A转换实验一、 实验目的1 掌握D/A转换的工作原理2 掌握D/A转换芯片AD7528的工作原理3 掌握AD7528的工作时序和控制方法。二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理D/A转换器的功能是把数字量转换为与之成比例的模拟电压或者是模拟电流。其输出有电压型和电流型,下面是由R2R网络组成的电流输出型D/A转换原理图: 在实验中,D/A转换部分采用AD7528,它是一8位并行双输出D/A转换器,其工作时序如下:AD7528 工作时序图AD7528 的工作电路图如下,D0D8为并行数据输入端;与MCS-51单片机的数据总线相连。CS 为片选端,低电平有效;此信号由地址信号经74HC138译码后得到。地址为85H;WR 为写入信号,低电平有效;与MCS-51单片机的WR管脚相连。DACA/B 为内部DACA或DACB选择端,当此管脚电位为高时,DACB 被选中,模拟输出从OUT B 输出,当此管脚电位为低时,DAC A 被选中,模拟输出从OUT A 输出。此信号与MCS-51单片机的P2.7相连。四、实验步骤1 按流程图编制软件2 编译检查软件语法错误,重复2 ,直到编译通过3 连接好仿真器和实验仪,进行单步调试,查找程序错误。4 修改错误,重新编译调试,使程序输出正确结果五、实验要求实验前通过预习,了解D/A转换的基本原理,阅读AD7528使用说明,掌握此芯片的使用方法,绘制软件工作程序流程图。实验中要掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的方法和步骤,实验要求:制作一波形发生器,在OUT-A上输出一三角波,在OUT-B上输出锯齿波,两波形的变化范围为250个步距。实验八 串行A/D转换实验一、实验目的4 掌握A/D转换的工作原理5 掌握A/D转换芯片TLC549的工作原理6 掌握TLC549的工作时序和控制方法。7 掌握SPI串行接口的工作时序和由MCS-51单片机模拟产生SPI串行接口的方法二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理A/D是计算机控制中非常重要的一部分,按接口形式可分为并行输出和串行输出两种,按转换精度有四位、8位、10位、12位、甚至20位等多种,按转换速度有低速、高速和超高速之分,按转换方式有阶梯波比较式、逐次逼近式、直接比较式、双斜式、-式等等,各种ADC的具体原理请参考有关书籍。本实验中,A/D部分采用TLC549,它是一8位串行输出A/D转换器,其电路工作原理图如下:(P25、P26管脚交换,IN8接低电平) TLC549 电原理图如原理图所示,TLC549的参考电压接在电源电压上,通过可变电位器R2的中心抽头输入模拟电压,调节R2可调节输入电压,在模拟电压输入点可测量输入电压的大小,I/O CLK 管脚输入、输出时钟驱动,DATAOUT为数据输出脚,A/D转换后的数据由此脚串行输出,CS为片选输入脚,当CS为低时,此芯片被选通。TLC549的工作时序如下: 四、实验步骤1 按流程图编制软件2 编译检查软件语法错误,重复2 ,直到编译通过3 连接好仿真器和实验仪,进行单步调试,查找程序错误。4 修改错误,重新编译调试,使程序输出正确结果五、实验要求实验前通过预习,了解A/D转换的基本原理,阅读TLC549使用说明,掌握此芯片的使用方法,绘制软件工作程序流程图。实验中要掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的方法和步骤。要求实验中,根据TLC549所给出的时序图,由MCS-51单片机模拟产生SPI接口信号访问TLC549,读出A/D转换结果,在软件的控制下把二进制数转换为BCD码在动态显示器上显示输入模拟电压值。六、实验报告实验完后,软件正常运行,在动态显示LED上以BCD码显示输入电压。实验九 打铃器一、实验目的1 掌握外部数据存储器的硬件扩展方法2 掌握软件访问外部数据存储器的方法3 了解实时时钟芯片DS12887的使用4 掌握监控程序的设计方法5 提高综合运用键盘、显示和单片机系统资源的能力。二、实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、实验原理 DS12887是DALLAS公司生产的实时时钟芯片,它除了有14个控制寄存器外,还有114个通用存储空间,通过对此芯片的编程利用,可使学生了解一般外部存储器和I/O口的硬件连接和软件访问控制方法,学生通过编程控制此芯片,可以制作如数字钟、打铃器等实用程序,增加学生的学习兴趣,加深对课程的理解。DS12887 工作电原理图其中:D0D8: 双向地址/数据线;/RD: 数据有效。接CPU的读信号/RD;/WR: 读写使能端。接CPU写信号/WR;CS: 片选端,低电平有效。ALE: 地址有效,接CPU的ALE信号;IRQ: 中断请求输出端。DS12887内部有10个时标寄存器,4个状态寄存器和114个可供用户使用的静态RAM,其地址分配如下所示:000H0秒00H14字节1秒报警01H140DH2分02H150EH3分报警03H4时04H114字节5时报警05HRAM6星期06H(可供用7日07H户使用)8月08H9年09H10寄存器A0AH11寄存器B0BH12寄存器C0CH1277FH13寄存器D0DHDS12887 片内寄存器和RAM地址分配CPU可通过读时标寄存器得到时间和日历,也可通过编程设置其初值。地址为00H09H,10个时标值可以选择二进制码或BCD码表示。片内114个RAM,可供用户在系统掉电时保存有用数据,地址为0EH07FH。片内4个状态/控制寄存器A、B、C、D用来控制和指示芯片的工作状态,其内容可读写,地址为0AH0DH。下面对此四寄存器予以说明:A 寄存器寄存器A的格式如下:D7D6D5D4D3D2D1D0UIP/RS3RS2RS1RS0UIP:更新周期标志位。UIP=0 时,芯片正处于或将开始更新周期,此期间不容许读写时标寄存器。RS3、RS2、RS1、RS0:中断周期时间和SQW输出频率选择位。B 寄存器寄存器B主要用于设置DS12887的工作状态。其格式如下:D7D6D5D4D3D2D1D0SETPIEAIEUIESQWEDM24/12DSEPIE、AIE、UIE:分别为周期中断、报警中断、更新周期结束中断允许位。各位分别为1时,允许发相应的中断。SET:SET=0时芯片正常工作,每秒更新一次时标寄存器,此段时间为更新周期,SET=1时,芯片停止工作,此期间可编程时标寄存器。SQWE:方波输出允许。DM:时标用BCD或二进制数表示选择。DM=1选择二进制;DM=0选择BCD码。24/12:24小时制或12小时制选择。24/12 为1时选24小时制;24/12 为0时选择带上午、下午的12小时制。DSE:DSE=1 表示需要正常时制与夏令时转换;DSE=0不需转换。C 寄存器寄存器C为中断标志位寄存器。其格式如下:D7D6D5D4D3D2D1D0IRQFPFAFUF0000IRQF:片内中断请求标志。IRQF=PFPIE+AFAIE+UFUIE。当IRQF=1时,IRQ引脚变低,芯片中断请求有效。PF、AF、UF:这三位分别为周期中断、报警中断、更新周期结束中断各标志位。D 寄存器寄存器D只有一个标志位VRT(D7位),其它位均为保留位。VRT:片内RAM与寄存器数据有效标志位,读寄存器D,可使VRT自动置1。之后,片内寄存器、时标寄存器和114字节RAM数据有效,才可供系统使用。四、实验步骤1 按流程图编制软件2 编译检查软件语法错误,重复2 ,直到编译通过3 连接好仿真器和实验仪,进行单步调试,查找程序错误。4 修改错误,重新编译调试,使程序输出正确结果五、实验要求实验前通过预习,掌握MCS-51单片机扩展外部数据存储器的原理及方法,掌握实时时钟芯片DS12887的工作原理及控制方法,绘制软件工作程序流程图。实验中要掌握MEDWIN软件的使用,能正确连接仿真器和GDEE-II实验系统,掌握软件调试的方法和步骤。实验中,要求用软件能修改当前时间,并在动态显示LED上,按时、分、秒的顺序显示当前时间。运用键盘输入打铃时间,若当前时间与打铃时间相等时,打铃15秒(即蜂鸣器响)。打铃时间至少可设置10个。六、实验结果软件通过调试后能正常运行,达到实验要求中所须的效果。实验十 整数电子计算器一、 实验目的1 掌握监控程序的设计方法2 掌握键盘,显示的综合运用3 掌握整数加、减、乘、除的计算方法二、 实验仪器PC微型计算机一台SE-51P仿真器一台GDEE-II光电EDA实验仪一台三、 实验要求运用GDEE-II中已有的键盘和动态显示,设计一整数电子计算器,其中键盘有09数值键,加、减、乘、除、等于和清零等功能键,设计显示格式与普通计算器一样。四、 实验步骤1 绘制软件流程图,包括各功能程序流程图2 设计软件3 连接仿真器,调试程序五、 实验结果 通过此实验,加强学生对指令系统的理解和运用,掌握单片机系统监控程序的设计方法和结构形式。附录:实验程序清单1 双字节整数无符号数除法程序 入口地址:被除数(R2R3),除数(R4R5),部分余数(R6R7),商(R2R3)R1:循环次数 使用资源:R1,R2,R3,R4,R5,R6,R7,ACC,CY 出口地址:余数(R6R7),商(R2R3)DIV16:MOVR6,#0;MOVR7,#0;MOVR1,#16;CJNER4,#0,DIV0;CJNER5,#0,DIV0;LJMPERROR;DIV0:LCALLRL16;LCALLCOM16;MOVA,R3;ADDCA,#0;MOVR3,A;DJNZR1,DIV0;RET;入口地址:R6R7R2R3,出口地址:R6R7R2R3,功能:把R6R7R2R3,的数左移一位。RL16:CLRC;MOVA,R3;RLCA;MOVR3,A;MOVA,R2;RLCA;MOVR2,A;MOVA,R7;RLCA;MOVR7,A;MOVA,R6;RLCA;MOVR6,A;RET;入口地址:R6R7,R4R5出口地址:R6R7,CY;功能:实现R6R7与R4R5的比较,当R6R7大时R6R7R6R7R4R5,CY1; 当R6R7小时R6R7R6R7,CY0;COM16: MOVA,R6CJNEA,R4,COM1;MOVA,R7;CJNEA,R5,COM1;JNCCOM2;CLRC;RET;COM2:MOVA,R7;CLRC;SUBBA,R5;MOVR7,A;MOVA,R6;SUBBA,R4;MOVR6,A;SETBC;RET;键盘扫描程序:#include #include #define LED11 PBYTE0x80#define LED12 PBYTE0x81#define LED13 PBYTE0x83#define LED14 PBYTE0x84#define DADB PBYTE0x85#define Sec PBYTE0x00#define Min PBYTE0x02#define Hour PBYTE0x04#define Day PBYTE0x07#define Mon PBYTE0x08#define Year PBYTE0x09#define TRA PBYTE0x0A#define TRB PBYTE0x0B#define TRC PBYTE0x0C#define TRD PBYTE0x0Dsbit COL1 = P10; /* 定义P1.0口地址 */ sbit COL2 = P11; /* 定义P1.1口地址 */ sbit COL3 = P12; /* 定义P1.2口地址 */ sbit COL4 = P13; /* 定义P1.3口地址 */ sbit ROW1 = P14; /* 定义P1.4口地址 */ sbit ROW2 = P15; /* 定义P1.5口地址 */ sbit ROW3 = P16; /* 定义P1.6口地址 */ sbit ROW4 = P17; /* 定义P1.7口地址 */ sbit OUTB = P27; /* 定义P2.7口地址 */ sbit DACS = P25; /* 定义P2.5口地址 */ sbit DACK = P26; /* 定义P2.6口地址 */ sbit DAD0 = P33; /* 定义P3.3口地址 */ code unsigned char TDA=0x3F, 0x06, 0x5B, 0x4F, 0x66,0x6D, 0x7D, 0x07, 0x7F, 0x67;code unsigned char Scan = 0xEF, 0xDF, 0xBF, 0x7F;code short int LeftShift = 0x0, 0x4, 0x8, 0xC;idata unsigned char txdata = NJUST 0211090134 106040542 XURONGn;void AD();void DA();void Com();void CountAdd();void LedDisplay();void LedStaticDisplay(unsigned int t);void LedDynamicDisplay(unsigned long int t);void KeyBoard();void KeyStateChange(short int Key, bit State);void Delay(unsigned int t);unsigned int StaticLedCount;unsigned long int DynamicLedCount;void main()unsigned int tim;unsigned char trd;TRB = 0x06;trd = TRD;while (1)/while (TRA & 0x80) = 0);tim = Sec;tim += (Min * 100);tim += (Hour * 10000);LedDynamicDisplay(tim);void AD()short int i;unsigned short Vol;unsigned short Add;while (1)DACK = 0;DACS = 0;Vol = 0;Add = 128;for (i = 8; i 0; i-)DAD0 = 1;if (DAD0 = 1)Vol += Add;Add = Add 1;DACK = 1;DACK = 0;DACS = 1;LedDynamicDisplay(Vol);void DA()unsigned short int way1 = 125;unsigned short int way2 = 0;short int step1 = 1;while(1)OUTB = 0;DADB = way1; OUTB = 1;DADB = way2;way1 += step1;if (way1 200)step1 = -1;way2 = 248;else if (way1 9999)StaticLedCount = 0;DynamicLedCount+;if (DynamicLedCount 9999999999)DynamicLedCount = 0;void KeyStateChange(short int Key, bit State)LED14 = Key / 10 * 0x10 + Key % 10;LED13 = State;DynamicLedCount+;unsigned int GetKeysState()unsigned int Keys = 0;short int i;for (i = 0; i 4; i+)P1 = Scani;Keys += (P1 & 0xF) LeftShifti);return Keys;void KeyBoard()static unsigned int KeysOld = 0xFFFF;unsigned int Keys;unsigned int Keys1;unsigned int GetBit;short int i;bit state;Keys = GetKeysState();if (KeysOld != Keys)doDelay(1000);Keys1 = Keys;Keys = GetKeysState();while(Keys != Keys1);KeysOld = KeysOld Keys;GetBit = 0x1;for (i = 0; i 1;GetBit = GetBit 1;KeysOld = Keys;void LedStaticDisplay(unsigned int t)short int ledt1, ledt2; static short int ledb1 = 1;static short int ledb2 = 1;long int ledt3;/ Static Ledledt1 = t;ledt3 = ledt1 / 10;ledt2 = ledt1 - ledt3 * 10;ledt1 = ledt3 / 10;LED13 = (ledt3 - ledt1 * 10) * 0x10 + ledt2; ledt3 = ledt1 / 10;ledt2 = ledt1 - ledt3 * 10;LED14 = ledt3 % 10 * 0x10 + ledt2; / End of SLvoid LedDynamicDisplay(unsigned long int t)short int ledt1, ledt2; static short int ledb1 = 1;static short int ledb2 = 1;long int ledt3;/ Dynamic Ledledt3 = 1;ledt2 = 6 - ledb1;for (ledt1 = 0; ledt1 ledt2; ledt1+)ledt3 *= 10;ledt3 = t / ledt3;LED11 = 0;LED12 = ledb2;ledt2 = ledt3 % 10;LED11 = TDAledt2; ledb1+;ledb2 = ledb2 6)ledb1 = 1;ledb2 = 1;/ End of DLvoid LedDisplay()LedStaticDisplay(StaticLedCount);LedDynamicDisplay(DynamicLedCount);void Delay(unsigned int t)unsigned int i;for (i = 0; i t; i+);As of Microsoft Internet Explorer 4.0, you can applmultimedia-style effects to your Web pages using visual filters and transitions. You can apply visual filters and transitions to standard HTML controls, such as text containers, images, and other windowless objects. Transitions are time-varying filters that create a transition from one visual state to another. By combining filters and transitions with basic scripting, you can create visually engaging and interactive documents.Internet Explorer 5.5 and later supports a rich variety of optimized filters. Click the following button to see a demonstration of many of these filters and how to usetheProcedural surfaces are colored surfaces that display between the content of an object and the objects background. Procedural surfaces define each pixels RGB color and alpha values dynamically. Only the procedure used to compute the surface is stored in memory. The content of an object with a procedural surface applied is not affected by the procedural surface.警告:此类已序列化的对象将不再与以后的 Swing 版本兼容。当前的序列化支持适合在运行相同 Swing 版本的应用程序之间短期存储或 RMI。从 1.4 版开始,已在 java.beans 包中加入对所有 JavaBeansTM 的长期存储支持。请参见 XMLEncoder。引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。这里我们采用的是Java语言,Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!