单片机原理与应用课程设计基于atmega16实现的电压和温度的采集及液晶显示系统

上传人:沈*** 文档编号:60749511 上传时间:2022-03-09 格式:DOC 页数:29 大小:335KB
收藏 版权申诉 举报 下载
单片机原理与应用课程设计基于atmega16实现的电压和温度的采集及液晶显示系统_第1页
第1页 / 共29页
单片机原理与应用课程设计基于atmega16实现的电压和温度的采集及液晶显示系统_第2页
第2页 / 共29页
单片机原理与应用课程设计基于atmega16实现的电压和温度的采集及液晶显示系统_第3页
第3页 / 共29页
资源描述:

《单片机原理与应用课程设计基于atmega16实现的电压和温度的采集及液晶显示系统》由会员分享,可在线阅读,更多相关《单片机原理与应用课程设计基于atmega16实现的电压和温度的采集及液晶显示系统(29页珍藏版)》请在装配图网上搜索。

1、课程设计任务书课程设计任务书学生姓名:学生姓名: 专业班级:专业班级: 自动化自动化 05010501 班班 指导教师:指导教师: 工作单位:工作单位: 自动化学院自动化学院 题题 目目: : 电压和温度的采集及液晶显示电压和温度的采集及液晶显示 要求完成的主要任务要求完成的主要任务: : (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)系统能够测量环境温度,测量范围 0-100 摄氏度。(2)系统能够测量给定电压,测量范围 0-5V。 (3)电压测量精确到 0.01 伏,温度测量精确到 0.1 摄氏度。(4)具有液晶实时显示当前电压及温度的功能。时间安排:时间安排:序序号号

2、设计内容设计内容所用时间所用时间1选题及调研1 天2硬件软件设计2 天3硬件软件调试及撰写报告1 天答辩1 天合 计1 周指导教师签名:指导教师签名: 年年 月月 日日系主任(或责任教师)签名:系主任(或责任教师)签名: 年年 月月 日日目录目录摘要摘要.3 31.1. 硬件选择及各模块组成硬件选择及各模块组成.4 41.11.1 设计原设计原理理.4 41.21.2 器件选择及基本原理器件选择及基本原理.4 41.2.1 模数转换模块.41.2.2 ATmega16 芯片模块.51.2.3 DS18B20 模块.61.2.4 液晶显示器模块.72 2 各模块实现方法说明及整体电路图各模块实现

3、方法说明及整体电路图 .92.1 温度采集.92.2 电压采集.92.3 液晶中文显示.92.4 整体电路图 .10103.3.软件设计软件设计.11113.1 程序设计流程图 .11113.2 源程序 .11114 4 仿真调试结果仿真调试结果.1212总结总结.1313参考文献:参考文献:.1414附录附录 1 1 .1515主程序源程序主程序源程序: :.1515显示驱动程序源程序显示驱动程序源程序: :.2222摘要摘要此次课程设计是基于 ATmega16 实现的电压和温度的采集及液晶显示系统。该系统主要包括控制器、温度传感器、外部参考电压及测试电压、液晶显示器几个硬件部分。控制器采用

4、的 8 位 AVR 系列单片机-ATmega16,有高性能、低功耗等优点,电压采集是通过单片机内部的数模转换器实现的;温度传感器则采用 DS18B20 实现,该传感器有低功耗单总线控制的特点,显示部分采用控制芯片为 KS0108 的 12864 液晶显示器,通过单片机的 I/O 口直接驱动。关键词:关键词: AVR ATmega16 温度传感器 DS18B20 12864 液晶显示器1.1. 硬件选择及各模块组成硬件选择及各模块组成1.1 设计原理整个系统主要涉及数据采集,数据处理,数据显示 3 方面内容。利用单片机内部的数模转换器完成电压数据的采集,将外部待测的模拟电压信号转换为数字信号,单

5、片机中读取这个转换值会根据参考电压进行相关的处理计算出实际的电压值。温度采集通过温度传感器在单片机工作时不断查询其温度信息以备显示。显示部分主要是 12864 液晶显示器,并在单片机运行时不断更新采集到的电压和温度信息。1.2 器件选择及基本原理1.2.11.2.1 模数转换模块模数转换模块由于单片机只能处理数字信号,因此外部模拟信号必须经过转换,变成数字信号之后才能输入到单片机中。模数转换器就是一种将模拟信号转换成数字信号的器件,ATmega16 单片机的片内包含一个 8 通道的 10 位数模转换器,其内部结构如下图图 1。 如图,ATmega16 单片机的模数转换单元包括一个 8 通道的模

