基于51单片机的LED点阵显示系统

基于51单片机的LED点阵显示系统
基于51单片机的LED点阵显示系统

中南民族大学

毕业论文(设计)

学院:电子信息工程学院

专业:电子信息工程年级:2004

题目: 基于51单片机的LED点阵显示系统

学生姓名:皮本元学号:04071090 指导教师姓名: 危立辉职称: 副教授

2008年5月31日

中南民族大学本科毕业论文(设计)原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。

作者签名:

年月日

目录

摘要: (1)

Abstract (1)

1 引言 (2)

2 系统方案 (2)

2.1 系统框图 (2)

2.2 方案比较 (3)

2.2.1 显示方式的选择 (3)

2.2.2 点阵信息的提取方式 (4)

4 硬件设计 (4)

4.1 显示控制电路 (4)

4.2 显示驱动部分 (5)

4.3显示接口 (7)

5 软件设计 (7)

5.1 软件总体设计 (7)

5.2 汉字点阵信息的获取 (8)

5.3 汉字的固定显示以及左移和上移的实现 (9)

5.3.1 固定显示方式 (10)

5.3.2 左移显示方式 (10)

5.3.3 上移显示方式 (10)

6 工艺设计 (11)

6.1 接口设计 (11)

6.2 显示模块可扩展性的实现 (11)

7 总结 (12)

致谢 (12)

参考文献 (12)

基于51单片机的LED点阵显示系统

摘要:LED显示屏作为一种显示媒体,随着大规模集成电路和计算机技术的进步,得到了飞速发展。LED显示屏具有亮度高、动态显示效果好、故障低、耗能少、使用寿命长、性价比高等优势,已广泛应用于各行各业。本文介绍了一种以单片机AT89S52为核心的点阵LED 显示系统的设计与制作过程,包括汉字显示的硬件电路、PCB设计、软件设计及调试等方面。该系统通过RS-232与上位机通信,上位机可以发送指令给AT89S52单片机控制系统,该控制系统驱动显示电路,实现了L E D 显示屏多种显示方式和状态。本文详细说明了利用AT89S52单片机最小系统实现汉字显示的原理及编程思路。

关键词:单片机 LED点阵 PC机取字

Display Chinese characters

by MS-51 single chip on LED lattice

Abstract: LED display was widely used in many industries due to its excellent features such as full color, high efficiency, high brightness, long lifetime and low power consumption. In this article, we introduce the process of designing a LED displaying system controlled by A T89S52,concluding hardware design、PCB design、software design and debugging .this system communicate with PC through RS-232.The PC can send instructions to the control system based on AT89S52,then this system drive the displaying circuit, and carried a variety of forms and states of displaying. This text in detail illustrates the working elements of how to design the displaying electrical circuit and use large-content memory to display Chinese characters.

Key words: Singlechip LED lattice Fetch words from Personal Computer

1 引言

随着图形点阵L E D 显示模块在各行各业的逐步使用,使得人机界面变得越来越直观形象,尤其对于国内大多数需要有汉字和图形显示的用户来说,显示界面的友好与否,将直接影响到其产品的形象和市场竞争力。该点阵L E D 显示屏[5],显示汉字和各种常见字符等信息,可广泛应用于各种场所。具有结构简单、安装方便、字型美观、图案清晰,采用高性能单片机控制,性能稳定,可靠性高。经过一条RS-232 串口线与电脑连接更换信息,操作简单,使用方便。

LED显示屏的设计方案,目前有两种:一种是以单片机为核心,单片机要完成所有的逻辑控制功能,采用这种方案设计的屏幕比较小;另一种是利用单片机控制可编程逻辑器件,单片机主要完成接收上位机数据、向大规模可编程逻辑器件发送数据等功能。大规模可编程逻辑器件负责驱动电路的各种时序。采用这种方案可以设计较大的显示屏,但这种方案的造价比较高。LED显示屏是多种技术综合应用的产品,涉及光电子学,半导体器件,数字电子电路,大规模集成电路,单片机及微机等各个方面,既有硬件又有软件。[1]

2 系统方案

2.1 系统框图

本系统主要分为串行通信模块,显示控制模块,存储模块,如图-1。基本工作流程为:[4]

①单片机以及显示模块初始化;

②上位机(PC机)发送数据(机内码);

③单片机接受数据送数据接受缓存区;

④通过机内码在字库中提取对应的点阵信息并送入显存中;

⑤单片机驱动LED点阵显示电路。

图-1 系统框图

2.2 方案比较

2.2.1 显示方式的选择 (1) 静态显示方式

该方案的特点是每一位数据寄存器对应一颗发光管, 可以用较小的电流驱动发光管, 这更有利于延长发光管的寿命, 户外屏和高档的显示屏, 例如全彩屏通常采用这种驱动方式。但是这种显示方式成本高,硬件电路设计复杂,见图-2;

图-2 静态显示方式

(2) 动态显示方式

该方案的特点是每一时刻只有一行发光管被点亮, 列电路可以复用, 从而节约了元器件成本。但是,点亮发光管的瞬态电流较大, 通常是平均电流的数倍甚至十几倍。对于规模不是太大的显示模块比较适用,见图-3。

图-3 动态显示方式

综合比较两种方案和本系统设计的要求,我选择第二种方案。

2.2.2 点阵信息的提取方式

(1) 直接提取方式

该方案是直接由上位机(PC机)通过串口发送32字节的汉字点阵信息到数据显示缓冲区,然后送显。该方案节省了单片机通过字库提取点阵信息的步骤,显示更直接,但缺点是给用户带来不便,见图-4。

