时钟的模拟显示控制系统设计

上传人:suij****uang 文档编号:170871919 上传时间:2022-11-23 格式:DOCX 页数:18 大小:114.91KB
收藏 版权申诉 举报 下载
时钟的模拟显示控制系统设计_第1页
第1页 / 共18页
时钟的模拟显示控制系统设计_第2页
第2页 / 共18页
时钟的模拟显示控制系统设计_第3页
第3页 / 共18页
资源描述:

《时钟的模拟显示控制系统设计》由会员分享,可在线阅读,更多相关《时钟的模拟显示控制系统设计(18页珍藏版)》请在装配图网上搜索。

1、课程设计报告时钟的模拟显示控制系统设计班级:工控082班专业:自动化设计人(完成日期:11-10-18一、设计目的:熟悉单片机试验箱的布局,使得学生学习对P87C52单片机应 用能力及实际的动手操作能力。二、设计任务:利用图形液晶模块及动态刷新的控制方式,模拟钟表的显示 界面。三、设计要求:钟表具有分针和秒针,分别由两条直线表示;两条直线动态 显示和刷新,实现指针的走动,通过不同的刷新频率,实现两指针的不同转速。四、方案设计:1、总体设计1.1设计思路:采用P87C52作为主要控制芯片,来控制液晶显示模块, LCD将单片机发送过来的时钟数据显示在显示屏上,使液晶屏上显示圆形时钟。1.2工作原理

2、:实验中采用LCD汉字取模软件,用该软件画每秒时刻图形, 然后自动生成码表,运行或仿真过程中,单片机通过刷新方式,每一张码表在 LCD上显示每一时刻的画面。2、硬件设计与分析:2.1课程设计采用的硬件器件及数量:硬件器件数量P87C52单片机1LCD:TG-12864B12.2 12864的相关介绍2.2.1 12864 概述:12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128x64全点阵液晶 显示器组成。可完成图形显示,也可以显示8x4个(16x16点阵)汉字。管脚名称LEVER管脚功能描述VSS0电源地VDD+5.0V电源电压V0-液晶显示器驱动电压D/I(RS)H/L

3、D/I-“H”,表示DB7sDB0为显示数据D/I“L”,表示DB7sDB0为显示指令数据R/WH/LR/W=“H”,E=“H”数据被读到 DB7sDB0 R/W=“L”,E=“HL”数据被写到 IR 或 DREH/LR/W=“L”,E信号下降沿锁存DB7sDB0 R/W=“H”,E=“H”DDRAM 数据读至 1DB7DB0DB0H/L数据线DB1H/L数据线DB2H/L数据线DB3H/L数据线DB4H/L数据线DB5H/L数据线DB6H/L数据线DB7H/L数据线CS1H/LH:选择芯片(右半屏)信号CS2H/LH:选择芯片(左半屏)信号RETH/L复位信号,低电平复位VOUT-10VLC

4、D驱动负电压LED+-LED背光板电源LED-LED背光板电源在使用12864LCD前先必须了解以下功能器件才能进行编程。12864内部功能器件及相 关功能如下:1.指令寄存器(IR)IR是用于寄存指令码,与数据寄存器数据相对应。当D/I=O时,在E信号下降沿的作用 下,指令码写入IR。2. 数据寄存器(DR)DR是用于寄存数据的,与指令寄存器寄存指令相对应。当D/I=1时,在下降沿作用下, 图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7sDB0数据总线。DR和 DDRAM之间的数据传输是模块内部自动执行的。3. 忙标志:BFBF标志提供内部工作情况。BF=1表示模块在内部操作,

5、此时模块不接受外部指令和数 据。BF=O时,模块为准备状态,随时可接受外部指令和数据。利用STATUS READ指令,可以将BF读到DB7总线,从检验模块之工作状态。4. 显示控制触发器DFF此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY OFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DDF的状态是指令DISPLAY ON/OFF和RST信号控制的。5. XY地址计数器XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器, XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针

6、, Y地址计数器为DDRAM的Y地址指针。X地址计数器是没有记数功能的,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1, Y地址指针从 0 到 63。6. 显示数据RAM (DDRAM)DDRAM是存储图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。D DRAM与地址和显示位置的关系见DDRAM地址表。7. Z地址计数器Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。 当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数 器为0。Z地址计数器可以用指令DISPLAY START LINE预

7、置。因此,显示屏幕的起始行就由 此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共 64行,屏幕可以循环滚动显示64行。2.2.2 LCD12864 引脚图2.3 P87C52单片机2.3.1 P87C52单片机概述:P87C52基于80C51内核采用高密度CMOS技术设计制造,包含中央 处理单元、片内8kOTP程序存储器,128字节内部数据存储器RAM、4组8 位双向输入/输出(I/O) 口、3个16位定时/计数器和6个中断源,4层优先 级中断嵌套结构,可用于多机通信的串行I/O 口,全双工UART,片内时钟 振荡电路。2.3.2 P87C52单片机硬件电气原

8、理图:J79_uB-D1 g_JBJD7B戶*H AI ;B_PSENB A15B A145_oB_A12 二1 :bZaioB g135 7 9 13 5 72 2 2 3 3 3 32 斗 6 s o 2 4 6 IX IX IX li1820222426233032343638机B_P10BP11B_P12BP13B P14B_P15b2pi5bZP!7B_KSTJUODO rxpoB_INT0BINT1B TObZxtai2 BXTALl GNDHEADER 20X22.3.3 P87C52单片机功能特性:基于MCS-51内核和指令系统;(2) 32 个双向 I/O 口;(3) 3个1

9、6位可编程定时/计数器;(4) 电源空闲和掉电模式;(5) 3 位保密位(OTP ROM);(6) 双数据指示器;(7) 全双工增强UARL通道;(8) 帧数据错误检测;(9) 自动地址识别;(10) 可外接64kB外部程序存储器ROM;(11) 128x8bi t内部RAM(可扩充64kB外部存储器); (12(时钟频率0-33MHZ;(13) 2.7-5.5V工作电压范围;(14) 外中断唤醒电源掉电模式;(15) 异步端口复位;(16) 可编程时钟输出;(17) 布尔处理器;2.3.4驱动部分电气连接图JI06JP2i1LIGHT1CCGND1LCD AO4LCD AIsLCD CLK6

10、LCD A2CS LCD2RST LCD11LIGHTLIGHT Z J.-r_-wsls:ST D k E c c RB DOMDID2WLMD*MD7VSS VDD Widi veEEtiL ri-UGHT L#include #include #define STX0x02#define ETX0x03#define EOT0x04#define ENQ0x05#define BS0x08#define CR0x0D#define LF0x0A#define DLE0x10#define ETB0x17#define SPACE 0x20#define COMMA 0x2C#define

11、 TRUE 1#define FALSE 0#define HIGH 1#define LOW 0/T6963C命令定义#define LC_CUR_POS0x21/光标位置设置#define LC_CGR_POS0x22/CGRAM偏置地址设置#define LC_ADD_POS0x24/地址指针位置#define LC_TXT_STP0x40/文本区首址#define LC_TXT_WID0x41文本区宽度#define LC_GRH_STP0x42图形区首址#define LC_GRH_WID0x43图形区宽度#define LC_MOD_OR0x80/显示方式:逻辑或#define L

12、C_MOD_XOR0x81显示方式:逻辑异或#define LC_MOD_AND0x82/显示方式:逻辑与#define LC_MOD_TCH0x83/显示方式:文本特征#define LC_DIS_SW0x90/显示开关.#define LC_CUR_SHP#define LC_AUT_WR0xA00xB0/D0=1/0:光标闪烁启用/禁用;/D1=1/0:光标显示启用/禁用;/D2=1/0:文本显示启用/禁用;/D3=1/0:图形显示启用/禁用;/光标形状选择:0xA0-0xA7表示光标占的行数自动写设置#define LC_AUT_RD0xB1自动读设置#define LC_AUT_OV

13、R0xB2自动读/与结束#define LC_INC_WR0xC0数据写,地址加1#define LC_INC_RD0xC1数据读,地址加1#define LC_DEC_WR0xC2/数据写,地址减1#define LC_DEC_RD0xC3/数据读,地址减1#define LC_NOC_WR0xC4/数据与,地址不变#define LC_NOC_RD0xC5/数据读,地址不变#define LC_SCN_RD0xE0读屏屏#define LC_SCN_CP0xE8/屏幕拷贝#define LC_BIT_OP (0xF0位操作:D0-D2:定义D0-D7位;D3: 1置位;0:清除/名称用PG

14、12864LCD设计的指针式电子钟/说明:本例利用PG12864LCD设计了指针式电子钟,电子钟由表盘、 /时针、分针、秒针等构成./时钟运行过程中可进行时分秒的调节和保存./#define F_CPU 4000000UL#include vreg52/io.h#include vreg52/pgmspace.h#include vreg52/interrupt.h#include vutil/delay.h#include #include PG12864.h#define INT8U unsigned char#define INT16U unsigned int如果引入头文件math.h

15、则可以直接使用PI的符号常量定义:M_PI#define PI 3.1415926extern void cls();清屏extern INT8U LCD_Initialise();/LCD 初始化extern INT8U LCD_Write_Command(INT8U cmd);/ 写无参数的命令写双参数命令extern INT8U LCD_Write_Command_P2(INT8U cmd,INT8U para1,INT8U para2);extern INT8U LCD_Write_Data(INT8U dat);/ 写数据extern void Set_LCD_POS(INT8U r

16、ow, INT8U col);设置当前地址绘制线条extern void Line(INT8U x1,INT8U y1, INT8U x2,INT8U y2, INT8U Mode);extern void Pixel(INT8U x,INT8U y, INT8U Mode);/ 画点函数显示字符串extern INT8U Display_Str_at_xy(INT8U x,INT8U y,char *fmt);extern INT8U LCD_WIDTH;extern INT8U LCD_HEIGHT;extern void GetDateTime();从 DS1302 获取时间extern

17、 void SetDateTime();设置时间按键定义所读取的日期时间extern INT8U DateTime7;当前调节的时间对象:秒,分,时(0,1,2),为-1时表示时钟正常运行.char Adjust_Index = -1;保存前一秒,分,时数据,用于在绘制当前新的指针时擦除上次绘制的指针INT8U TimeBack = -1, -1, -1;秒,分,时针的长度INT8U HMS_Hand_Length = 24,20,15;数字式时钟的显示串缓冲char DisplayBuffer = 00:00:00;/显示数字式时钟/void ShowDigitTime()/绘制电子钟圆形面

18、板/void Clock_Plate()/重绘HMS中的某一指针(参数0,1,2分别为秒,分,时)/void Repaint_A_Hand(INT8U i)/时间变化时重绘/秒针与分针时钟接近重叠,或分钟与时针接近重叠时也要重绘/void Display_HMS_Hand()/主程序/int main()/ T0定时器刷新LCD时间显示/ISR (TIMER0_OVF_vect)/键盘中断(INT0)/ISR (INT0_vect)/名称:PG12864LCD显示驱动程序(不带字库)/#include vavr/io.h#include vavr/pgmspace.h#include vuti

19、l/delay.h#include #include #include #include PG12864.h#define INT8U unsigned char#define INT16U unsigned int/T6963C端口定义/LCD控制引脚(读,写,命令/数据寄存选择)/LCD控制引脚相关操作/ASCII字模宽度及高度定义下面的英文,数字,标点符号等字符点阵存放于程序Flash空间中使用时要用pgm_read_byte(uchar*)函数读取,该函数在avr/pgmspace.h中申明 本例使用的图像点阵也存放于Flash中.prog_uchar ASC_MSK96 * 12 =

20、 OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,Oxff,Oxff,Oxff,Oxff,Oxff, / 0x20 时 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,/ ! 0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 0x00,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x

21、6c,0x6c,0x00,0x00, # 0x30,0x30,0x7c,0xc0,0xc0,0x78,0x0c,0x0c,0xf8,0x30,0x30,0x00, $ 0x00,0x00,0x00,0xc4,0xcc,0x18,0x30,0x60,0xcc,0x8c,0x00,0x00, % 0x00,0x70,0xd 8,0xd8,0x70,0xfa,0xde,0xcc,0xdc,0x76,0x00,0x00, & 0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 0x00,0x0c,0x18,0x30,0x60,0x

22、60,0x60,0x30,0x18,0x0c,0x00,0x00, ( 0x00,0x60,0x30,0x18,0x0c,0x0c,0x0c,0x18,0x30,0x60,0x00,0x00,/ ) 0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x66,0x00,0x00,0x00,0x00, * 0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x60,0x00,/ , 0x00,0x00,

23、0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x00,/ . 0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00, / 0x00,0x7c,0xc6,0xce,0xde,0xd6,0xf6,0xe6,0xc6,0x7c,0x00,0x00, 0 0x00,0x10,0x30,0xf0,0x30,0x30,0x30,0x30,0x30,0xfc,0x00,0x

24、00, 10x00,0x78,0xcc,0xcc,0x0c,0xl8,0x30,0x60,0xcc,0xfc,0x00,0x00, 2 0x00,0x78,0xcc,0x0c,0x0c,0x3 8,0x0c,0x0c,0xcc,0x78,0x00,0x00,/ 3 0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x1e,0x00,0x00, 4 0x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0x0c,0xcc,0x78,0x00,0x00,/ 5 0x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,

25、0xcc,0x78,0x00,0x00,/ 6 0x00,0xfe,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x00,0x00, 7 0x00,0x78,0xcc,0xcc,0xec,0x78,0xdc,0xcc,0xcc,0x78,0x00,0x00,/ 8 0x00,0x78,0xcc,0xcc,0xcc,0x7c,0x18,0x 1&0x30,0x70,0x00,0x00,/ 9 0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x00,0x00,0x00,/ : 0x00,0x00,0x00,0x38,0

26、x38,0x00,0x00,0x38,0x38,0x18,0x30,0x00,/ ; 0x00,0x0c,0x18,0x30,0x60,0xc0,0x60,0x30,0x18,0x0c,0x00,0x00, 0x00,0x78,0xcc,0x0c,0x18,0x30,0x30,0x00,0x30,0x30,0x00,0x00,/ ? 0x00,0x7c,0xc6,0xc6,0xde,0xde,0xde,0xc0,0xc0,0x7c,0x00,0x00, 0x00,0x30,0x78,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0x00,0x00, A 0x00,0xf

27、c,0x66,0x66,0x66,0x7c,0x66,0x66,0x66,0xfc,0x00,0x00, B 0x00,0x3c,0x66,0xc6,0xc0,0xc0,0xc0,0xc6,0x66,0x3c,0x00,0x00, C 0x00,0xf8,0x6c,0x66,0x66,0x66,0x66,0x66,0x6c,0xf8,0x00,0x00, D 0x00,0xfe,0x62,0x60,0x64,0x7c,0x64,0x60,0x62,0xfe,0x00,0x00, E 0x00,0xfe,0x66,0x62,0x64,0x7c,0x64,0x60,0x60,0xf0,0x00,0

28、x00, F 0x00,0x3c,0x66,0xc6,0xc0,0xc0,0xce,0xc6,0x66,0x3e,0x00,0x00, G 0x00,0xcc,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0xcc,0x00,0x00, H 0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,/ I 0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0xcc,0x78,0x00,0x00,/ J 0x00,0xe6,0x66,0x6c,0x6c,0x78,0x6c,0x6c

29、,0x66,0xe6,0x00,0x00, K 0x00,0xf0,0x60,0x60,0x60,0x60,0x62,0x66,0x66,0xfe,0x00,0x00, L 0x00,0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0xc6,0xc6,0x00,0x00, M 0x00,0xc6,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0x00,0x00, N 0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x00,0x00, O 0x00,0xfc,0x66,0x66,0x66

30、,0x7c,0x60,0x60,0x60,0xf0,0x00,0x00, P 0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xce,0xde,0x7c,0x0c,0x1e,0x00, Q 0x00,0xfc,0x66,0x66,0x66,0x7c,0x6c,0x66,0x66,0xe6,0x00,0x00, R 0x00,0x78,0xcc,0xcc,0xc0,0x70,0x 18,0xcc,0xcc,0x78,0x00,0x00, S 0x00,0xfc,0xb4,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00, T 0x00,0xc

31、c,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,/ U 0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00, V 0x00,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6,0x6c,0x6c,0x6c,0x00,0x00, W 0x00,0xcc,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,0xcc,0x00,0x00, X 0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x30,0x30,0x78,0x00,

32、0x00,/ Y 0x00,0xfe,0xce,0x98,0x18,0x30,0x60,0x62,0xc6,0xfe,0x00,0x00, Z 0x00,0x3c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3c,0x00,0x00, 0x00,0x00,0x80,0xc0,0x60,0x30,0x18,0x0c,0x06,0x02,0x00,0x00, 0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x00,0x00, 0xl0,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,

33、0x00,0x00,0x00, A OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,Oxff,OxOO, _ 0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/ 、 0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0x76,0x00,0x00, a 0x00,0xe0,0x60,0x60,0x7c,0x66,0x66,0x66,0x66,0xdc,0x00,0x00, b 0x00,0x00,0x00,0x00,0x78,0xcc

34、,0xc0,0xc0,0xcc,0x78,0x00,0x00, c 0x00,0x1c,0x0c,0x0c,0x7c,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00, d 0x00,0x00,0x00,0x00,0x78,0xcc,0xfc,0xc0,0xcc,0x78,0x00,0x00, e 0x00,0x38,0x6c,0x60,0x60,0xf8,0x60,0x60,0x60,0xf0,0x00,0x00, f 0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0x7c,0x0c,0xcc,0x7 8,/ g 0x00,0xe0,0x

35、60,0x60,0x6c,0x76,0x66,0x66,0x66,0xe6,0x00,0x00, h 0x00,0x18,0x18,0x00,0x78,0x18,0x18,0x18,0x18,0x7e,0x00,0x00, i 0x00,0x0c,0x0c,0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0x78, j 0x00,0xe0,0x60,0x60,0x66,0x6c,0x7 8,0x6c,0x66,0xe6,0x00,0x00, k 0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x00,0x00

36、, l 0x00,0x00,0x00,0x00,0xfc,0xd6,0xd6,0xd6,0xd6,0xc6,0x00,0x00, m 0x00,0x00,0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x00, n 0x00,0x00,0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,/ o 0x00,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x7c,0x60,0xf0, p 0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0xc

37、c,0x7c,0x0c,0x1e, q 0x00,0x00,0x00,0x00,0xec,0x6e,0x76,0x60,0x60,0xf0,0x00,0x00, r 0x00,0x00,0x00,0x00,0x78,0xcc,0x60,0x18,0xcc,0x78,0x00,0x00, s 0x00,0x00,0x20,0x60,0xfc,0x60,0x60,0x60,0x6c,0x38,0x00,0x00, t 0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00, u 0x00,0x00,0x00,0x00,0xcc,0xc

38、c,0xcc,0xcc,0x78,0x30,0x00,0x00, v 0x00,0x00,0x00,0x00,0xc6,0xc6,0xd6,0xd6,0x6c,0x6c,0x00,0x00, w 0x00,0x00,0x00,0x00,0xc6,0x6c,0x38,0x38,0x6c,0xc6,0x00,0x00, x 0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x3c,0x0c,0x18,0xf0, y 0x00,0x00,0x00,0x00,0xfc,0x8c,0x18,0x60,0xc4,0xfc,0x00,0x00, z 0x00,0x1c,0x3

39、0,0x30,0x60,0xc0,0x60,0x30,0x30,0x1c,0x00,0x00, 0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x00,0x00,/ T 0x00,0xe0,0x30,0x30,0x1 & 0x0c,0x18,0x30,0x30,0xe0,0x00,0x00, 0x00,0x73,0xda,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ;INT8U gCurRow,gCurCol; /图形当前行、列存储,行高16点,列宽8点 INT8U tCurRow,tCurC

40、ol; /文本当前行、列存储,行高8点,列宽8点 INT8U ShowModeSW;/当前显示模式INT16U txthome,grhome;/ LCD控制相关函数/INT8U Status_BIT_01(); /状态位STA1,STA0判断(读写指令和读写数据) INT8U Status_BIT_3(); /状态位ST3判断(数据自动写状态)/写无参数的指/写单参数的指INT8U LCD_Write_Command(INT8U cmd);令INT8U LCD_Write_Command_Pl(INT8U cmd,INT8U paral);令INT8U LCD_Write_Command_P2

41、 (INT8U cmd,INT8U para1,INT8U para2); / 写双参数的指令/写数据/读数据清屏/LCD初始化/设置当前地址ASCII(8*8)显示函数ASCII(8*16)和汉字(16*16 )显示函数绘点INT8U LCD_Write_Data(INT8U dat);INT8U LCD_Read_Data();void cls();char LCD_PINitialise();void Set_LCD_POS(INT8U row, INT8U col);void charout(INT8U *str);/显示辅助函数void Line(INT8U x1, INT8U y1

42、, INT8U x2, INT8U y2, INT8U Mode); / 绘制直线INT8U dprintf(INT8U x,INT8U y,char *fmt); void OutToLCD(INT8U Dat,INT8U x,INT8U y);void Pixel(INT8U x,INT8U y, INT8U Mode);/读状态/INT8U Read_LCD_Status()/读数据/INT8U Read_LCD_Data()/写数据/void Write_Data(INT8U dat)/写命令/void Write_Command(INT8U cmd) /状态位STA1,STAO判断(

43、读写指令和读写数据)/INT8U Status_BIT_01()/状态位ST3判断(数据自动写状态)/INT8U Status_BIT_3()/写双参数的指令/INT8U LCD_Write_Command_P2(INT8U cmd,INT8U para1,INT8U para2)/写单参数的指令/INT8U LCD_Write_Command_P1(INT8U cmd,INT8U para1)/写无参数的指令/INT8U LCD_Write_Command(INT8U cmd)/写数据/INT8U LCD_Write_Data(INT8U dat)/读数据/INT8U LCD_Read_Da

44、ta()/设置当前地址/void Set_LCD_POS(INT8U row, INT8U col)/清屏/void cls()/ LCM初始化/char LCD_Initialise()/ ASCII及汉字显示/INT8U Display_Str_at_xy(INT8U x,INT8U y,char *fmt)/输出起点x不是8的倍数时,原字节分成两部分输出到LCD/void OutToLCD(INT8U Dat,INT8U x,INT8U y)/绘点函数/参数:点的坐标,模式1/0分别为显示与清除点/void Pixel(INT8U x,INT8U y, INT8U Mode)/两数交换/

45、void Exchange(INT8U *a, INT8U *b)/绘制直线函数/参数:起点与终点坐标,模式为显示(1)或清除(0),点阵不超过255*255)/void Line(INT8U x1,INT8U y1, INT8U x2,INT8U y2, INT8U Mode)/ DS1302实时时钟程序/#include vreg52/io.h#include vstring.h#include vutil/delay.h#define INT8U unsigned char#define INT16U unsigned int /DS1302引脚定义/DS1302接口数据方向/DS130

46、2控制引脚操作定义星期字符串表(未使用)char *WEEK = SUN,MON,TUS,WEN,THU,FRr,SAT;所读取的日期时间INT8U DateTime7;/向DS1302写入一字节/void Write_Byte_TO_DS1302(INT8U x)/从DS1302读取一字节/INT8U Get_Byte_FROM_DS1302()/从DS1302指定位置读数据/INT8U Read_Data(INT8U addr)/向DS1302指定地址写数据/void Write_DS1302(INT8U addr,INT8U dat)/读取当前日期时间/void GetDateTime(

47、)/设置时间(仅设置时/分/秒)/void SetDateTime()五、设计过程评估与改进:个人心得体会、改进的意见和建议。通过这次课程设计让我们熟悉学会了 LCD12864的相关使用方法,提高了 我们的编程能力,增加了我们团队合作的意识以及相互协作的能力。我们认为, 在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程 中,我们通过查找大量资料,不仅培养了独立思考、动手操作的能力,而且在各 种其它能力上也都有了提高。另外通过这次课程设计更加让我们清晰的认识到了 理论与实际相结合的重要性,发现了我们的不足。整个过程中遇到一些困难,当 然这也给了我们攻克难关的机会,大大地锻炼了我们解决问题的能力,加强了我 们的信心,这些对我们以后的工作和生活都有很大的帮助,让我们获益匪浅。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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