6、拟开关,一个采样保持比较器,一个转换逻辑和 3 个控制/状态寄存器。ADC 可以将输入的模拟电压信号转换成一个 10 位的数字量信号。输入模拟电压的范围介于AGND 和 AVcc 之间,输入模拟信号通道通过 ADMUX 寄存器选择。ADC 模块由 ADSCRA 寄存器的 ADEN 位使能,当 ADC 模块被启动以后,用户可以通过 SFIOR 寄存器选择单次转换模式或者连续转换模式。ADC 的转换结果存储在 ADCH 和 ADCL 两个寄存器中。图 1 ATmega16 单片机的模数转换器结构1.2.21.2.2 ATmega16ATmega16 芯片芯片模块模块ATmega16 本身具有数模转

7、换功能,完全能够满足本设计题目的要求,故本设计不需要接单独的 AD 芯片,由单片机实现电压采集和控制器的作用。具体引脚应用及引脚图如下:端口端口 A(PA7.PA0)A(PA7.PA0): 端口 A 做为 A/D 转换器的模拟输入端。端口 A 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口 A 处于高阻状态。本设计只需要用到一个 A/D 转换口,可以任意选用 PA7 到 PA0 的任意一个端口作为电压输入,本设计选用 PA4。

8、端口端口 B(PB7.PB0)B(PB7.PB0): 端口 B 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。本设计中 PB2-PB6 口用来连接 12864 液晶显示器的 5 个控制断口驱动显示。端口端口 C(PC7.PC0)C(PC7.PC0): 端口 C 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。本设计中用将 PC0用做普通 IO 端口,通过程序实现与 DS18B20 的单总线通信。端口端口 D

9、(PD7.PD0)D(PD7.PD0): 端口 D 为 8 位双向 I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。本设计中 PD 口全部接在 12864 液晶显示器的 8 个数据口,用来传送液晶显示器的指令和数据。AREF A/D 的模拟基准输入引脚,由于设计要求测量电压范围为 0-5V,故此引脚接 5V 的基准电压源。RESET: 复位输 入引脚。持 续 时间超过最 小门限时间 的低电平将引 起系统复位持续时间小于门限间的脉冲不能保证可靠复位。 地,电源略地,电源略1.2.31

10、.2.3 DS18B20DS18B20 模块模块DS12B20 数字温度计提供 9 位温度数,指示器件的温度。信息经过但借口送入 DS18B20 或从 DS18B20 送出,从单片机到 DS18B20 只需要一条线,因此成为单线。DS18B20 不需要外部电源。它允许在许多不同的地方防止温度传感器。DS18B20 的测量范围从-55 摄氏度到+125 摄氏度,增量值为 0.5 摄氏度,可在 1s内把温度变换成数字。其引脚分布和内部结构如图 2,图 3。图 2 DS18B20 内部结构图 图 3 DS18B20 引脚分布图根据 DS18B20 的协议规定,微控制起控制 DS18B20 完成温度转

11、换必须经过以下 4 个步骤:1,每次读写前对 DS18B20 进行复位初始化。复位要求 CPU 将数据线下拉480us,然后释放,DS18B20 收到信号后等待 60us 左右,然后发出 60us-240us的低存在脉冲,主 CPU 收到此信号表示复位成功。2,发送一条 ROM 指令。3,发送存储器指令4,进行数据通信。1.2.41.2.4 液晶显示器液晶显示器为了能够显示汉字,本设计选用了点阵型 LCD,型号为 HS12864。HS12864是一种图形点阵液晶显示模块,它主要由行驱动器/列驱动器和 128*64 全点阵液晶显示器组成,它除了可以显示 8*4(16*16 点阵)的汉字外,还可以