图-4 直接提取方式

(2) 间接提取方式

该方案可以直接在上位机(PC机)输入汉字,然后通过串口将对应的机内码(2字节)传输到单片机的数据接收缓冲区,然后由单片机进行处理,从存储有字库的外部flash 中读取32字节点阵信息到显示缓冲区。见图-5。

图-5 间接提取方式

比较两种方案,虽然方案二涉及到对大容量存储器的操作,但是它对于用户来说更加的方便、直观,因此,我选择该方案。

4 硬件设计

4.1 显示控制电路

控制部分以单片机AT89S52为核心,辅以外围电路,完成串行通信、外部存储器读取、行列选通信号输出等任务。在PC 机内部,汉字是以机内码的形式存储的,每个汉字占两个字节。单片机AT89S52将PC机发送过来的数据放到WS6264中开辟的数据缓存区。AT89S52的通过由数据缓存区中存储的汉字内码,并将其换算成汉字首地址,从AT29C040A (512K*8)的字库中提取相应的汉字(一组32 字节的数据),对应于显示屏排列好存贮到片外R A M (WS6264)中,重复上述过程将所有的汉字都提取出并排列存储好,最后由AT89S52将RAM 中的数据经P1.0~P1.4和P3.2输出给显示驱动电路。汉

字库的制备与普通程序存储器的烧录并无区别。将汉字库文件以二进制形式打开,通过编程器烧录到AT29C020A中即可。AT29C020A的18位地址和WS6264 的13 位地址信号分别由P0 口(经锁存器74HC373 输出作为地址线)、P2 口、P3 口(P3.4~P3.5)产生。FLASH(AT29C020A)、RAM(6264)与单片机的接口如图-6所示[1]。单片机89S52 通过AD0~A D 7 地址数据复用引脚来选通地址并读写数据。[7][8]

图-6 单片机与外围电路接口

4.2 显示驱动部分

LED 点阵选用16×16模块,每2 块排列成一个16 × 32 的点阵,用于显示两个汉字。点阵每一行的所有L E D共阳极,每一列的所有L E D 共阴极。行列驱动均由754LS595驱动,该芯片具有串行输入、并行输出两个独立的时钟信号。输入数据在串行移位时钟SRCLK 上升沿由串行输入端SER 输入到芯片内部串行移位寄存器中,同时, SQH 端串行输出;在锁存时钟信号RCLK 上升沿到来时,芯片将内部串行移位寄存器8 位数据并行输

出。正常工作时,应将复位端SRCLR 与使能端RCLK 分别接高电平、低电平。单片机输出信号直接与串入并出移位寄存器74HC595 的锁存器输出端连接。列数据使用两片754LS595级联得到,可以得到16 列的列数据信号。列扫描信号同样使用四片754LS595级联构成32位的串进并出移位寄存器,可以得到列扫描信号,考虑到754LS595的驱动能力有限,列扫描信号通过UNL2803与LED列扫描信号相连,每列可以得到500mA的灌入电流,驱动电路原理图如图-7所示。[3]

图-7 显示驱动电路

4.3显示接口

图-8 显示接口

5 软件设计

5.1 软件总体设计

程序可以实现与计算机的通信,可非常方便地任意修改所要显示的汉字;并使显示屏可固定、平移地显示汉字。程序中将数据存储器分为三个区:显示缓冲区,数据存储区,和接收缓冲区。单片机通过串口接收PC 机传来的数据暂时放在接收缓冲区,处理后放入数据存储区保存,然后再根据显示方式从数据存储区中读出数据放入显示缓冲区用于显示。程序功能框图如图-9 所示。软件系统采用模块化结构,包括主程序、显示

子程序和串口中断服务程序等。主程序为顺序结构,完成中断、串口的初始化设置后,循环调用显示子程序,以及响应串行接收或发送中断;显示子程序从显示缓冲区取出字模.中断服务程序串口接收P C 机发送的汉字机内码数据,实现与计算机实时通信。程序各部分的功能由各个模块分别实现。程序模块有:串口初始化模块、数据输入模块、汉字首地址计算模块、取字模块、显示模块和移动模块。[6] [9]

图-9 软件流程图

5.2 汉字点阵信息的获取

对UCDOS7.0,汉字点阵信息存于相应点阵字库中,对16×16 点阵汉字,其点阵字库文件为?UCDOS\HZK16,每个汉字占32个字节,横向排列,这一字库收集了国标一、二级汉字及图形符号7445 个,在文件中按区位码顺序排列。通过PC机和单片机的串口通信将汉字的机内码传送到单片机的接受缓存中,再根据机内码与区位码的函数关系,求出汉字的区码和位码。设汉字机内码的高低两字节的十六进制值分别为Gb_H和Gb_L,区位码的区码和位码分别为Qm和Wm,则求区码和位码的算式为:

Qm=Gb_H-0xA0 (1)

Wm=Gb_L-0xA0 (2)

(1)式和(2)式中的Qm 和Wm 分别是区码和位码的十六进制值,在程序设计时要予以

注意。最后用下式求出每个汉字点阵在文件中的首地址Dz:

Dz=(Qmd-1)×94×32+(Wmd-1)×32 (3)上式是汉字点阵在文件中的首地址的十进制表达式,Qmd 和Wmd 分别是区码和位码的十进制值。字模的长度则是由显示所用的点阵决定的, 以常用的16×16 点阵字模为例, 一个汉字字模要16×16 /8=32 个字节。因此从字模的开始依次读取32 个字节就可以得到该汉字16×16 的字模( 行字模) 。

