北理工pic实验五驱动LCD显示程序设计.docxVIP

  • 5
  • 0
  • 约4.85千字
  • 约 7页
  • 2019-09-27 发布于广东
  • 举报

北理工pic实验五驱动LCD显示程序设计.docx

PIC单片机在电子设计系统中的运用 实验报告 实验五 综合设计实验 班级: 姓名: 学号: 实验五综合设计实验 一、实验目的: 1?培养独立编程能力。 考察利用实验电路板使用PIC单片机的能力。 二、实验要求: 仔细阅读《APP001 V2. 4使用手册》,了解实验电路板电路功能。 程序设计内容: 1) 设定常数字符串“C18 Workshop在ROM区 2) 设定变量字符串“A/D Result二”在RAM区 3) 利用LCD函数编程,开启LCD并设定为4-bit模式、5x7双行模式、CURSOR OFF 4) 在LCD的第一行显示 “C18 Workshop EX5” 5) 在LCD的第二行显示“A/D Result =” 6) 调整VR以改变ANO的输入电压,并将其进行A/D转换 7) A/D结果最高的八位显示在IFD 8) 10-bit的A/D结果以ASCH码显示在LCD上 三、实验内容 (DLCD函数说明 void OpenLCD :开启LCD OpenLCD (); (范例) putsLCD putrsLCD :写一字符串到LCD void putsLCD (char *ptr) from RAM voi d putrsLCD (const rom far char *ptr) from ROM WriteDataLCD :写一字符到LCD void WriteDataLCD (unsigncd char data) WriteCmdLCD :写一控制命令到LCD void WriteCmdLCD (DISP_ON ) LCD Set Cursor (unsigned char Y, unsigned char X):设定显示的位置 LCD Set Crus or ( 1,0);将Cursor设定在第二行第一个位置 (2)修改程序并运行 编辑源文件并将源文件存于mccl8B录中 选择目标处理器、建立项目 项目名与源文件同名 选择项目设置 选择语言工具套件: MPLAB cl8c Toolsuite (mecl8. exe), MPL1NK Object Linker (Mplink. exe) 选择MPLAB C18安装目录屮头文件和函数库了目录的路径。 加载源文件和链接文件 编译 用MPLAB SIM软件模拟器进行调试 用MPLAB 1CD2进行调试 四、实验代码修改原理 rtl于LCD的数据线、地址线与LED的线路重叠,因此需要利丿1J分时复丿1]技巧。 程序运行过程屮不断采集模拟最,当旋钮旋转到定值长时间不改变时则认为模拟最采集 完成,LCD输出模拟量,此时关闭LCD的写字符功能,即不再运行LCD写字符,而是运行写PORTD 口的操作,也就是对LED进行操作的过程,从而完成吋分复用。 在调试过程中,LED的灯会抖动,所以在添加的时分复用代码的判定语句中给予一定的 阈值作为缓冲,从而解决模拟器采集过程中不稳定的情形。代码如下 temp-AD_ Temp 10”AD_ Temp-temp 10 即认为连续采集到的模拟量信号值在±10偏差之内吋模拟量稳定、不发牛变化,此时不 对LCD进行操作,而是对LED进行操作。 实验过程中的复位操作很重要,市于字符不断变化,如果没冇复位那么向LCD写字符时 可能由于之前的是4位数而麻来写的字符是3位导致最后一位不发生变化,体现就是看上去仍 然是四位数,所以进行写LCD操作时需要对字符进行复位,用以下代码实现 定义部分 Char LCD_MSG3[]= ”; 对 LCD 写字符前 putsLCD(LCD_MSG3); 此时看上去已经可以了,但是事实上调试过程中发现LED灯并没冇连续变化,这也由于 没冇进行复位导致的,所以在相应的部分加上代码 或者InitializePORT() 或者 InitializePORT() PORTA =0x00; TRISA=0bll011011; 修正LED的输出。 五、实验结果 旋转旋钮,LCD屏幕上显示 C18 Workshop EX5 A/D Value = XXX 其中XXX为十进制数,随旋钮变化。论上应当从0?1024变化,实际值屮最小值为5,最 大值1021,变化可能是山于实验板旋钮的误差,或者采集误差。 LED显示的数字为LCD上显示的二进制数表示的十进制数的高八位。符合实验耍求。 六、实验心得 由于本次试验综合性较强,所以比较闲难,用的时I可也比较多。由于一开始不了解实验 电路板的原理,不知道LCD的数据线、地址线与LED的线路重叠,需要利用分时复用技巧。所 以而两节课尽管用了好长时间分析代码,但是也没有取得什么大收获。后来经过老师的提示, 才知道耍用到分时复用的方法。实验屮还有一个需要解决的问题就是数码管显示不稳定,会

文档评论(0)

1亿VIP精品文档

相关文档