单片机实验5(LED与大屏幕显示)_第1页
单片机实验5(LED与大屏幕显示)_第2页
单片机实验5(LED与大屏幕显示)_第3页
单片机实验5(LED与大屏幕显示)_第4页
单片机实验5(LED与大屏幕显示)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 实验五实验五 LED LED 数码管与大屏幕显示数码管与大屏幕显示一、实验目的一、实验目的: : 1 1、掌握数码管与大屏幕汉字显示技术。、掌握数码管与大屏幕汉字显示技术。 2 2、用、用XLISPXLISP软件和软件和keil-uvision2keil-uvision2集成调试软件进行集成调试软件进行实验并能得到正确的实验结果。实验并能得到正确的实验结果。二、实验内容二、实验内容 1 1、基本部分、基本部分 (1 1)用)用LEDLED数码管动态显示数码管动态显示“01234567”01234567” (2 2)大屏幕汉字显示屏显示)大屏幕汉字显示屏显示“倚天一出宝刀屠龙倚天一出宝刀屠龙”

2、。 2 2、提高部分、提高部分 编程序用大屏幕显示编程序用大屏幕显示“北京理工珠海学院北京理工珠海学院”。 三、实验步骤三、实验步骤 1 1、数码管动态扫描显示、数码管动态扫描显示0123456701234567 (1 1)硬件连接:硬件连接: 使用使用USBUSB线和串口线线和串口线, ,将将XL2000XL2000综合仿真仪与综合仿真仪与微型计算机连接起来微型计算机连接起来; ; 数码管的数据(段码)口数码管的数据(段码)口 JP5JP5接到接到CPUCPU部份部份的的P0P0口口JP51JP51。 数码管的显示位(位码)口数码管的显示位(位码)口 JP8JP8接到接到CPUCPU部部份的

3、份的P2P2口口JP52JP52。 #include #include void delay50ms()void delay50ms() TH1=0 x3c; TH1=0 x3c; / 50ms / 50ms定时定时 TL1=0 xb0;TL1=0 xb0; TR1=1; TR1=1; while(!TF1); while(!TF1); TF1=0; TF1=0; void main()void main() unsigned char unsigned char led=0 x28,0 x7e,0 xa2,0 x62,0 x74,0 x61,0 x21,0 x7a;led=0 x28,0 x

4、7e,0 xa2,0 x62,0 x74,0 x61,0 x21,0 x7a;unsigned char i,w;unsigned char i,w; TMOD=0 x10; TMOD=0 x10;(2 2)参考程序)参考程序 while(1) while(1) w=0 x01; w=0 x01; /位选码为位选码为01H01H for(i=0;i8;i+) for(i=0;i8;i+) P2 P2=w=w; ;/位选码送位选码送P2P2 w=1; w=1;/位选码左移位选码左移 P0=ledi;/P0=ledi;/显示码送显示码送P0P0 delay50ms(); delay50ms();/

5、延时延时 仿真仪仿真仪LEDLED排列:排列:c e dp d g a f bc e dp d g a f b 问题:为何不能正确显示?如何使显示稳定?问题:为何不能正确显示?如何使显示稳定? 2 2、大屏幕汉字显示、大屏幕汉字显示 (1 1)硬件连接)硬件连接 用一根用一根8PIN8PIN的数据排线,一端接到汉字屏部分的的数据排线,一端接到汉字屏部分的JP55JP55一端接到一端接到CPUCPU部份的部份的P0P0口口JP51JP51, 用一根用一根8PIN8PIN的数据排线,一端接到汉字屏部分的的数据排线,一端接到汉字屏部分的JP54JP54一端接到一端接到CPUCPU部份的部份的P2P2

6、口口JP52JP52, 用一根用一根4PIN4PIN数据线一端插入数据线一端插入CPUCPU部分部分JP44JP44(P1P1口)口)的的P1.0,P1.1,P1.2,P1.3P1.0,P1.1,P1.2,P1.3另外一端插入汉字屏部分另外一端插入汉字屏部分的的JP62.JP62.(2 2)参考程序)参考程序#include #include #define uchar unsigned char /#define uchar unsigned char /宏定义宏定义#define uint unsigned int#define uint unsigned intuchar code uc

7、har code yi_1=0 x01,0 x00,0 x02,0 x00,0 x04,0 x00,0 x1F,0 xFF,yi_1=0 x01,0 x00,0 x02,0 x00,0 x04,0 x00,0 x1F,0 xFF,0 xE2,0 x00,0 x22,0 x00,0 x22,0 xFC,0 x26,0 x88,0 xE2,0 x00,0 x22,0 x00,0 x22,0 xFC,0 x26,0 x88,0 x2A,0 x88,0 xF2,0 x88,0 x2A,0 xFA,0 x26,0 x01,0 x2A,0 x88,0 xF2,0 x88,0 x2A,0 xFA,0 x26