5.3 汉字的固定显示以及左移和上移的实现

汉字的显示信息保存在显存中,该显存是由一个2K的RAM实现的,RAM具有读写速度快的优点,但是断电后存储信息丢失。在本设计中显示屏为64X128点阵,一共可以显示32个汉字,每个汉字的点阵信息为32字节,因此最小需要32x32字节=1K的存储空间,2K的RAM完全够用。

我们以16x32点阵显示汉字A和汉字B为例,见图-10。在显存中这两个汉字一共占据64字节的连续空间(纵向取模)。下面我将分别介绍三种显示方式的显示原理。

图-10 汉字存储格式

图-11 点阵显示汉字模型

5.3.1 固定显示方式

首先定义一个指向第一个显示的汉字的指针*p,在该例中指向图-10中的A0位置,在

固定显示方式中该指针不变;再定义一个指向显示数据的指针*q,该指针首先被赋值为p ,即指向第一个显示的汉字的首地址,即A0.在列扫描信号位于第一行时,q 指针指向A0,当输出了汉字A 的第一列数据后指针p 向后移动2个字节,然后输出第二列数据,依次输出完64字节的数据后指针重新指向p ,反复循环。 5.3.2 左移显示方式

同样定义一个指向第一个显示的汉字的指针*p,在该例中指向图-10中的A0位置,再定义一个指向显示数据的指针*q,该指针首先被赋值为p ,即指向第一个显示的汉字的首地址,即A0.在列扫描信号位于第一行时,q 指针指向A0,当输出了汉字A 的第一列数据后指针p 向后移动2个字节,然后输出第二列数据,依次输出完64字节的数据后,指针p 加2,指针q 重新指向p ,反复循环。 5.3.3 上移显示方式

该显示方式中,实现的效果为2个汉字同时上移。为实现该种显示方式,需要对列数据进行处理。如果现在已经显示了汉字A 和B ,如果接着输出的汉字为C 和D ,则将汉字C 和D 的列数据分别向上移一位,这样便实现了数据的整体上移,见图-12。

图-12 汉字移动示意图

6 工艺设计

6.1 接口设计

本设计中涉及到的电路板有单片机最小系统板、外围器件、显示模块,为了美观接口均设计成机械式接口。

6.2 显示模块可扩展性的实现

为了可以达到无限扩展,我们将64x128 LED显示屏分成16块,每一块由16x32点阵构成,见图-14。该设计使得PCB制作过程变得容易,而且使得拼接任意大小的矩形显示屏成为可能,只需改动软件少许即可。[2]

从本设计可以看出,第一块和第二块的行信号是并联的(数据同步更新),列信号时串联的(列选信号向右传递);第一块和第三块的行信号是串联的(数据向下传递),列信号时并联的(列选信号同步更新),第三块和第四块的信号连接情况同第一块和第二块的信号连接。[5]

图-14 系统扩展示意图

7 总结

本文的点阵L E D 显示系统以单片机AT89S52为基础,加以外围电路,利用RS-232 接口实现与计算机实时通信,可实现汉字、数字及各种字符的多种方式的显示。经实际应用验证,本显示屏作为信息显示屏,工作稳定,字符清晰,字体美观,亮度适中,根据需要可选择多种显示字幕效果,并具有分布灵活、扩展方便等优点。

致谢

在此次的毕业设计中,特别感谢危立辉老师和陈锟老师的指导,以及给我提供帮助的同学,从他们的建议中我受益匪浅。

在这个过程中我学到了许多课本上没有的知识,比如说分析问题的方法、作品的工艺设计等。我觉得首先要对系统整体方案的把握,一旦整体方案是对的,那么将为后续的制作带来很多的好处。其次便是细节,有时候细节也可以决定一切,比如说焊接,一旦这些方面出了问题,将给调试带来很大困难,甚至设计失败。另外养成良好的习惯也是必要的,比如说及时做好接口的标注,这将会避免因为接错线而对系统引起灾难性的损坏。在制作过程中最重要的也是最难的便是后期调试了,这需要设计者对系统整体有很清楚的认识,以及有综合考虑的能力,这是对设计者最大的考验。

参考文献

[1]侯坤.徐志永.MCS—51控制的LED点阵显示系统[J],科技情报开发与经

济,2006,16(14):202-203.

[2]廖逢钗. 点阵LED 大屏幕的设计[J], 三明高等专科学校学报,2002,19(4):66-72.

[3]韩润萍,陈小萍. 点阵LED显示屏控制系统[J],微计算机信息,2003,19(14):50-51

[4]郭兆正。LED点阵显示屏系统设计[J],渤海大学学报,2005,26(4):301-304。

[5]张学成,曾素琼. 一种可扩充LED点阵显示模块及其驱动设计[J], 计算机与现代化,

2007,143:123-124.

[6]简献忠,虞箐,熊晓君,赵虎,居滋培。基于80C51和KEIL C51的LED点阵显示系

统[J],2005,26(8):315-316.

[7]王为青, 程国钢. 单片机Keil Cx51应用开发技术[M]. 北京:人民邮电出版

社,2007.

[8]晁阳. 单片机MCS-51原理及应用开发教程[M]. 北京:清华大学出版社,2007.

[9]马忠梅,刘滨戚军. 单片机C语言Windows环境编程宝典[M]. 北京:北京航天航

空大学出版社,2003

基于单片机的LED点阵显示

