版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于图形点阵液晶显示的单片机开发系统的设计 摘 要 单片机开发系统主要是采用ateml公司生产的at89c55系列单片机为主控制芯片,显示系统采用图形点阵式液晶,采用键盘管理芯片进行键盘控制,在芯片本身提供的系统资源的基础上,进行了并行总线的扩展,和串行总线的扩展。同时基于此系统作了简单的时钟显示,和a/d,d/a的控制,在作a/d,d/a时主要是基于一语应录放板进行了语音录放的实验关键词: 液晶显示 单片机 at89c55 开发系统 abstractthe development system of mcu is primarily based on the main control chi
2、p of the series of at89c51 that is produced by the company of atmel. the manifestation system uses lcd. and using a chip named hd7279a proceeds keyboards. make the best use of the resource of mcu and expand the collateral bus. of course this mcu system uses i2c bus to employ parts of an apparatus th
3、at accord with i2c bus. at the same time, based on the system, i make the simple clock shows on lcd by using a real time clock chip named ds12c887. i also do an experiment on a/d and d/a .by using a sound system, i make an experiment that record the sound and play. key phrase: lcd mcu of at89c55 the
4、 development system一 单片机最小系统的硬件设计利用单片机完成复杂系统的设计,一般是基于一定的软硬件平台,在硬件方面,主要是体现在,基于的开发系统,也可以说是事先就有的单片机最小系统的开发平台,如果有了此开发平台,就有如高楼大厦的地基,正是基于这点此次毕业设计首先进行了单片机最小系统的设计,其基本的硬件电路设计如图1。图 1 单片机最小系统设计图 1 的总体设计思想采用了单片机并行总线串行总线的扩展模式。其中单片机最小系统的主控芯片采用了 atmel 公司推出的带20 k字节可擦除、可编程flash程序存储器,256字节的数据存储器的at89c55。其芯片内含有丰富的硬件资源
5、,带有足够大的程序存储器,这在对液晶进行编程时,可以充分利用程序存储器大的特点,可以得到足够字模的存储空间,而不需要在扩展程序存储器;并且支持 0 33 mhz 的时钟频率选择范围,可以进一步提高信号的处理速度;并且有足够的输入输出口可以进行外扩展,可以完成设想的大部分电路的开发设计。图 1 中 y1 晶振( 11.059 mhz )与 c1c2 组成振荡电路; c4c5r1c6反相器及复位键组成上电复位,和手动复位电路;并通过相应的电路完成并行总线和串行总线的扩展。单片机并行总线扩展硬件实现在本单片机开发系统中,外挂的静态随机存取储存器为 512 k 字节的存储器 hm628512 ,其地址
6、线为 19 条,单片机本身的地址只有 16 条,要驱动 hm628512 就必须进行地址扩展。在图1中采用两片74ls373及一片74ls138来实现,首先u2芯片进行低8位地址与数据的分离,产生 a0a7 低8位地址,同时与a8a14(p2.0 p2.6)组成15位地址,在利用 p2.7a7a6a5a4 控制 74 ls138 与写信号 wr 将高 4 位地址 a16 a18 所存在 u3 上,这样就可以控制hm628512,通过此方法也可以控制更大的存储器(a0 a22)。在实际电路设计中巧妙利用 p2.7 ,a7 区分了不同的器件,在 p2.7位高电平时两片 74 ls138 无效,此时
7、选中随机存取储存器,进行存储,在 p2.7 为低电平时,配以 a7,可以选中不同的 74 ls138 ,进行译码,控制其它的芯片,比如说 a/ d0809d/a0832,或其他芯片。单片机串行总线扩展硬件实现由于并行总线在对外扩展时,占用的口线地址资源比较多,有时在设计时会成生冲突,只给设计者带来了很多不便,由于芯片集成工艺的飞速发展,产生了相应串行协议的芯片,现在常用的主要有一线,二线,三线的控制芯片。所谓一线控制芯片就是地址数据通过一条数据线与微控制器相连接,通过芯片与微控制器之间的固定通信协议,进行数的读写,此类芯片有 ds18b20ds2890 等。二线制芯片应用最广是满足i2c总线接
8、口标准的器件,其中二线分别是时钟线( scl )数据线( sda )。三线制是满足 spi 总线接口的器件,分别是地址线( sdi )数据线( sdo )时钟线( sclk )。在设计中串行总线主要采用的是 i2c 总线,用 p1 口实现,详细内容将在第四部分讲述,同时单片机提供了串行通信接口( uatr ),可以与个人计算机机进行通信,或几个单片机互联,实现多单片机之间的通信。二 系统资源的初次分配及结构框图 at89c55 内部资源的分配at89c55 内部含有 20 k 字节程序存储器,除用来存放号程序代码外,主要是存放液晶显示的数据码,其中包括汉字字模,图形码等;内部还有 256 字节
9、的随机存取储存器,可以进行部分数据的暂存,其中高 128 字节(地址 80 h ffh )只能采用间接寻址的方式,而用使用直接寻址是指访问特殊功能寄存器。系统外部资源的分配外部进行并行地址扩展后主要是挂接了一大的外部数据存储器,这样可以存储数目较大数据,同时利用不同的片选地址控制系统需要的不同功能的芯片,在这次设计中,主要并行芯片有ds12c887,ad0809,adc0832 。p1口利用p1.6p1.7模拟i2c总线,挂i2c器件,系统主要使用有时钟芯片pcf8563,存储芯片 at24c256。人机界面接口主要是液晶显示和键盘,其中液晶器件也通过总线方式,进行连接;键盘由于是工作方式是串
10、行的,所以连结在 p1 口,采用键盘管理芯片hd7279a实现键控。系统的结构框图如下: 电路图见附录1mcuat89c55键盘时钟ds12c887存储器628512i2c at24c256e2prompcf8563复位电路三 最小系统中主要功能模块的介绍 液晶显示模块显示功能是单片机最小系统中必不可少的一部分,显示的方法多种多样,现在常用的有两种方法:一是led显示,二是lcd显示。在lcd显示应用不普遍时,主要是采用led显示,但led显示需要的电流比较大,在系统中功耗比较高,在电池供电的系统中显得有些不适用。随着生产工艺的更新,lcd的价格随之下降,lcd的应用也因为其本身的优点而被广泛
11、的应用。液晶显示器具有体积小、质量轻、功耗低和可靠性高的优点,在便携式电子信息产品中得到了广泛的应用。特别是在电池供电的单片机产品中,液晶模块是首选的显示器件。液晶显示器种类很多,内部结构复杂,但液晶模块的接口比较规范,在使用液晶时,只需要针对液晶模块接口设计接口电路并进行软件编写,就可以达到应用液晶的目的。液晶模块主要有段式、字符式、图形式三种,在不同的应用场合可以选择不同的液晶,由于图形式液晶在借助子模提取软件可以任意的显示汉字和各种图形,故在系统设计时选用了图形点阵式液晶,由长沙太阳人电子有限公司生产的图形点阵式液晶,型号为smg12864。下面针对此模块进行介绍: 接口信号说明编号符号
12、引脚说明编号 符号 引脚说明 1 vss电源地12 db5data i/o 2 vdd电源正极 13 db6data i/o 3 vo液晶显示偏压 14 db7data i/o 4 rs数据命令选择端 15 cs1片选ic1信号 5 r/w使能信号 16cs2片选ic2信号 6 edata i/o 17 rst复位信号l 7 db0data i/o 18 vee负电源输出 8 db1data i/o 19 nc空脚 9 db2data i/o20 nc空脚 10 db3data i/o 21 bla背光源正极 11 db4data i/o 22blk背光源负极 控制器接口说明 基本操作时序 读
13、状态:输入:rs=l ,r/w=h ,cs1&cs2= h ,e= h 输出:d0d7= 状态字 写指令: 输入:rs=l , r/w=l,d0d7= 指令,cs1&cs2=h ,e= 高脉冲 输出:无 读数据: 输入:rs=h,r/w=h ,cs1&cs2= h,e= h 输出: d0d7= 数据 写数据: 输入:rs=l ,r/w=l ,d0d7= 数据,cs1&cs2=h ,e= 高脉冲 输出:无 状态字说明sta04 未用 sta5 液晶显示状态 1 为关闭 0 为显示 sta6 未用 sta7 读写操作使能 1 为禁止 0 为 允许注:对控制器每次进行读写操作之前,都必须进行读写检测
14、,确保 sta=0 指令说明初始化设置写指令 c0h:设置显示初始行;写指令3 fh:开显示;写指令3eh:关显示; 数据设置控制器内部设有一个数据地址页指针和一个数据地址列指针,用可通过他们访问内部的全部 512 字节随机存取储存器;数据指针的设置:指令 b8h+页码(07)设置数据地址页指针;指令 40h+列码(064)设置数据地址列指针液晶显示模块的读写时序 读操作时序 写操作时序 时间参数表 时序参数符号 极限值单位测试条件最小值典型值最大值e信号周期 tc1000ns引脚 ee脉冲宽度 tpw450nse上升沿/下降沿宽度tr,tp25ns地址建立时间tsp1140ns引脚 e、rs
15、、csx、r/w地址保持时间thd110ns数据建立时间(读操作)td320ns引脚db0db7数据保持时间(读操作)thd220ns数据建立时间(写操作)tsp2200ns数据保持时间(写操作)thd210ns smg128 64 的参考连接图如下:总线方式:见图2模拟口线方式:见图3在此系统中采用总线方式连接,见图 1 的液晶显示模块的连接。 图 2 总线方式 图 3 模拟口线方式 液晶显示的实现 硬件实现根据液晶的接口及系统电路,液晶的硬件接口电路如图1,采用总线方式连接,这样连接,对整个系统来说节约了资源,同时在编程方面也提供了良好的接口。 软件的实现软件主要是完成对液晶的初始化,初始
16、化主要包括液晶开显示,清屏,初始化显示行与列,然后调用显示子程序完成图形、汉字的显示。在软件编写,一项重要的工作是制作这合适显示模,在制作提取显示码时,采用了液晶显示码专用提取软件(可以在网站下载到),利用该软件可以得到较为理想的显示码机显示效果。 键盘控制模块简介及应用实现键盘控制有许多不同的方法,在设计中考虑到手边现有的资源采用了键盘管理芯片进行键盘识别管理,键盘管理芯片型号为hd7279a。hd7279 是一片具有串行接口的可同时驱动8位共阴式数码管或只独立的智能显示驱动芯片,该芯片同时还可连接多达 64 键的键盘矩阵,单片即可完成显示键盘接口的全部功能。hd7279a内部含有译码器可直
17、接接受 bcd 码或16进制码,并同时具有2种译码方式,此外具有多种控制指令。同时, hd7279a具有片选信号,可方便的实现多于8位的显示或多于64键接口。芯片特点: 串行接口,无需外围元器件可直接驱动引导 各位独立控制译码/不译码及消隐和闪烁属性 (循环)左移/(循环)右移指令 具有段寻址指令,方便控制独立引导 64键键盘控制器,内含去抖动电路基本电路: 图 4 hd7279 连接电路系统中的芯片应用 hd7279 芯片具有比较强大的功能,而在本电路设计中,只用其键盘的管理功能,在 hd7279 的基本应用电路的基础上作了相应的修改,去掉数码管显示部分,串行接口接在 p1 口上,电路图见5
18、 图 5 键盘电路图功能应用说明及实现 引脚说明引脚名称说明1.2vdd正电源3.5nc空脚 无连接 必须悬空 4vss接地 6cs片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据。 7 clk同步时钟输入端 8data串行数据输入/输出端 9key按键有效输出端,平时为高电平,监测到有效按键便为低电平10-16sgsa段g段a 输出 17dp小数点驱动输出18-25dig07数码07输出 26clko震荡输出端的27rcrc振荡器连接端 28reset复位端 串行接口与指令hd7279 采用串行的方式与微处理器通信,串行数据从数据引脚送入芯片,并由 clk 端同步,当片选信号变为
19、低电平后,数据因脚上的数据在 clk 引脚上的上升沿被写入 hd7279 的缓冲寄存器。hd7279 的指令结构有三种类型:不带数据的纯指令,指令的宽度为8个一点点,即微处理器需要发送8个clk 脉冲。带有数据的指令,宽度为16个一点点,即微处理器需要发送16个clk 脉冲。读取键盘数据指令,宽度为16个一点点,前8个为微处理器发送到hd7279的指令,后8个一点点为hd7279返回的键盘代码。执行此指令时,hd7279 的数据端在第9个clk脉冲的上升沿变为输出状态,并与第16个脉冲的下降沿恢复为输入状态,等待接收下一指令。 串行接口的时序如下: 纯指令 带数据的指令 读键盘指令 键盘的初始
20、化及编程应用在系统中主要是应用其键盘管理功能,首先在上电后,应使键盘复位,即向其写入复位命令(a4h)然后单片机检测键盘中断,在有键按下时,key脚以平时的高电平变为低电平,向单片机发出中断,当单片机检测到就进入中断读取键盘数据。其中发送命令子程序:send:mov r6,#08h mov a,#03h mov dptr,#002fh movx dptr,a acall l_delays_loop:mov a,ram mov c,acc.7 mov dat,c setb clk rl a mov ram,a acall s_delay clr clk acall s_delay djnz r6
21、,s_loop clr dat ret接收数据子程序:receive:mov r6,#08h setb dat acall l_delayr_loop:setb clk acall s_delay mov a,ram1 rl a mov c,dat mov acc.7,c mov ram1,a clr clk acall s_delay djnz r6,r_loop clr dat ret延时程序: l_delay:mov r7,#28h djnz r7,$ rets_delay:mov r7,#08h djnz r7,$ ret四 i2c总线应用i2c总线的应用非常广泛,在很多的器件上都配有
22、i2c总线接口,使用这些器件时一般都需要通过i2c总线进行控制。由于i2c器件的广泛应用,许多微处理器本就带有标准的i2c接口,而现在用的at89c55自身不带有i2c总线接口,在实现对i2c器件控制时,主要是根据i2c总线的通信协议,来模拟i2c总线。 i2c总线的特点与应用i2c总线是一种具有自动寻址高低速设备同步和仲裁等功能的高性能串行总线,能够实现完善的全双工数据传输,它在各种总线中使用信号线较少,只有两根线同步时钟线scl和数据线sda,因此构成控制系统十分的方便、灵活。i2c总线具有标准的规范及种类较齐全的带有i2c接口的外围器件,如e2prom,ram,日历时钟,a/d,d/a等
23、,在各类实际产品中有着广泛的应用。2.i2c总线的基本原理i2c总线只有两根信号线,数据线sda和时钟线scl,所有进入i2c总线系统中的设备都带有i2c总线接口,符合i2c总线电器规范的特性,只需将i2c总线上所有节点的串行数据线sda和时钟线scl分别与总线的sda和scl相连接即可。各节点供电可以不同,但需要共地,另外sda 、scl需分别接上拉电阻。当执行数据传送时,启动数据发送并产生时钟信号的器件称为主器件,被寻址的任何器件都可看作从器件,发送数据到总线上的器件称为发送器,从总线上接收数据的器件称为接收器。i2c总线是多主机总线,可以有两个或更多的能够控制总线的器件与总线连接,同时i
24、2c总线还具有仲裁功能,当一个以上的主器件同时试图控制总线时,只允许一个有效,从而保证数据不被破坏。i2c总线的寻址采用纯软件的寻址方法,无需片选线的连接,这样就简化了总线数量。主机在发送完启动信号(sta)后,立即发送寻址字节来寻址被控器件,并规定数据传送方向。寻址字节由7位从机地址d7d1和1位方向位d0组成,当主机发送寻址字节时,总线上所有器件都将该寻址字节中的高7位地址与自己器件的地址比较,若两者相同,则该器件认为被主机寻址,并根据读、写位确定是从发送器或从接收器。连接到i2c总线上的每一个器件都有一个唯一的地址,以区别总线上的其它器件.i2c总线地址统一由i2c总线委员会分配,例如对
25、于e2prom 芯片规定其高4位d7d4地址是1010 低3位d3d1地址根据芯片引脚a2、a1、a0 的接法而定,若a2、a1、a0 均接地则该器件的7位 i2c总线的数据传输在i2c总线上每传输一位数据都有一个时钟脉冲相对应。注意这里的时钟脉冲不像一般的时钟一样必须是周期性的,它的时钟间隔可以不同。总线备用时(即处于非忙状态),sda 和scl都必须保持高电平状态,关闭i2c总线时才使scl嵌位在低电平。只有当总线处于“非忙”状态时,数据传输才能被初始化。在数据传输期间,只要时钟线为高电平,数据线都必须保持稳定,只有在时钟线为低电平时,才允许数据线上的电平状态变化。在时钟线保持高电平期间,
26、数据线出现下降沿为启动信号,上升沿为停止信号,启动和停止信号都由主机产生,总线上带有i2c总线接口的器件很容易检测到这些信号。i2c总线数据传输时必须遵循规定的数据传送格式如图3.1,所示启动信号表明一次传送的开始,其后为寻址字节,该寻址字节由高7位地址和最低1位方向位组成,方向位为“0” 表明主机对从机的写操作,为“1”表示读操作,接下来是从器件给出的应答位,然后依次是由方向位指定读、写操作的数据字节与应答位,在数据传送完成后为停止信号。其中在起动与停止信号之间传输的数据字节数由主机决定,字节数理论上没有限制,一般具有i2c接口的器件都设置有对内部单元地址操作时的自动加减功能,主机可以连续操
27、作多个单元。注:第1组17为从器件地址(slaw)8为读/写标志 9应答位 后面18为数据 图3.1 i2c总线的数据传输i2c总线上的应答信号是比较重要的,在编制控制程序时应该着重考虑.i2c 总线上每传送一个字节数据后,sda 都必须有应答信号,此时主机的scl 应产生一个与这个应答位相对应的额外的时钟脉冲.接收器输出低电平为应答信号(ack), 输出高电平为非应答信号(a/c/k/). 发送器应在第9个时钟位上释放数据线,使其处于高电平状态,以便接收器在这一位上送出应答信号.当从机为接收器时,若由于某种原因不能产生应答时,必须释放总线,以便主机产生一个停止信号来终止总线数据的传输;当主机
28、为接收器时,接收到最后一个数据字节后,必须发送一个非应答位(a/c/k/),使从发送器释放数据线,以便主机发送停止信号来终止数据的传输.下面介绍三种常用的数据传送格式. 主控器的写操作 主控器向被寻址的被控器件发送n个数据字节,整个传输过程中数据传输过程中数据传送方向不变。其数据格式如下s slaw a data1 a data2 a datan-1 a datan a/|a p其中 黑体:主控器发送,被控器接收 非黑体:主控器接收,被控器发送a 应答信号 |a 非应答信号 s 起始信号 p 停止信号 slaw 寻址字节(写)data1datan写入被控器的n个数据字节。 主控器的读操作 主控
29、器从被控器中读出n个字节的操作,整个传输过程中除寻址字节外,都是被控器件发送,主控器件接收。数据格式如下:s slar a data1 a data2 a datan-1 a datan |a p其中 黑体:主控器发送,被控器接收 非黑体:主控器接收,被控器发送data1datan 被控器件读出的n个字节主控器件发送停止信号前应发送非应答位,向被控器表明读操作结束。 主控器的读写操作在一次数据传输过程中需要改变传送方向的操作,这时,起始信号和寻址字节都会重复一次,但两次读写方向相反。数据传输格式如下:s slaw/r a data1 a data2 a datan a/|a sr slar/w
30、 a data1 adata2 a datan a/|a p其中:sr 重复起始位图中未标注数据字节的传送方向,其方向决定于寻址字节的方向。单片机与i2c总线连接的硬件实现 单片机的使用种类比较多,有些单片机自身带有i2c总线接口,这样就可以把带有i2c接口的器件直接接到i2c总线上就可以,在此设中采用的at89c55芯片自身没有i2c接口,它类型的单片机也有好多没有i2c接口,但可以根据i2c总线上的传输协议来模拟i2c总线,其硬件连接十分简单,有单片机的p1口上任意两条口线,连接scl,sda即可,但须注意影子总线上加相应的上拉电阻,其连接如图4.1,主要连接器件有at24c256,pcf
31、8563 图4.1 i2c 总线硬件连接 模拟i2c总线软件的实现对标准的i2c总线的数据传送,规定了严格的时序要求,以保证数据传送的可靠性。再用单片机实现i2c总线协议时,就是按照i2c总线的时序进行数据的传输。由于模拟i2c总线有比较完整的软件包,这里不再重复,软件包见附录三 实验应用的i2c器件简介在此毕业设计中,主要应用的i2c器件是at24cxx系列的e2prom,和时钟芯片pcf8365。1 at24cxx系列e2promat24cxx系列eeprom为i2c总线存储器,具有i2c总线的单片机,编程较简单,如果无i2c总线接口的单片机,只要具有两个i/o口均可用模拟软件的方法对其进
32、行读写,编程较复杂。以24c01为例,工作原理如下: .写方式:先向24c01发出一个1-0的起始信号,根据访问的地址发送一个1010xxx0信号,如果是24c01,xxx全为0000,因为24c01地址空间为00h-7fh。注意是逐位送出的。然后等待24c01(sda)上的应答信号,低电平有效。如果没有收到应答信号,继续发送开始信号。得到应答,根据访问的地址单元发送地址信号(8bit),也需检测应答信号。再发送数据信号,将数据(8bit)写入24c01中,也查询应答信号。收到应答信号后发送停止信号0-1。.读方式:发送起始信号1010xxxx,检测应答信号,先虚写。根据访问的地址发送一个地址
33、信号,检测应答。再送访问的读信号1010xxx1 (8bit),检查应答。再发送起始信号,检测应答通过sda和时钟scl逐位读出8bit数据。送出停止信号。 时钟芯片pcf8563pcf8563是philips公司推出的一款带i2c总线具有极低功耗的多功能时钟/日历芯片,具有四种报警功能和定时功能;内部时钟电路、内部振荡电路、内部低电压检测以两线制i2c总线通信方式,不但使用外围电路简洁,而且增加了芯片的可靠性。pcf8563的scl为时钟输入端,数据随时钟信号同步输入器件或从器件输出;sda为双向引脚,用于串行数据的输入输出;int是中断信号输出端,可通过设置报警寄存器按指定时间在该脚产生报
34、警信号,低电平有效;sda、scl、int均为漏极开路,必须上拉电阻;x1、x2分别为反相放大器的输入、输出端;可在x1端接入32.768khz的石英晶振,配置成片内振荡器。本系统pcf8563与89c51接口采用图4.1所示接口方案。按i2c总线规约,pcf8563的从地址:读地址slar为a3h、写地址slaw为a2h,pcf8563 i2c通信实现有字节写/读两种状态。适用80c51的虚拟i2c总线软件包。本系统直接调用该i2c总线软件包的数据读写子程序(其中wrnbyt为n字节的子程序,rdnbyt为读取n字节的字节),来实现pcf8563的i2c总线操作。内部寄存器表1 寄存器概况地
35、址寄存器名称位7位6位5位4位3位2位1位000h控制/状态寄存器1test 0stop 0testc 0 0 001h控制/状态寄存器20 00tt/tp af tfaietie0dhclkou 输出寄存器fe fd1fd00eh定时器控制寄存器te td1td0ofh定时器倒计数数值寄存器定时器倒计数数值(二制)表2 bcd格式寄存器概况地址寄存器名称位7位6位5位4位3位2位1位002h 秒vl0059bcd码格式数03h 分 0059bcd码格式数04h 时 0023bcd码格式数05h 日 0059bcd码格式数06h 星期 0607h 月/世纪 c0112bcd码格式数08h 年0
36、099bcd码格式数09h分钟报警ae0059bcd码格式数0ah小时报警ae0023bcd码格式数0bh日报警ae0131bcd码格式数0ch星期报警ae06五 基于开发系统的系统试验调试及软件实现在单片机系统设计完成后,在此开发系统的系统上,做了一系统试验,主要是时钟的实时显示,及借助语音录放板作了语音录放。系统试验介绍 时钟显示时钟显示的实现主要是应用了实时时钟芯片ds12c887,芯片ds12c887是美国dallas公司推出的一款优秀的时钟芯片,具有下列主要技术特点: 具有完备的时钟、闹钟及到2100年的日历功能,可选择12小时制或24小时制时,有am和pm、星期、夏令时间操作,闰年
37、自动补偿等功能。具有可编程选择的周期性中断方式和多频率输出的方波发生器功能。 ds12887内部有14个时钟控制寄存器,包括10个时标寄存器,4个状态寄存器和114bit作掉电保护用的低功耗ram。 由于该芯片具有多种周期中断速率时钟中断功能,因此可以满足各种不同的待机要求,最长可达24小时,使用非常方便。 时标可选择二进制或bcd码表示。正是因为其优越的特性在系统试验中,时钟芯片采用了此款芯片,同时在应用i2c总线器件时,也选用了一款时钟芯片pcf8563,在软件中编写了此部分程序,时间通过液晶显示,两芯片的时间显示通过按键可以进行互换,同时可以通过键盘实现时间的人工设定及修改。 语音录放的
38、实现语音录放主要是借助具有音频采集功能及音频输出功能的电路来完成的,其中语音录放电路主要是应用a/d,d/a芯片配合滤波器,放大电路来实现的,a/d,d/a分别采的是ad0809,adc0832。通过单片机开发系统板的控制接口实现语音的采集,语音的回放,在录音时,得到的语音数据暂时存放在开发板的存储器里,如果采样速率在8khz左右时,可录音时间为60秒左右。 系统试验调试及软件实现 硬件的调试硬件电路的制作与调试完成一项设计非常重要的一环,设计前期主要是电路原理图的设计及印刷电路板的设计,这里采用的主要设计软件是protel 99se,在完成此项制作,在电路板制作好后,接下来的任务是焊接和测试
39、,焊接是手工的,同时在配合软件调试时,又发现一些不合理的地方,并在原先的设计基础上作适当的修改。 软件的调试软件的调试主要是测试软件的编写,由于时间的急迫,同时在指导老师的建议,此次测试软件的编写采用了单片机通用的汇编语言,测试程序主要包括液晶显示,时钟芯片应用,单片机模拟i2c总线程序(主要是两个i2c器件的应用)。由于主要的显示器件采用的是液晶,所以所用要显示的内容均得通过液晶进行显示,由此可见显示程序是主要的部分。由于各部分程序都比较大下面仅就编程思想进行以下介绍: 显示程序在前面讲过液晶的显示主要包括汉字的显示及图形的显示,在这里把所用的显示均看作图形的显示,基本想法是因为液晶的显示点
40、数是12864,也就是横坐标可显示128点,纵坐标可显示64点,又由于此液晶的显示模式为纵向到向显示,也就是说如果汉字显示是1616的话就是一屏可显示4行每行8个汉字,所以在显示汉字的时候可以在纵向点数(16点,即两个字节)不变的情况下,改变宽度,而图形显示的时候是按照16128显示,也就列数固定而改变纵向的行数,但只能每8位的改变。在程序的编写时,首先根据液晶的电路连接和液晶的初始化要求进行初始化,然后把需要显示的内容利用显示模提取软件提取出显示码,根据具体的情况进行显示。程序主要包括液晶的初始化,即开显示向命令寄存器写3eh;显示出示行设置,向命令寄存器写c0h;然后根据显示内容,初始化显
41、示行列汉字或图形的显示码进行显示。 控制程序 控制在此设计中,主要是利用键盘实现对事件的修改,和功能之间的互换。而键盘的控制采用了键盘管理芯片hd7279,这里只需根据中断读进键码值,根据不同的键值进行不同的显示和工作 时钟程序时钟芯片有两个一是ds12c887和pcf8563,其中pcf8563具有i2c总线接口故其软件实现可以借助于通用的i2c程序软件包(见下文),这里主要介绍ds12c887的编成。ds12c887内有电池掉电后还可工作,具有其特定的优势,在开机上电时,首先读取ds12c887的时钟数据,并进行显示,如有时间不准确,则进行修改。主要编成有:芯片的初始化,包括时间的初始化(
42、这里指时间的初设定,由软件实现)和指令寄存器的相应设定(芯片的详细资料见附录4),其中指令寄存器的设定主要包括显示模式的设定和时钟芯片的启动 i2c总线程序开发系统应用的微控器本身没有i2c接口,但本身有i/o口,所以可以借助于i/o来模拟i2c总线,i2c总线程序主要是依照i2c总线协议来模拟,其具体软件包见附录2,其中主要包括九部分:发送起始位,发送停止位,发送应答位,发送非应答位,应答位检测子程序,发送一个字节子程序,向被控器件发送n个字节数据子程序(wrnbyt),从sda上接收一个字节数据子程序(rdbyt),从sda上接收n个字节数据子程序(rdbyt)。毕业设计总结单片机系统在开
43、发应用中,发挥着其无以伦比的优势,一个好的开发平台可以使开发比较简单,此次毕业设计设计单片机系统正是开发了一个比较实用的平台,现在越来越多的显示采用液晶,故在设计中显示系统采用了液晶显示,显示时取得较好的画面效果,使人机对话界面更加友好;虽然液晶的显示程序的编写比较麻烦,但加上一些辅助的软件,写出一些比较实用的子程序后,再主程序里调用,就显得游刃有余。在这次毕业设计中,自己涉足了以前没有涉及的领域,比如i2c总线等,第一次接触一些芯片,及一些软件的应用,在设计开发中,自己能在老师同学的帮助下,自己动手完成,通过动手学到不少的知识,在学习新知识的同时也加强了对单片机的再了解,受益匪浅。在作毕业设
44、计期间,毕业设计指导老师姜威老师给予大力帮助与支持,同时院领导、其他任课教师及本班同学也给我了不少帮助,在这里表示感谢。相关网址及主要参考书目:i2c总线应用系统技术 何立民 北京航空航天大学出版社嵌入式实时操作系统small rtos51 原理及应用陈明计 周立功 北京航空航天大学出版社电子世界杂志03年合订本 中国电子学会主办8051单片机实践与应用 吴金戌 沈庆阳 郭庭吉 清华大学出版社单片微机原理系统设计与应用 万福君 潘松峰 中国科技大学出版社单片机原理及应用 曹巧媛 电子工业出版社单片机实验与实践教程 万光毅 严 义 北京航空航天大学出版社 21世纪电子资源网 综合电子论坛 中国e
45、da技术网 附录 1 附录 2 模拟i2c总线软件包假定晶振为6mhz,相应的机器周期为2微秒。程序如下: 发送起始位: sta: setb sda setb scl nop nop clr sda nop nop clr scl ret 发送停止位:stop: clr sda setb scl nop nop setb sda nop nop clr scl ret 发送应答位: mack: clr sda setb scl nop nop clr scl setb sda ret 发送非应答位: mnack: setb sda setb scl nop nop clr scl clr sd
46、a ret 应答位检测子程序: cack: setb sda setb scl mov ackbit,#00h mov a,p1 jnb acc.7,cend mov ackbit,#01h cend: clr scl nop nop ret 发送一个字节子程序: wrbyt: push psw mov r7,#08h clr c wlp: rlc a jc wr1 wr0: clr sda setb scl nop nop clr scl ajmp wlp1 wr1: setb sda setb scl nop nop clr scl clr sda wlp1: djnz r7,wlp po
47、p psw ret 向被控器件发送n个字节数据子程序(wrnbyt): wrnbyt: push psw lop1: acall sta mov a,slaw acall wrbyt acall cack mov a,ackbit cjne a,#00h,lop1 mov r1,#mtd wrda: mov a,r1 acall wrbyt acall cack jb f0,wrnbyt inc r1 djnz numbyt,wrda acall stop pop psw ret 从sda上接收一个字节数据子程序(rdbyt): rdbyt: mov r0,#08h rlp: setb sda
48、 setb scl mov c,sda mov a,rd_in rlc a mov rd_in,a clr scl djnz r0,rlp ret 从sda上接收n个字节数据子程序(rdbyt): rdnbyt: push psw acall sta mov a,slaw acall wrbyt acall cack mov a,ackbit cjne a,#00h,rdnbyt rdn: mov r1,#mrd rdn1: acall rdbyt mov r1,a djnz numbyt,ack acall mnack acall stop pop psw ret ack: lcall mack inc r1 sjmp rdn1其中 mtd:发送缓冲区首址 mrd:接收缓冲区首址 sla:寻址字节(slaw/r)存放单元 numbyt:传送字节数n存放单元注意:中的nop指令是用来保证定时参数要求的,如晶振不是6mhz,则应进行相应的修改。在编写i2c总线程序是只需在规定好参数后直接调用此相应的子程即可。附录 3 并行时钟ds12c887介绍美国dallas公司推出两款数字时钟芯片ds12887/ds12c887,结构上相当于mc146818的改进型,芯片都采用24引脚双列直插式封装,其引脚接口逻辑和内部操作方式与mc1468
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夫妻保证书全文样本
- 农业用地流转承包协议书
- 成人教育宣传推广协议
- 冷热水管材购销合同范本
- 光纤采购招标合同履行问题处理建议
- 员工外出安全保护方案
- 月嫂服务合同贴心解读
- 项目服务合同范本分享
- 供应商合同样本
- 工程安装委托书格式样本
- 环境土壤学课件
- 《生产安全事故报告和调查处理条例》知识考题及答案
- 110kv各类型变压器的计算单
- 看图猜成语完
- 汽车尾灯控制电路的设计仿真
- 国家开放大学《森林保护》形考任务1-4参考答案
- 约谈教育记录表
- 贵州省遵义市播州区第五小学2023-2024学年六年级上学期道德与法治期中质量监测试卷
- 产品研制管理规范
- 全血和成分血使用解读
- 2023-2024学年江苏省泰州市海陵区六年级数学第一学期期末含答案
评论
0/150
提交评论