8、,0 x01,0 x63,0 xFE,0 x26,0 x00,0 x02,0 x00,0 x00,0 x00; /0 x63,0 xFE,0 x26,0 x00,0 x02,0 x00,0 x00,0 x00; /汉字汉字“倚倚”uchar code uchar code tian=0 x02,0 x01,0 x42,0 x01,0 x42,0 x02,0 x42,0 x04,tian=0 x02,0 x01,0 x42,0 x01,0 x42,0 x02,0 x42,0 x04,0 x42,0 x08,0 x42,0 x30,0 x42,0 xC0,0 x7F,0 x00,0 x42,0 x

9、08,0 x42,0 x30,0 x42,0 xC0,0 x7F,0 x00,0 x42,0 xC0,0 x42,0 x30,0 x42,0 x08,0 x42,0 x04,0 x42,0 xC0,0 x42,0 x30,0 x42,0 x08,0 x42,0 x04,0 xC2,0 x02,0 x46,0 x03,0 x02,0 x02,0 x00,0 x00; /0 xC2,0 x02,0 x46,0 x03,0 x02,0 x02,0 x00,0 x00; /汉字汉字 “ “天天” ” uchar code uchar code yi_2=0 x01,0 x00,0 x01,0 x00,

10、0 x01,0 x00,0 x01,0 x00,yi_2=0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00,0 x03,0 x00,0 x01,0

11、 x00,0 x00,0 x00; /0 x01,0 x00,0 x03,0 x00,0 x01,0 x00,0 x00,0 x00; /汉字汉字 “一一” ” uchar code uchar code chu =0 x00,0 x00,0 x00,0 x7F,0 x3F,0 x02,0 x02,0 x02,chu =0 x00,0 x00,0 x00,0 x7F,0 x3F,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 xFF,0 xFE,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 xFF,0

12、 xFE,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x3F,0 x02,0 x00,0 x7F,0 x00,0 x00,0 x00,0 x00; /0 x3F,0 x02,0 x00,0 x7F,0 x00,0 x00,0 x00,0 x00; /汉字汉字 “出出”uchar code uchar code bao =0 x08,0 x00,0 x30,0 x02,0 x22,0 x02,0 x22,0 x42,bao =0 x08,0 x0

13、0,0 x30,0 x02,0 x22,0 x02,0 x22,0 x42,0 x22,0 x42,0 x22,0 x42,0 xA2,0 x42,0 x63,0 xFE,0 x22,0 x42,0 x22,0 x42,0 xA2,0 x42,0 x63,0 xFE,0 x22,0 x42,0 x22,0 x52,0 x22,0 xDA,0 x26,0 x42,0 x22,0 x42,0 x22,0 x52,0 x22,0 xDA,0 x26,0 x42,0 x22,0 x06,0 x28,0 x02,0 x30,0 x00,0 x00,0 x00; /0 x22,0 x06,0 x28,0

14、x02,0 x30,0 x00,0 x00,0 x00; /汉字汉字 “宝宝” ” uchar code uchar code dao =0 x00,0 x00,0 x20,0 x01,0 x20,0 x02,0 x20,0 x04,dao =0 x00,0 x00,0 x20,0 x01,0 x20,0 x02,0 x20,0 x04,0 x20,0 x18,0 x20,0 x60,0 x3F,0 x80,0 x20,0 x00,0 x20,0 x18,0 x20,0 x60,0 x3F,0 x80,0 x20,0 x00,0 x20,0 x00,0 x20,0 x02,0 x20,0 x0

15、1,0 x20,0 x02,0 x20,0 x00,0 x20,0 x02,0 x20,0 x01,0 x20,0 x02,0 x7F,0 xFC,0 x20,0 x00,0 x00,0 x00,0 x00,0 x00; /0 x7F,0 xFC,0 x20,0 x00,0 x00,0 x00,0 x00,0 x00; /汉字汉字 刀刀 uchar code uchar code tu =0 x00,0 x02,0 x00,0 x0C,0 x7F,0 xF4,0 x51,0 x08,tu =0 x00,0 x02,0 x00,0 x0C,0 x7F,0 xF4,0 x51,0 x08,0 x5

16、5,0 x10,0 x55,0 x3F,0 x55,0 x6A,0 x5F,0 xAA,0 x55,0 x10,0 x55,0 x3F,0 x55,0 x6A,0 x5F,0 xAA,0 x55,0 x2A,0 x57,0 x2A,0 x55,0 x2A,0 x59,0 x2A,0 x55,0 x2A,0 x57,0 x2A,0 x55,0 x2A,0 x59,0 x2A,0 xF1,0 x7F,0 x43,0 x20,0 x01,0 x00,0 x00,0 x00; /0 xF1,0 x7F,0 x43,0 x20,0 x01,0 x00,0 x00,0 x00; /汉字汉字 “ “屠屠”

17、” uchar code uchar code l0ng=0 x08,0 x00,0 x08,0 x01,0 x08,0 x02,0 x08,0 x0C,l0ng=0 x08,0 x00,0 x08,0 x01,0 x08,0 x02,0 x08,0 x0C,0 x08,0 x30,0 x09,0 xC4,0 xFE,0 x04,0 x08,0 x08,0 x08,0 x30,0 x09,0 xC4,0 xFE,0 x04,0 x08,0 x08,0 x0F,0 xFC,0 x48,0 x22,0 x28,0 x42,0 x08,0 x82,0 x0F,0 xFC,0 x48,0 x22,0