设计 题目 姓名 焦作大学机电 工程学院 中图分类号: 基于单片机的LED点阵显示 专业名称: 学生姓名: 导师姓名: 职称: 学号: 焦作大学机电工程学院 2012年12 月 毕业设计

中图分类号:密级: UDC:单位代码: 基于单片机的LED点阵显示 LED-based LCD display microcontroller design 姓名学制 专业研究方向 导师职称 提交日期答辩日期 焦作大学机电工程学院

焦作大学机电工程学院毕业设计摘要 摘要 单片机自70年代问世以来得到蓬勃发展,目前单片机功能正日渐完善:单片机集成越来越多资源,内部存储资源日益丰富,用户不需要扩充资源就可以完成项目开发,不仅是开发简单,产品小巧美观,同时抗干扰能力加强,系统也更加稳定,使得它更加适合工业控制领域,具有更加广阔的市场前景;提供在线编程能力,加速了产品的开发进程,为企业产品上市赢得宝贵时间。此外单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。单片机的设计目标主要是增强“控制”能力,满足实时控制的需要。 本文的主要内容是掌握各种单片机的结构、接口、片上外设的特点,并用STC12C5410AD单片机的片上资源设计出适当的最小系统;并利用自行制作的单片机最小系统,完成一个简单应用(量程自动转换的电压表)的设计与软件及硬件设计制作,让读者掌握数字单片机最小系统的设计及单片机系统的应用方法。 关键字:单片机仿真器 LED点阵显示屏

Abstract MCU in modern life has been widely applied in the life of the very important position. It features becoming strong, involving various electronic applications. The work process for data collection, data processing and display, receiving terminals. Including specific control, display, A / D converter, level translation interface, such as personal computers. ADC0809 used to design 8-way data sampling, the use of MCS-51 microcontroller serial port to send and receive data. Show 8155, 75452, 7407 and in part by a LED digital display. Hardware design applications for electronic design automation tools, software design is modular programming method Key W ords: Single Chip Microcomputer Emulator LED dot matrix display

基于51单片机的led点阵显示

项目名称:基于51单片机的LED点阵显示器 目录 一、项目介绍 (2) 1.1 项目背景 1.2 功能介绍 二、电路结构 (3) 三、实现模块 (5) 四、运行程序 (7) 一、项目介绍 1.1项目背景 当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。目前,点阵式显示器件具体包括LED显示模块和LCD显示模块等。现在发展的LCD比较先进,LCD的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;随着社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工

作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。 1.2功能介绍 2本次设计的用单片机控制的显示电路使用比较简单,操作方便。它主要是通过一个8×8点阵来显示图案,通过不同的按键来选择控制图案的种类及显示方式。在通电以后,显示屏全亮,随后进入逐字显示状态。按下复位键K1,系统自动复位,显示diligent,随后进入待命状态。按键1、2、3、4分别控制不同的图案。另外,我们可以通k5键来控制字符移动速度的快慢。 二、电路结构 单片机最小系统设计 2.2.1 各部分具体电路 1 单片机的时钟电路 AT89C52单片机内部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。 内部时钟方式:利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图2-1电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为6MHz的石英晶体,电容器一般选择30PF左右。

51单片机实例程100讲全集

目录 目录 (1) 函数的使用和熟悉 (4) 实例3:用单片机控制第一个灯亮 (4) 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 (4) 实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 (5) 实例6:使用P3口流水点亮8位LED (5) 实例7:通过对P3口地址的操作流水点亮8位LED (6) 实例8:用不同数据类型控制灯闪烁时间 (7) 实例9:用P0口、P1 口分别显示加法和减法运算结果 (8) 实例10:用P0、P1口显示乘法运算结果 (9) 实例11:用P1、P0口显示除法运算结果 (9) 实例12:用自增运算控制P0口8位LED流水花样 (10) 实例13:用P0口显示逻辑"与"运算结果 (10) 实例14:用P0口显示条件运算结果 (11) 实例15:用P0口显示按位"异或"运算结果 (11) 实例16:用P0显示左移运算结果 (11) 实例17:"万能逻辑电路"实验 (11) 实例18:用右移运算流水点亮P1口8位LED (12) 实例19:用if语句控制P0口8位LED的流水方向 (13) 实例20:用swtich语句的控制P0口8位LED的点亮状态 (13) 实例21:用for语句控制蜂鸣器鸣笛次数 (14) 实例22:用while语句控制LED (15) 实例23:用do-while语句控制P0口8位LED流水点亮 (16) 实例24:用字符型数组控制P0口8位LED流水点亮 (17) 实例25:用P0口显示字符串常量 (18) 实例26:用P0 口显示指针运算结果 (19) 实例27:用指针数组控制P0口8位LED流水点亮 (19) 实例28:用数组的指针控制P0 口8 位LED流水点亮 (20) 实例29:用P0 、P1口显示整型函数返回值 (21) 实例30:用有参函数控制P0口8位LED流水速度 (22) 实例31:用数组作函数参数控制流水花样 (22) 实例32:用指针作函数参数控制P0口8位LED流水点亮 (23) 实例33:用函数型指针控制P1口灯花样 (25) 实例34:用指针数组作为函数的参数显示多个字符串 (26) 实例35:字符函数ctype.h应用举例 (27) 实例36:内部函数intrins.h应用举例 (27) 实例37:标准函数stdlib.h应用举例 (28) 实例38:字符串函数string.h应用举例 (29) 实例39:宏定义应用举例2 (29) 实例40:宏定义应用举例2 (29) 实例41:宏定义应用举例3 (30)

