实验8 LCD8*8点阵
1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次
接线:
P0接J12、P1接J20、P2接J19
/**
1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次
**/
#include <REG51.H>
unsignedchar code table_LeftRight[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedchar code table_TopBottom[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
enum DisplayDirecte{
Left2Right,
Right2Left,
Top2Bottom,
Bottom2Top
};
void delay(void)
{
unsignedchar i,j,k;
;k--)
;i--)
;j--);
}
/***********************************************************
显示的规则
***********************************************************/
void DisplayRule(enum DisplayDirecte displayDirecte,unsignedchar index){
switch(displayDirecte){
case Left2Right:
P2=table_LeftRight[index];
P0=0xff;
P1=0xff;
break;
case Right2Left:
P1-index];
P0=0xff;
P2=0xff;
break;
case Top2Bottom:
P2=0x00;
P1=0xff;
P0-index];
break;
case Bottom2Top:
P1=0x00;
P2=0xff;
P0=table_TopBottom[index];
break;
}
}
/***********************************************************
次
***********************************************************/
void Display3Time(enum DisplayDirecte displayDirecte){
unsignedchar i,RepeatTime;
;RepeatTime++)//控制重复的次数
{
;i++)
{
DisplayRule(displayDirecte,i);
delay();
}
}
}
void main(void)
{
)
{
Display3Time(Left2Right);
Display3Time(Right2Left);
Display3Time(Top2Bottom);
Display3Time(Bottom2Top);
}
}
2.自行编码,控制LCD显示0~F或一些简单汉字(红绿交替显示)
3./*****************************************************************************************
4.2.自行编码,控制LCD显示0~F或一些简单汉字(红绿交替显示)
5.******************************************************************************************/
#include<reg51.h>
#define Lenth 19
unsignedchar code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//列选通
]={
{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},//0
{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2
{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3
{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4
{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},//5
{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},//6
{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8
{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00},//9
{0x00,0x00,0x7F,0x48,0x48,0x30,0x00,0x00},//P
{0x00,0x00,0x7F,0x48,0x4C,0x73,0x00,0x00},//R
{0x00,0x00,0x7F,0x49,0x49,0x49,0x00,0x00},//E
{0x00,0x00,0x3E,0x41,0x41,0x62,0x00,0x00},//C
{0x00,0x00,0x7F,0x08,0x08,0x7F,0x00,0x00},//H
{0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00},//I
{0x00,0x7F,0x10,0x08,0x04,0x7F,0x00,0x00},//N
{0x7C,0x48,0x48,0xFF,0x48,0x48,0x7C,0x00}, //中
{0x18,0x24,0x42,0x21,0x42,0x24,0x18,0x00} //心形
};
unsignedint timecount1 , timecount2;
unsignedchar cntx , cnty ;
void main(void)
{
cnty;
)
{
if(cnty<Lenth)//红色
{
P1=0xFF;
P2=tab[cntx]; // 列线
P0=digittab[cnty][cntx]; // 行线
}
else//绿色
{
P2=0xFF;
P1=tab[cntx]; // 列线
P0=digittab[cnty-Lenth][cntx]; // 行线
}
//用于控制动态扫描的速度
)
{
timecount1;
;
}
//用于控制动字符间的切换速度
)
{
timecount2;
;
}
}
}
实验8 LCD8*8点阵的更多相关文章
- matlab 整局-部视知觉实验(读取excel点阵设计图替换数据)
-------给我那编程盲的女盆友,我怎么感觉是我选了一门课???做了这么多次作业,还是整理出来吧,要知道双鸭山大学心理系单身妹子还是很多啊. 整体-局部范式是心理学的经典实验之一.请尝试利用 MAT ...
- 单片机与控制实验(2)——LED点阵显示屏
一.实验目的和要求 了解LED点阵显示的基本原理和实现方法.掌握点阵汉字库的编码和从标准字库中提取汉字编码的方法. 二.实验设备 单片机测控实验系统 LED点阵显示器实验模块 Keil开发环境 STC ...
- 玩转u8g2 OLED库 MAX7219_32X8点阵模块
u8g2 OLED库 + MAX7219_32X8点阵模块 理论基础 玩转u8g2 OLED库,一篇就够 玩转u8g2 OLED库,一篇就够(字数太多 要分篇) 实验内容 Full screen bu ...
- [Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵
一.什么是TPYBoard开发板 TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机, ...
- 单片机与控制实验(5)——重量测量并在LCD12864显示
一.实验目的和要求 掌握点阵式液晶显示屏的原理和控制方法,掌握点阵字符的显示方法.掌握模拟/数字(A/D)转换方式,进一步掌握使用C51语言编写程序的方法,使用C51语言编写实现重量测量的功能. 二. ...
- 基于Proteus仿真的Arduino学习(2)——LED点阵探究A(LED点阵基础)
一.前言: 随着LED的普及,以LED点阵为基础的显示设置层出不穷.例如,公交车的线路提示牌.高速公路的信息提示牌,安装在大楼上的广告屏幕等.下面,我们将由简单到复杂地探索各种LED点阵的使用方法,同 ...
- 10-8位7段数码管驱动实验——小梅哥FPGA设计思想与验证方法视频教程配套文档
芯航线--普利斯队长精心奉献 实验目的: 1.实现FPGA驱动数码管动态显示: 2.使用In system sources and probes editor工具,输入需要显示在数码管上的的数据, ...
- Verilog HDL那些事_建模篇笔记(实验九:VGA驱动)
1.了解VGA协议 VGA协议有5个输入信号,列同步信号(HSYNC Signal),行同步信号(VSYNC Signal),红-绿-蓝,颜色信号(RGB Signal). 一帧屏幕的显示是由行从上至 ...
- 如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上)
当前进展: 一.我的构想:如何为编程爱好者设计一款好玩的智能硬件(一)——即插即用.积木化.功能重组的智能硬件模块构想 二.别人家的孩子:如何为编程爱好者设计一款好玩的智能硬件(二)——别人是如何设计 ...
随机推荐
- vue中$ref的基本用法
1.使用在一般的标签上 <div id="app"> <input ref="count" type="text" v-m ...
- IOS初级:NSUserDefaults
NSUserDefaults(偏好设置),一个APP对应一个偏好设置 保存/新增数据 //存储数据 NSUserDefaults *defaults = [NSUserDefaults standar ...
- spring学习 十五 spring的自动注入
一 :在 Spring 配置文件中对象名和 ref=”id” ,id 名相同使用自动注入,可以不配置<property/>,对应的注解@Autowired的作用 二: 两种配置办法 (1 ...
- 在python中while
一.While循环 1.while循环格式 while 条件 : while循环体 当条件为Ture时,执行循环体,直到条件是假,停止循环. count = 1 # count 计数 一般用于计数 w ...
- org.jsoup.HttpStatusException: HTTP error fetching URL. Status=403
爬取网站的时候 conn = Jsoup.connect(url).timeout(5000).get();直接用get方法,有些网站可以正常爬取. 但是有些网站报403错误,403是一种在网站访问的 ...
- mysql的一些配置优化
[mysqld]lower_case_table_names=1datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Di ...
- 2018.12.15 poj3415 Common Substrings(后缀自动机)
传送门 后缀自动机基础题. 给两个字符串,让你求长度不小于kkk的公共子串的数量. 这题可以用后缀自动机解决废话 考虑对其中一个字串建出后缀自动机,然后用另一个在上面跑,注意到如果一个状态有贡献的话, ...
- Github上下载某一个文件夹
1.安装svn sudo apt-get install subversion 2.修改下载文件夹的链接 例如,https://github.com/a***b/learn/tree/master/m ...
- shell 脚本学习
Shell简介 概述 Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令,并把它送入内核去执行.内核是Linux系统的心脏,从开机自检就驻留在计算机的内 ...
- bzoj2893(费用流)
先缩点,然后拆点,其实是很经典的一种操作,把不好做的点拆成边,然后我一开始想的是网络流,答案当然是增广次数, 但可以发现跑网络流的话不同的跑法增广次数不一样,不太好找最小的.我们可以换一种神奇的思路, ...