18、x28,0 x42,0 x08,0 x82,0 x0B,0 x02,0 x18,0 x02,0 x08,0 x1E,0 x00,0 x00; /0 x0B,0 x02,0 x18,0 x02,0 x08,0 x1E,0 x00,0 x00; /汉字汉字 “ “龙龙”uchar uchar * *p=yi_1; /p=yi_1; /定义一指针变量,并指向汉字定义一指针变量,并指向汉字 倚倚 void delay_scan() void delay_scan() /列扫描延迟函数列扫描延迟函数uchar i=100;uchar i=100;while(i-);while(i-);void disp

19、lay(uchar void display(uchar * *word) word) uchar i=0;uchar i=0; uchar j=0; uchar j=0; p=word; / p=word; /指针指针P P指向要显示的汉字数组首地址指向要显示的汉字数组首地址 while(j80) while(j80) / /显示的一个汉字持续时间显示的一个汉字持续时间 for(i=0;i16;i+) /16 for(i=0;i16;i+) /16列逐列扫描列逐列扫描 P0 = 0; P0 = 0; / /清除前面的数据清除前面的数据 P2 = 0;P2 = 0; P1=i; P1=i; /

20、 /扫描第扫描第i i列列 P0=P0=* *(p+i(p+i* *2); 2); / /上上8 8行赋值行赋值 P2=P2=* *(p+i(p+i* *2+1); /2+1); /下下8 8行赋值行赋值 delay_scan(); /delay_scan(); /列扫描延迟列扫描延迟 j+; j+; / /显示一次汉字加显示一次汉字加1 1 for(i=0;i16;i+)for(i=0;i16;i+) /16 /16列逐列扫描列逐列扫描 P1=i; P1=i; / /扫描第扫描第i i列列 P0=0 x00; P0=0 x00; / /上上8 8行赋值行赋值 P2=0 x00; P2=0 x

21、00; / /下下8 8行赋值行赋值 delay_scan();delay_scan(); / /列扫描延迟列扫描延迟char code SST5163 _at_ 0 x003b; /char code SST5163 _at_ 0 x003b; /仿真器保留仿真器保留 main() /main() /主函数主函数 while(1) while(1) display(yi_1); display(yi_1);/显示汉字显示汉字 倚倚 display(tian); display(tian); /显示汉字显示汉字 天天 display(yi_2); display(yi_2);/显示汉字显示汉字

22、 一一 display(chu); display(chu); /显示汉字显示汉字 出出 display(bao); display(bao);/显示汉字显示汉字 宝宝 display(dao); display(dao); /显示汉字显示汉字 刀刀 display(tu); display(tu); /显示汉字显示汉字 屠屠 display(lOng); display(lOng); /显示汉字显示汉字 龙龙 思考题:编程序用大屏幕显示思考题:编程序用大屏幕显示“北京理工珠海学院北京理工珠海学院”。四、实验要求:四、实验要求: 1 1、实验前必须编写好程序、实验前必须编写好程序 2 2、程序

23、必须编译通过并运行正确、程序必须编译通过并运行正确 3 3、提交试验报告:报告内容、提交试验报告:报告内容 (1 1)实验目的)实验目的 (2 2)实验内容)实验内容 (3 3)实验原理图)实验原理图 (4 4)实验线路连接)实验线路连接 (5 5)实验步骤)实验步骤 (6 6)实验结果)实验结果本次实验报告中要回答的问题本次实验报告中要回答的问题 1 1、分析动态扫描显示的原理和优缺点、分析动态扫描显示的原理和优缺点 2 2、说明、说明大屏幕显示的工作大屏幕显示的工作原理原理 附录:附录:kerl-uvisionkerl-uvision集成调试软件的操作集成调试软件的操作 操作步骤:操作步骤

24、:(1)双击桌面上的)双击桌面上的UV2UV2快捷图标,启动软件。快捷图标,启动软件。(2 2)点击)点击P P工程工程 N N新建工程新建工程 输入文件名并选择输入文件名并选择存入的盘存入的盘( (如如E:)E:)点击保存。出现点击保存。出现CPUCPU屏幕,选屏幕,选AtmelAtmelAT89C51 AT89C51 点确定。屏幕左上方出现图标目标点确定。屏幕左上方出现图标目标1 1,原则上一个程序可建一个工程。原则上一个程序可建一个工程。(3 3)点击文件)点击文件 新建文件新建文件 出现汇编语言输入区。出现汇编语言输入区。输入汇编语言程序,点击文件中的保存,输入:程序输入汇编语言程序,点击文件中的保存,输入:程序名名. .ASM ASM 并选择存入的盘并选择存入的盘( (如如E:)E:)点击保存。点击保存。( (输入的程输入的程序名一般不超过序名一般不超过6 6个字母数字个字母数字, ,以字母打头以字母打头) )(4

温馨提示

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

评论

0/150

提交评论