基于51单片机的汉字点阵显示设计

湖南科技大学测控技术与仪器专业
单 片 机 课 程 设 计
题 姓 学 名 号

指导教师 成 绩 ____________________
湖南科技大学机电工程学院 二〇一五年十二月制

湖南科技大学课程设计
摘要
LED 显示屏在我们的周围随处可见,它的应用已经普及到社会中的方方面面。作为 一种新型的显示器件,在许多场合都可以见到它的身影,不仅是它的应用使呈现出来的 东西更加美观,更重要的是它的应用方便,成本很低,除了能给人视觉上的冲击外,更 能给人一种美的享受。LED 显示屏是由多个发光二极管按矩阵形式排列封装而成,通常 用来显示时间、图文等各种信息。本设计是基于 ATS52 单片机的 16*16 点阵式显示屏, 该 LED 显示屏能实现 16*16 个汉字,简单的显示图像, 然后一直循环着显示下去。该设 计包含了硬件、软件、调试等方案,只需简单的级联就能实现显示屏的拓展,但要注意 不要超过负载能力。本次设计的作品体积小、功能多、方便实用、花费小,电路具有结 构简单、操作方便、精度高、应用广泛的特点。 关键词: LED,ATS51 单片机,显示屏
-2-

湖南科技大学课程设计
目录
摘要…………………………………………………………………………i 第一章 系统功能要求 ……………………………………………………1 1.1 系统设计要求 ……………………………………………………1 第二章 方案论证 …………………………………………………………1 2.1 方案论证 …………………………………………………………1 第三章 系统硬件电路设计 ………………………………………………1 3.1 AT89S51 芯片的介绍 ………………………………………………1 3.1.1 系统单片机选型…………………………………………………1 3.1.2 AT89S51 引脚功能介绍 …………………………………………2 3.2 LED 点阵介绍………………………………………………………2 3.2.1LED 点阵……………………………………………………………2 3.3 系统各硬件电路介绍 ………………………………………………3
3.3.1 系统电源电路设计介绍……………………………………………3 3.3.2 复位电路……………………………………………………………4 3.3.3 晶振电路……………………………………………………………4 3.4 系统的总的原理图……………………………………………………5 第四章 系统程序设计 ………………………………………………………5 4.1 基于 PROTEUS 的电路仿真……………………………………………5 4.2 用 PROTEUS 绘制原理 ………………………………………………6
4.3PROTEUS 对单片机内核的仿真 ………………………………………6
-3-

单片机LED点阵显示方法与程序代码

单片机LED点阵显示方法与程序代码 点阵的接法有共阴和共阳两种(共阳指的是对每一行LED来讲是共阳)。 由于51单片机驱动能力有限,亮度不够,所以一般需要三极管驱动,下图为一个8X8点阵原理图,仅仅是仿真,如果需要接实物的话,加上三极管才足够亮。 显示的方法有两种: 1、逐列扫描方式。如下图所示,P1口输出列码决定哪一列能亮(相当于位码),P2口输出行码(列数据)决定列上哪些LED亮(相当于段码),能亮的列从左向右扫描完8列(相当于位码循环移位8次)即显示出一帧完整的图像。 2、逐行扫描方式,与逐列扫描调换,即P2口输出位码,P1口输出段码,扫描完8行显示出一帧图像。 以逐行扫描为例,从上图可以很明了的知道点阵的显示原理了(红色表示高电平,绿色表示低电平),当把扫描速度加快,人的视觉停留,看见的就是一幅图或一个字了,如下图所示。

一、行扫描静态显示, 用51单片机实现上图静态显示的程序如下: #include #define uchar unsigned char #define uint unsigned int uchar code TAB[]={0x81,0xFD,0xFD,0xC1,0xBF,0xBF,0xBD,0xC3}; uchar i,t; delay(uchar t) { while (t--) {;} } void main(void) { while(1) { P2=0x01; for(i=0;i<8;i++) { P1=TAB; delay(100); P2=P2<<1|P2>>7; } } } 二、行扫描翻页显示 字码取模方式为逐行 第一次从字码数组中取出第1~8个数据置于列上,行扫描顺序为1~8行,显示一帧,第二次取第9~16个数据,行扫描顺序仍为1~8行,显示第二帧,第三次取第17~24个数据,…… 实现图显示效果的程序如下:

51单片机驱动16×16LED点阵显示动画汉字汇编程序

51单片机驱动16×16LED点阵显示动画汉字汇编程序 这里提供一个完整的AT89S51单片机驱动驱动led点阵显示具有动画效果的汉字的汇编程序列子. ORG 0000H ST: MOV A,#0FFH ;初始化 MOV P1,A MOV P2,A MOV P3,A MOV P0,A CLR A MOV R0,#50H ;显示缓存清0 MOV R1,#20H ;控制清0的次数 ST0: MOV R0,A INC R0 DJNZ R1,ST0 ;正文显示 CHINESE: MOV DPTR,#TAB1 ;查表指针指向TAB1 LCALL HZ ;结束动画 SCREE: MOV DPTR,#TAB2;查表指针指向TAB2 ACALL DD MOV DPTR,#TAB3;查表指针指向TAB3 ACALL DD MOV DPTR,#TAB4;查表指针指向TAB4 ACALL DD LJMP CHINESE ;显示8幅画面子程序,SCREE专用,用字模软件字要倒置(表必须深256字节) DD: MOV B,#00H