12、完成图形显示功能,应用十分灵活。HS12864 的主要技术参数如下:电源:DC+5,模块内自带用语 LCD 驱动的负压电路。显示内容:128*64 全屏幕电阵。指令系统:七种指令。接口形式:与控制器采用 8 位数据总线和 8 条控制线相连。模块主要构成,引脚功能及指令表:图 4 HS12864 引脚功能表图 5 HS12864 模块内部结构图 6 HS12864 指令表2 2 各模块实现方法说明各模块实现方法说明及整体电路图及整体电路图2.1 温度采集由于 DS18B20 采用的是单总线协议,在对其进行操作时必须严格满足其时序,否则无法正常工作和读取结果。PA0 与 DS18B20 的数据线相

13、连,通过编制程序使 IO 口严格满足其工作时序并循环读取温度转换结果以便显示。具体软件流程见“软件设计”2.22.2 电压采集电压采集通过单片机的 ADC 模块实现,外围只需要接 5V 的参考电压。通过在单片机初始化时设置 PA4 口的工作模式为 ADC 模式,并通过设置相关寄存器对 DAC 进行初始化。程序运行中通过指令循环启动 DA,并读出转换数值。具体软件实现流程见“软件设计” 。2.32.3 液晶中文显示液晶中文显示此部分的主要工作是根据器件手册上提供的时序编写液晶驱动程序,生成显示汉字,显示字符,显示数字的子函数,在主函数只需要调用即可。另外由于 HS12864 不带中文字库,必须手

14、动生成所需要显示汉字及字符的字库,可以用专门的软件实现。要显示的部分分为提示语言的固定汉字和不断刷新的数字量,固定显示的汉字只需写入一次即可,不断刷新的部分通过在程序中不断刷新显示内容以实现动态显示。2.4 整体电路图 图 7 整体电路仿真图3.软件设计软件设计3.1 程序设计流程图主程序流程: 显示程序流程:图 8 程序流程图3.2 源程序见附件 14 4 仿真调试结果仿真调试结果 上图为程序运行仿真后的效果,仿真中待测电压由滑动变阻器分压产生 0-5V 的电压,由 PA4 输入单片机。DS18B20 的数据线与 PA0 相连,当前温度可以任意调,现在为 17 度。可以看到经过单片机采集并显

15、示的电压值与电压表示数完全一致,温度值与 DS18B20 显示的数值完全一致。说明系统工作正常,顺利实现了设计功能。总结总结几天的课程设计终于过去了,虽然说过程比较累,但我发现它对自己还是很有帮助的,比如说人比较懒,不愿意动,平时知识也不扎实,但在设计过程中碰到自己不懂的问题却只有耐心下来,查书或在网上弄清楚答案。再就是说通过本次实验我对本课程有了更多的了解与认识,课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习

16、是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。 在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学。 我的心得也就这么多了,总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。 参考文献:1、金春林,邱慧芳.AVR 单片机 C 语言编程

17、与应用实例 .清华大学出版社,20072、陈冬云,杜敬仓等.单片机原理与开发指导.清华大学出版社,2006附录附录 1 1 :主程序源程序主程序源程序: :/ICC-AVR application builder : 2008-5-14 1:11:50/ Target : M16/ Crystal: 8.0000Mhz#include #include #include 12864.hunsignedunsigned intint input,voltage;/定义变量voidvoid port_init(voidvoid)/端口初始化 PORTA = 0 x00; DDRA = 0 x00;

18、 PORTB = 0 xFF; DDRB = 0 xff; PORTC = 0 xFF; /m103 output only DDRC = 0 x00; PORTD = 0 xFF; DDRD = 0 x00;voidvoid delayus(unsignedunsigned intint n)/us 延时unsignedunsigned intint a;unsignedunsigned intint i;a=n; forfor (;a!=0;a-) forfor(i=8;i!=0;i-);voidvoid delayms(uchar p)uchar a=0; uchar b=0; forf

