led点阵书写显示屏简介+程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LED点阵书写显屏
作品是一个用光敏三极管做中断源的16X16点阵,已经实现了7个功能:
1.书写
2.反显
3.单笔擦除
4.移动文字
5.储存文字(可用显示功能一次放映5个字)
6.清屏(直接擦除屏幕上的文字)
7.放映存储的文字
程序:
8.#include
9.#include
10.#define uchar unsigned char
11.#define uint unsigned int
12.#define LCM_Data P1//数据接口
13.uint dlzbw=0x0001,dlzbw1;
14.uchar Count_a=0; //菜单翻页计数;
15.uchar Count_b; //比较值
16.uchar Count_c=0; //子菜单计数
17.uchar p2hc=0xe0;// p2hcl;
18.uchar p0hc,p0hc1,p0hcl,p0hc1l,sxhc=0;
19.
20.
21.uchar hhc1=0x08,hhc2,lhc1=0x08,lhc2,ydhc=0;
22.
23.
24.
25.uchar lie_1,hang_1;//列行初值为0
26.uint dl,wl,hhc,lhc;//点亮和微亮的延时量缓存行列值
27.uint gbhc=0,dbhc=0;//光笔缓存
28.uchar a_1=1;
29.uchar b_1=0;
30.uchar c_1=0;
31.uchar d_1=0;
32.uchar e_1=0;
33.uint led_dl[16]={0};
34.uint xdata led_dl1[16]={0};
35.uint xdata led_dl2[16]={0};
36.uint xdata led_dl3[16]={0};
37.uint xdata led_dl4[16]={0};
38.sbit s1 = P2^6;
39.sbit s2 = P2^7;
40.sbit LCM_E=P0^2;//定义接口
41.sbit LCM_RW=P0^1;
42.sbit LCM_RS= P0^0;
43.sbit LCM_G0=P2^4;
44.uchar code net0[] = {"Writing"};
45.uchar code net1[] = {">1.Re-display"};
46.uchar code net2[] = {">2.Erase"};
47.uchar code net3[] = {">3.Drag"};
48.uchar code net4[] = {">4.Storage"};
49.uchar code net5[] = {">5.Eliminate"};
50.uchar code net6[] = {">6.Display"};
51.uchar code net7[] = {">Return"};
52.uchar code net8[] = {"Frist_word"};
53.uchar code net9[] = {"Second_word"};
54.uchar code net10[] = {"Third_word"};
55.uchar code net11[] = {"Fourth_word"};
56.uchar code net12[] = {"Wellcome!"};
57.uint code dh[8][16]={0xffff,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,
58.0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xffff,
59.0xffff,0xffff,0xc003,0xc003,0xc003,0xc003,0xc003,0xc003,
60.0xc003,0xc003,0xc003,0xc003,0xc003,0xc003,0xffff,0xffff,
61.0xffff,0xffff,0xffff,0xe007, 0xe007,0xe007,0xe007,0xe007,
62.
0xe007,0xe007,0xe007,0xe007,0xe007,0xffff,0xffff,0xffff,
63.0xffff,0xffff,0xffff,0xffff,0xf00f,0xf00f,0xf00f,0xf00f,
64.0xf00f,0xf00f,0xf00f,0xf00f,0xffff,0xffff,0xffff,0xffff,
65.0xffff,0xffff,0xffff,0xffff,0xffff,0xf81f,0xf81f,0xf81f,
66.0xf81f,0xf81f,0xf81f,0xffff,0xffff,0xffff,0xffff,0xffff,
67.0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xfc3f,0xfc3f,
68.0xfc3f,0xfc3f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
69.0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xfe7f,
70.0xfe7f,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
71.0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
72.0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};
73.
74./********************延时函数************************/
75.void delayliang(uint x)
76.{while(x--);}
77./********************延时函数************************/
78.void delay(uint x,uint y)
79.{while(x--){while(y--);}
80.}
81./********************400ms延时延时函数************************/
82.void Delay400Ms(void)
83.{ uchar TempCycA = 5;
84.unsigned int TempCycB;
85.while(TempCycA--)
86.{ TempCycB=7269;
87.while(TempCycB--);