MOV R0,#08H ;显示8幅画面 AJMP CC CC0: MOV A,B ADD A,#20H ;指向下一幅画面 MOV B,A CC: MOV R7,#08H ;画面停留时间 MOV R3,B MOV 37H,R0 LCALL ENTER DIS00: LCALL DISPLAY DJNZ R7,DIS00 MOV R0,37H DJNZ R0,CC0 RET ;汉字上移子程序,可显示8个汉字,(表必须深256字节) HZ: MOV R3,#00H ;查表偏移量 MOV R5,#81H ;查表128次 MOVBACK: MOV R4,#10H ;使显示完一个汉字 MOVBACK0: MOV R7,#02H ;一桢画面显示时间 MOV R0,#6DH ;低8位R0指向显示缓存倒数第3个字节,以备与最后1个字节交换MOV R1,#6CH ;高8位R1指向显示缓存倒数第4个字节,以备与倒数第2个字节交换MOV R2,#10H ;存后移的次数 DJNZ R5,MOVBACK1 RET ;显示完该表,返回 MOVBACK1: MOV A,R0 ;低8位被后移的存单元数据暂存入A INC R0 ;后移两字节 INC R0 MOV R0,A ;放入要移的低8位数据 MOV A,R0 ;R0指向下一个要后移的存单元 SUBB A,#04H

最全最好的课程设计-51单片机电子日历时钟( 含源程序)

LED日历时钟课程设计 院系: 班级: 姓名: 学号: 指导教师: 2012 年06 月16 日

目录

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 第一章前言 数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k B ytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

基于C51单片机的8×8 LED点阵屏汉字显示..

单片机课程设计报告 —8×8 LED点阵屏显示“大”字 第一章设计内容及要求 (3) 第二章总体设计 (3) 2.1 系统框图.........................................................3、4 2.2 设计步骤 (4) 第三章各部分电路设计 (4) 3. 1 复位电路………………………………………………4 、5 3.2时钟电路……………………………………………5、 6 3.3显示电路.........................................................6、7 3. 4大字取模 (7) 3.5 LED 引脚连接方式..........................................8、9 3.6总体电路 (9) 第四章程序设计 (9) 4.1软件流图......................................................9、10 4.2大字的模 (10) 4.2主程序......................................................10、11 4.3 C51单片机开发工具:keil 4 Proteus使用方法...11、16 第五章仿真结果 (16)

第六章总结与体会................................................17、18 第七章参考文献 (18) 附录程序清单……………………………………………19、20 基于C51单片机的8×8 LED点阵屏汉字显示 一设计要求 1、设计一个8*8点阵LED电子显示屏 2、要求在目测条件下LED显示屏各点亮度均匀、充足,可静态显示一个大字。 二总体方案设计 2.1系统框图 根据设计要求与设计方案,硬件电路的设计框图如图1所示。硬件电路结构由8个部分组成:时钟电路、复位电路、按键接口电路、电源电路、点阵显示阳极电路、点阵显示阴极电路和8*8点阵显示电路。

51单片机点阵设计

51单片机点阵设计 在做点阵之前先来了解下点阵的原理和点阵显示的 过程。 点阵实际上就是64个单独的led灯排列为8行8列 ROW1-8、COL1-8分别控制行和列的1-8led。ROWx高电平、COLy低电平,对应的第x行、第y列led灯亮。 电路图

简化了实际应用电路硬件根据要求自己加 P3口驱动ROW P2口驱动COL 如何让点阵显示字符?点阵显示字符都是动态的,和多位的数码管一样,并不是一次就显示行或列,而是一次只显示1行,在很短的时间内将8行分别显示出来。由于时间很短,我们的眼睛是看不出来是分开显示的。以字符'1'为例。 分别显示8行 ROW-0x01 COL-0xef ROW-0x02 COL-0xe7 ROW-0x04 COL-0xef ROW-0x08 COL-0xef ROW-0x10 COL-0xef ROW-0x20 COL-0xef

ROW-0x40 COL-0xef ROW-0x80 COL-0xc7 源程序: #include ; unsigned char code NUM[8]={0xef,0xe7,0xef,0xef,0xef,0xef,0xef,0xc7}; #define ROW P3 #define COL P2 void main(void) { unsigned char i,j,k; while(1) { k=0x01; for(i=0;i 电路图

源程序 #include ; #include ; unsigned char code NUM[8]={0x00,0x00,0xe00,0x82,0xff,0x80,0x00,0x00}; #define ROW P3 sbit SI=P2^0; sbit RCK=P2^2; sbit SCK=P2^1; void HC595SendData(unsigned char SendVal) { unsigned char i; for(i=0;i<8;i++) { if((SendVal<

单片机编程全集(含源代码)

前言 (2) 基础知识:单片机编程基础 (2) 第一节:单数码管按键显示 (4) 第二节:双数码管可调秒表 (6) 第三节:十字路口交通灯 (7) 第四节:数码管驱动 (9) 第五节:键盘驱动 (10) 第六节:低频频率计 (15) 第七节:电子表 (18) 第八节:串行口应用 (19)