19、or(;ap;a+) forfor(;b0;i-) value=1;DDRC|=BIT(PC0);PORTC&=BIT(PC0);delayus(1);DDRC&=BIT(PC0);mid=PINC&0X01;ifif(mid) value|=0 x80; delayus(60); returnreturn(value);voidvoid write_byte(charchar val)/*DS18B20 写一个字节 uchar i,mid; forfor(i=8;i0;i-) DDRC|=BIT(PC0);/ PORTC&=BIT(PC0);delayus(2);mid=val&0 x01;

20、ifif(mid) PORTC|=BIT(PC0);elseelse PORTC&=BIT(PC0); delayus(60);val=val1;delay(60);PORTC|=BIT(PC0); intint read_temp(voidvoid)/读取温度 uchar high=0,low=0; intint x; ifif(!reset() write_byte(0 xcc);/写 ROM 指令 write_byte(0 x44); delayms(1000); reset(); write_byte(0 xcc); write_byte(0 xbe); low=read_byte()

21、; high=read_byte(); x=(high&0 x0f); x=8; x|=low; returnreturn x; voidvoid dis_num(uchar page,uchar row,longlong intint i)/*显示 0-9 数字 switchswitch(i) casecase 0 : number_disp(page,row,zero);breakbreak; casecase 1: number_disp(page,row,one);breakbreak; casecase 2: number_disp(page,row,two);breakbreak;

22、 casecase 3: number_disp(page,row,three);breakbreak; casecase 4: number_disp(page,row,four);breakbreak; casecase 5: number_disp(page,row,five);breakbreak; casecase 6: number_disp(page,row,six);breakbreak; casecase 7: number_disp(page,row,seven);breakbreak; casecase 8: number_disp(page,row,eight);bre

23、akbreak; casecase 9: number_disp(page,row,nine);breakbreak; defaultdefault : ; voidvoid dis_temp(uchar x,uchar y,intint z)/显示温度uchar lie;intint zz;lie=y;zz=z;ifif(z0)number_disp(x,lie,fuhao);zz=-zz;lie+;ifif(z/100)dis_num(x,lie,zz/100);lie+;ifif(z/10)dis_num(x,lie,(zz%100)/10);lie+;ifif(z/1)dis_num(

24、x,lie,zz%10);lie+;ifif(z=0)dis_num(x,lie,0);lie+; voidvoid adc_init(voidvoid)/初始化 ADC ADCSR = 0 x00; /disable adc ADMUX = 0 x04; /select adc input 0 ACSR = 0 x80; ADCSR = 0 xE1;voidvoid Conversion(voidvoid)input=(ADCH8)+ADCL;voltage=input*(5.0/1023)*100;voidvoid dis_volt(uchar x,uchar y,intint z)/显示

25、电压值 uchar lie; intint zz; lie=y; zz=z; ifif(!(z/100)dis_num(x,lie,0);lie+; ifif(z/100)dis_num(x,lie,zz/100);lie+; number_disp(x,lie,xiaoshudian); lie+; dis_num(x,lie,(zz%100)/10);lie+; dis_num(x,lie,zz%10);lie+; ifif(z=0)dis_num(x,lie,0);lie+; number_disp(x,lie,fute); voidvoid main(voidvoid)/主函数inti

26、nt temp=0; init_devices();/初始化单片机 adc_init();/初始化 ADC word_disp(0,0,dian); word_disp(0,1,ya); word_disp(0,2,shi); word_disp(2,0,wen); word_disp(2,1,du); word_disp(2,2,shi);/静态提示信息显示whilewhile(1) Conversion();/启动 DA 转换 temp=read_temp();/读取温度 dis_volt(0,6,voltage);/显示电压值 dis_temp(2,6,temp);/显示温度值 显示驱动

27、程序源程序显示驱动程序源程序: :/ Target : M128/ Crystal: 8.0000Mhz#ifndef _12864_h#define _12864_h#include #include /* */#defineCLRBIT0(PORTB,RS) PORTB=PORTB&0 xDF /RS-PB5#defineSETBIT0(PORTB,RS) PORTB=PORTB|0 x20#defineCLRBIT1(PORTB,RW) PORTB=PORTB&0 xBF /RW-PB6#defineSETBIT1(PORTB,RW) PORTB=PORTB|0 x40#defineCL

28、RBIT2(PORTB,E) PORTB=PORTB&0 xFB /E-PB2#defineSETBIT2(PORTB,E) PORTB=PORTB|0 x04#defineCLRBIT3(PORTB,CS1) PORTB=PORTB&0 xEF /CS1-PB4#defineSETBIT3(PORTB,CS1) PORTB=PORTB|0 x10#defineCLRBIT4(PORTB,CS2) PORTB=PORTB&0 xF7 /CS2-PB3#defineSETBIT4(PORTB,CS2) PORTB=PORTB|0 x08/DATA-PORTA#define uchar unsig