前言 本文是本人上课的一个补充,完全自写,难免有错,请读者给予指正,可发邮件到ZYZ@https://www.360docs.net/doc/d45883783.html,,或郑郁正@中国;以便相互学习。结合课堂的内容,课堂上的部分口述内容,没有写下来;有些具体内容与课堂不相同,但方法是相通的。https://www.360docs.net/doc/d45883783.html, 针对当前的学生情况,尽可能考虑到学生水平的两端,希望通过本文都学会单片机应用。如果有不懂的内容,不管是不是本课的内容,都可以提出来,这些知识往往代表一大部分同学的情况,但本人通常认为大家对这些知识已精通,而在本文中没有给予描述,由此影响大家的学习。对于这些提出问题的读者,本人在此深表谢意。 想深入详细学习单片机的同学,可以参考其它有关单片机的书籍和资料,尤其是外文资料。如果有什么问题,我们可以相互探讨和研究,共同学习。 本文根据教学的情况,随时进行修改和完善,所以欢迎同学随时注意本文档在课件中的更新情况。 基础知识:单片机编程基础 单片机的外部结构: 1、DIP40双列直插; 2、P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3、电源VCC(PIN40)和地线GND(PIN20); 4、高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5、内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6、程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7、P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1、四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2、两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3、一个串行通信接口;(SCON,SBUF) 4、一个中断控制器;(IE,IP) https://www.360docs.net/doc/d45883783.html, 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。教科书的160页给出了针对MCS51系列单片机的C语言扩展变量类型。 C语言编程基础: 1、十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2、如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3、++var表示对变量var先增一;var—表示对变量后减一。 4、x |= 0x0f;表示为 x = x | 0x0f; 5、TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6、While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)

单片机设计8X8LED点阵显示原理与编程技术

#i nclude unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delay(void) { unsigned char i,j; for(i=10;i>0;i--) for(j=248;j>0;j--); } void delay1(void) { unsigned char i,j,k; for(k=10;k>0;k--) for(i=20;i>0;i--) for(j=248;j>0;j--); } void main(void) { unsigned char i,j; while(1) {

for(j=0;j<3;j++)//from left to right 3 time { for(i=0;i<8;i++) { P3=taba[i]; P1=0xff; delay1(); } } for(j=0;j<3;j++)//from right to left 3 time { for(i=0;i<8;i++) { P3=taba[7-i]; P1=0xff; delay1(); } } for(j=0;j<3;j++)//from top to bottom 3 time { for(i=0;i<8;i++) { P3=0x00; P1=tabb[7-i]; delay1(); } }

基于51单片机的LED点阵设计

毕业设计(论文)题目: 院 (系): 专业: 姓名: 学号: 指导教师:

毕业设计(论文)任务书

近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,作为微型机的一个主要分支,单片机在结构上的最大特点是把CPU、RAM和ROM 存储器、定时器和多种I/O接口电路集成在一块超大规模集成电路芯片上。从它的组成和功能来看,一块单片机芯片其实就是一台计算机。 本次设计是采用MSC-51单片机来设计的四位数计算器, 采用C语言进行程序编写实现计算器功能。外接4X4的键盘,通过键盘扫描来完成输入数的控制,利用驱动电路使数值与结果在七段共阴极数码管上正常显示,并设有清零键可随时完成计算与显示的清零。计算器将完成的0至9999整数的一次加/减/乘/除运算。 执行过程如下: 开机即显示0,等待键入数值,当输入数字,将通过数码管显示出来,在输入+、-、*、/运算符之后,计算器在内部执行数值转换和存储,并等待再次输入数值,当在键入数值后将显示键入的数值,按等号就会在数码管上显示运算结果。 关键字:单片机计算器键盘扫描程序

n recent years, as computer penetration in the social field and large-scale development of integrated circuits, microcontroller applications are continually deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use, etc. therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and home appliances fields, As one of the main branch of microcomputer, microcontroller in the structure of the biggest feature is the CPU, RAM and ROM memory, timer and multiple I / O interface circuit integrated on a VLSI chip. The composition and function from its point of view, a single chip is actually a computer. This design is the use of MSC-51 microcontroller to design the four-digit calculator, using C programming language to achieve calculator functions. 4X4 external keyboard, the keyboard scan to finish by the number of control values and make the drive circuit to the cathode results in a total of seven-segment digital tube display properly, and has cleared at any time to complete key calculation and display clear. Calculator to complete an integer from 0 to 9999 plus / minus / multiply / divide. Implementation of the process is as follows: Power is displayed 0, waiting type value, when the input numbers, will come out through the digital display, the input +,-,*,/ operator, the calculator in the internal implementation of the numerical conversion and storage, and wait for the re-enter the value, when Type the value in the type of value will be displayed by an equal sign will be displayed in the digital control operation results. Key words: SCM calculator keyboard scan C language

51单片机 8x8点阵显示程序参考

本程序用的是51单片机控制8*8点阵显示I(心形)U #include #define uint unsigned int #define uchar unsigned char //使用的IO口要根据自己接在单片机里的情况来更改 sbit RCK = P3^6; //声明串行输出存储锁存线RCK sbit SCK = P3^5; //声明串行数据输入时钟线SCK sbit SER = P3^4; //声明串行数据输入线SER sbit HC = P0^0; //声明C信号接口 sbit HB = P0^1; //声明B信号接口 sbit HA = P0^2; //声明A信号接口 #define ROW1 HC = 0; HB = 0; HA = 0; //定义使能第1行#define ROW2 HC = 0; HB = 0; HA = 1; //定义使能第2行#define ROW3 HC = 0; HB = 1; HA = 0; //定义使能第3行#define ROW4 HC = 0; HB = 1; HA = 1; //定义使能第4行#define ROW5 HC = 1; HB = 0; HA = 0; //定义使能第5行#define ROW6 HC = 1; HB = 0; HA = 1; //定义使能第6行#define ROW7 HC = 1; HB = 1; HA = 0; //定义使能第7行#define ROW8 HC = 1; HB = 1; HA = 1; //定义使能第8行

uchar h; //显示数据,可以用取模软件来获取 uchar iloveu[] = { 0x00,0x3C,0x18,0x18,0x18,0x18,0x3C,0x00, 0x00,0x36,0x7F,0x7F,0x3E,0x1C,0x08,0x00, 0x00,0x22,0x22,0x22,0x22,0x22,0x1C,0x00, 0x10,0x30,0x10,0x10,0x10,0x10,0x38,0x00, 0x7C,0x08,0x10,0x08,0x04,0x44,0x38,0x00, 0x10,0x30,0x10,0x10,0x10,0x10,0x38,0x00, 0x08,0x18,0x28,0x48,0x7C,0x08,0x08,0x00}; void delay(uint z) //延时函数,单位ms { uint i, j; for(i = z; i > 0; i--) for(j = 110; j > 0; j--); } void ROW() //行驱动函数

基于单片机的Led点阵广告牌设计

盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 基于单片机的LED广告牌设计 班级电子2班姓名秦地学号0902214075 成绩 一、设计背景 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED 显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。 二、任务要求 设计一个简易的LED广告牌,用于显示自己的名字或其它个性信息。显示的字符用LED 发光二极管排列成固定形状,在控制电路驱动下各字符轮流循环点亮。或者用LED点阵显示,显示内容可更新。汉字一般是以点阵式方式存储的,如16×16,24×24点阵。汉字的字模其实是汉字字形的图形化。所谓16点阵字模,就是把汉字写在一个16×16的网格内,汉字的笔划通过某网格时该网格就对应1,否则该网格对应0,这样,每一网格均对应1或0,把对应1的网格连起来看,就是这个汉字。汉字就是这样通过字节表示其点阵存储在字形中的。为了方便查找所需要汉字的点阵,每个汉字都与一个双字节的内码相对应。通过汉字的内码可以计算出它的点阵起始字节。 三、整体设计方案 如图所示,本设计通过单片机来控制行列驱动器使LED显示屏显示出汉字,单片机选用AT89C52芯片,行驱动器采用74HC154的P0口,列驱动器选用74HC595芯片。该系统主要由AT89C52芯片、电源、行驱动器、列驱动器、16×64LED点阵5部分组成。

基于51单片机FAT32文件系统程序

基于51单片机FAT32文件系统程序 #ifndef __ZNFAT_H__ #define __ZNFAT_H__ #include "mytype.h" //类型重定义 /*******************************************************/ //znFAT的裁减宏--------------------------------------------------------- //#define ZNFAT_ENTER_DIR //有此宏,函数 znFAT_Enter_Dir() 参与编译 #define ZNFAT_OPEN_FILE //有此宏,函数 znFAT_Open_File() 参与编译 //#define ZNFAT_SEEK_FILE //有此宏,函数 znFAT_Seek_File() 参与编译 //#define ZNFAT_READ_FILE //有此宏,函数 znFAT_Read_File() 参与编译 //#define ZNFAT_READ_FILEX //有此宏,函数 znFAT_Read_FileX() 参与编译 //#define ZNFAT_ADD_DAT //有此宏,函数 znFAT_Add_Dat() 参与编译 //#define ZNFAT_CREATE_DIR //有此宏,函数 znFAT_Create_Dir() 参与编译 //#define ZNFAT_CREATE_FILE //有此宏,函数 znFAT_Create_File() 参与编译 //#define ZNFAT_DEL_FILE //有此宏,函数 znFAT_Del_File() 参与编译 //#define ZNFAT_XCOPY_FILE //有此宏,函数 znFAT_XCopy_File() 参与编译 //#define ZNFAT_RENAME_FILE //有此宏,函数 znFAT_Rename_File() 参与编译 //#define ZNFAT_GET_TOTAL_SIZE //有此宏,函数 znFAT_Get_Total_Size() 参与编译 //#define znFAT_GET_REMAIN_CAP //有此宏,函数 znFAT_Get_Remain_Cap() 参与编译 #include "cj.h" #include "cj.h" //---------------------------------------------------------------------- #define SOC(c) (((c-pArg->FirstDirClust)*(pArg->SectorsPerClust))+pArg->FirstDirSector) // 用于计算簇的开始扇区#define CONST const //设备表 #define SDCARD 0 //SD卡 #define UDISK 1 //U盘 #define CFCARD 2 //CF卡 #define OTHER 3 //其它 //这里的存储设备表,可以灵活扩充,以实现对更多存储设备的支持 //------------------------------------------- #define MAKE_FILE_TIME(h,m,s) ((((unsigned int)h)<<11)+(((unsigned int)m)<<5)+(((unsigned int)s)>>1)) /* 生成指定时分秒的文件时间数据 */ #define MAKE_FILE_DATE(y,m,d) (((((unsigned int)y)+20)<<9)+(((unsigned int)m)<<5)+((unsigned int)d)) /* 生成指定年月日的文件日期数据 */ //DPT:分区记录结构如下 struct PartRecord { UINT8 Active; //0x80表示此分区有效 UINT8 StartHead; //分区的开始磁头 UINT8 StartCylSect[2];//开始柱面与扇区 UINT8 PartType; //分区类型 UINT8 EndHead; //分区的结束头 UINT8 EndCylSect[2]; //结束柱面与扇区 UINT8 StartLBA[4]; //分区的第一个扇区 UINT8 Size[4]; //分区的大小

相关文档
最新文档