29、ned char#define uint unsigned int/* */uchar wen=0 x10,0 x22,0 x64,0 x0C,0 x80,0 x00,0 xFE,0 x92, 0 x92,0 x92,0 x92,0 x92,0 xFF,0 x02,0 x00,0 x00, 0 x04,0 x04,0 xFE,0 x01,0 x40,0 x7E,0 x42,0 x42, 0 x7E,0 x42,0 x7E,0 x42,0 x42,0 x7E,0 x40,0 x00,;uchar du=0 x00,0 x00,0 xFC,0 x24,0 x24,0 x24,0 xFC,0 xA5

30、, 0 xA6,0 xA4,0 xFC,0 x24,0 x34,0 x26,0 x04,0 x00, 0 x40,0 x20,0 x9F,0 x80,0 x42,0 x42,0 x26,0 x2A, 0 x12,0 x2A,0 x26,0 x42,0 x40,0 xC0,0 x40,0 x00,; uchar fuhao=0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x01,0 x01,0 x01,0 x01,0 x01,0 x01,; uchar dian=0 x00,0 x00,0 xF8,0 x48,0 x48

31、,0 x48,0 x48,0 xFF, 0 x48,0 x48,0 x48,0 x48,0 xF8,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x0F,0 x04,0 x04,0 x04,0 x04,0 x3F, 0 x44,0 x44,0 x44,0 x44,0 x4F,0 x40,0 x70,0 x00,; uchar ya= 0 x00,0 x00,0 xFE,0 x02,0 x42,0 x42,0 x42,0 x42, 0 xFA,0 x42,0 x42,0 x42,0 x62,0 x42,0 x02,0 x00, 0 x20,0 x18,0 x27,0 x20,

32、0 x20,0 x20,0 x20,0 x20, 0 x3F,0 x20,0 x21,0 x2E,0 x24,0 x20,0 x20,0 x00,; uchar shi=0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x36,0 x36,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,; uchar xiaoshudian=

33、0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x30,0 x30,0 x00,0 x00,0 x00,0 x00,0 x00,; uchar fute=0 x08,0 x78,0 x88,0 x00,0 x00,0 xC8,0 x38,0 x08, 0 x00,0 x00,0 x07,0 x38,0 x0E,0 x01,0 x00,0 x00,; uchar zero= 0 x00,0 xE0,0 x10,0 x08,0 x08,0 x10,0 xE0,0 x00, 0 x00,0 x0F,0 x10,0 x20,0 x20,

34、0 x10,0 x0F,0 x00,; uchar one= 0 x00,0 x10,0 x10,0 xF8,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x20,0 x20,0 x3F,0 x20,0 x20,0 x00,0 x00,; uchar two= 0 x00,0 x70,0 x08,0 x08,0 x08,0 x88,0 x70,0 x00, 0 x00,0 x30,0 x28,0 x24,0 x22,0 x21,0 x30,0 x00,; uchar three= 0 x00,0 x30,0 x08,0 x88,0 x88,0 x48,0 x30,0 x00

35、, 0 x00,0 x18,0 x20,0 x20,0 x20,0 x11,0 x0E,0 x00,; uchar four= 0 x00,0 x00,0 xC0,0 x20,0 x10,0 xF8,0 x00,0 x00, 0 x00,0 x07,0 x04,0 x24,0 x24,0 x3F,0 x24,0 x00,; uchar five= 0 x00,0 xF8,0 x08,0 x88,0 x88,0 x08,0 x08,0 x00, 0 x00,0 x19,0 x21,0 x20,0 x20,0 x11,0 x0E,0 x00,; uchar six= 0 x00,0 xE0,0 x

36、10,0 x88,0 x88,0 x18,0 x00,0 x00, 0 x00,0 x0F,0 x11,0 x20,0 x20,0 x11,0 x0E,0 x00,; uchar seven= 0 x00,0 x38,0 x08,0 x08,0 xC8,0 x38,0 x08,0 x00, 0 x00,0 x00,0 x00,0 x3F,0 x00,0 x00,0 x00,0 x00,; uchar eight= 0 x00,0 x70,0 x88,0 x08,0 x08,0 x88,0 x70,0 x00, 0 x00,0 x1C,0 x22,0 x21,0 x21,0 x22,0 x1C,

37、0 x00,; uchar nine= 0 x00,0 xE0,0 x10,0 x08,0 x08,0 x10,0 xE0,0 x00, 0 x00,0 x00,0 x31,0 x22,0 x22,0 x11,0 x0F,0 x00,; uchar t=0;/以上全部是字模,包括需要显示的汉字,字符和数字。voidvoid delay(unsignedunsigned longlong intint time)/延时 uint k; forfor(k=time;k2;k-);voidvoid setpage(uchar page)/ delay(100); SETBIT2(PORTB,E);

38、CLRBIT1(PORTB,RW); CLRBIT0(PORTB,RS); page=page & 0 x07; / 0=line=7 page=page|0 xb8; PORTD=page; CLRBIT2(PORTB,E);voidvoid setlie(uchar lie)/ 设置列 delay(100); SETBIT2(PORTB,E); CLRBIT1(PORTB,RW); CLRBIT0(PORTB,RS); lie=lie&0 x3f; / 0=column=63 lie=lie | 0 x40; PORTD=lie; CLRBIT2(PORTB,E);voidvoid cho

39、osepinmu(uchar pin)/选择屏幕 delay(100); SETBIT2(PORTB,E); CLRBIT1(PORTB,RW); CLRBIT0(PORTB,RS); switchswitch(pin) casecase 1: SETBIT4(PORTB,CS2);CLRBIT3(PORTB,CS1); casecase 2: SETBIT3(PORTB,CS1);CLRBIT4(PORTB,CS2); casecase 0: SETBIT4(PORTB,CS2);SETBIT3(PORTB,CS1); CLRBIT2(PORTB,E);voidvoid writebyte(

40、uint shuma)/写字节指令 delay(100); SETBIT2(PORTB,E); CLRBIT1(PORTB,RW); SETBIT0(PORTB,RS); PORTD=shuma; CLRBIT2(PORTB,E);voidvoid Clr_Scr()/清屏 unsignedunsigned intint m; unsignedunsigned charchar j,k;CLRBIT3(PORTB,CS1); SETBIT4(PORTB,CS2);forfor(k=0;k8;k+) setpage(k);setlie(0); forfor(j=0;j64;j+) writeby

41、te(0 x00); delay(300);forfor(m=0;m5;m+); CLRBIT4(PORTB,CS2); SETBIT3(PORTB,CS1);forfor(k=0;k8;k+) setpage(k);setlie(0); forfor(j=0;j64;j+) writebyte(0 x00); delay(300);forfor(m=0;m5;m+);/*-初始化 LCD-*/voidvoid init_lcd() SETBIT2(PORTB,E); CLRBIT1(PORTB,RW); CLRBIT0(PORTB,RS); PORTD = 0 x3F;CLRBIT2(POR

42、TB,E); /*-显示字符子函数-*/voidvoid word_disp(uchar pag,uchar row, uchar *P) unsignedunsigned intint m; uchar j=0;uchar i=0;uchar k=0; forfor(j=0;j2;j+) ifif (row 4) k=row;CLRBIT3(PORTB,CS1);SETBIT4(PORTB,CS2);elseelsek = row-4;CLRBIT4(PORTB,CS2);SETBIT3(PORTB,CS1); setpage(pag+j); setlie(k*16);forfor(i=0;

43、i16;i+) writebyte(*(P+16*j+i);forfor(m=0;m500;m+); /*-显示汉字子函数-*/voidvoid number_disp(uchar pag,uchar row, uchar *P) unsignedunsigned intint m; uchar j=0;uchar i=0;uchar k=0; forfor(j=0;j2;j+) ifif (row 8) k=row;CLRBIT3(PORTB,CS1);SETBIT4(PORTB,CS2);elseelsek = row-8;CLRBIT4(PORTB,CS2);SETBIT3(PORTB,CS1); setpage(pag+j); setlie(k*8);forfor(i=0;i8;i+) writebyte(*(P+8*j+i);forfor(m=0;m500;m+); 本科生课程设计成绩评定表姓姓 名名雷霆雷霆性性 别别男男专业、班级专业、班级自动化自动化 0501 班班课程设计题目:课程设计题目: 智能小车控制智能小车控制课程设计答辩或质疑记录:课程设计答辩或质疑记录:成绩评定依据:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)最终评定成绩(以优、良、中、及格、不及格评定)指导教师指导教师签字:签字: 年年 月月 日日

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