关于12864制作一个秒表程序
更新时间:2023-09-05 12:52:01 阅读量: 教育文库 文档下载
- 关于12月的诗句推荐度:
- 相关推荐
初学者编写,谢谢各位
12864应用实例-秒表
12864是一块128*64的图形显示液晶,在单片机学习领域有着极为广泛的应用,在这里对12864的图形取模, 以及程序编写进行一个51单片机的初步示范,程序为本人借鉴各位网络大神的程序自行综合编写的,如有雷同,呵呵…….
首先是图形函数取模部分:
1. 打开取模软件ZIMO21
2. 打开一张图片,注意图片的格式需为128*64点阵,BMP单色位图格式,可以先用画图程序对图片进行编辑。
3.设置参数:取模方式为C51。
初学者编写,谢谢各位
将取出的代码保存,并且复制到程序的“请输入图形代码” 函数内部。
4.示范程序:
#include<reg52.h> //载入52单片机函数库
#include<intrins.h> //载入位移动函数库
#define uint unsigned int //定义int
#define uchar unsigned char //定义char
#define lcddata P0 //定义端口
sbit rs=P3^5; //数据/命令选择端
sbit rw=P3^6; //读/写 选择端
sbit e=P3^4; //使能信号
sbit busy=P0^7; //忙时检测
uchar code dis1[]={"00"};
uchar code end[]={"时间结束"};
uchar code end2[]={"TIME OVER"};
//uchar code dis1[]={"1234567890"};
uchar code tab[]= //此处请输入图形代码
{
初学者编写,谢谢各位
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x7E,0x01,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xBE,0x01,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0xC4,0x03,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFC,0xE4,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0xF4,0x06,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x8F,0xFC,0x1C,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC3,0xFF,0xF8,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0xE0,0xFF,0xF0,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0x80,0x00,0x1F,0x63,0xFF,0xE0,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xF0,0x00,0x7F,0xF6,0x3F,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0xFF,0xE0,0xE1,0xFC,0x3F,0x80,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xCF,0xF9,0xC0,0xF0,0x3F,0x00,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xC1,0xFF,0x80,0xF0,0x3F,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x60,0xFF,0x80,0x60,0x3E,0x0E,0x60,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x60,0x3F,0x07,0x08,0x3E,0x1E,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x63,0x9F,0x1F,0x0C,0x3E,0x3E,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x61,0xFC,0x7F,0x0C,0x3E,0x7C,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x61,0xF1,0xE6,0x1E,0x3E,0xF9,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x60,0xE3,0x86,0x76,0x3F,0xF9,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x61,0xC6,0x06,0xE6,0x1F,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x31,0x8C,0x0F,0x86,0x1F,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x3B,0x38,0x0F,0x06,0x1F,0xE0,0x60,0x00,0x00,0x00,0x00,0x00,
0x03,0x80,0x00,0x00,0x1F,0x70,0x1C,0x06,0x1F,0xC0,0x60,0x00,0x00,0x00,0x00,0x00,
0x1F,0xFF,0x80,0x00,0x0E,0xE0,0x18,0x06,0x1F,0xFE,0x60,0x00,0x00,0x00,0x00,0x00,
0x3F,0xFF,0xF8,0x1E,0x0E,0xFC,0x30,0xE6,0x1F,0xFE,0xF0,0x00,0x00,0x00,0x00,0x00,
初学者编写,谢谢各位
0x3F,0xFF,0xFF,0xFF,0x8F,0xFC,0x63,0xE6,0x0F,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,
0x7F,0xC1,0xFF,0xFF,0xEF,0xF8,0xFF,0xC6,0x0F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,
0x7E,0x03,0xFF,0xC0,0x7F,0xE3,0xFF,0xF6,0x0F,0xFF,0xC0,0x3F,0xF0,0x00,0x00,0x00,
0x7C,0x0F,0xFF,0xC0,0x3C,0x7F,0x00,0x7F,0x0F,0xFC,0x00,0x07,0xFC,0x00,0x00,0x00,
0xFC,0x3F,0xFF,0xE0,0x10,0x3C,0x01,0xFF,0x8F,0x80,0x00,0x00,0xFE,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xE0,0x00,0x38,0x0F,0x01,0x0F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xC0,0x00,0x18,0x70,0x00,0x06,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0x80,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
0x7F,0xFF,0xFF,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
0x7F,0xFF,0xFE,0x00,0x00,0x00,0x0F,0x80,0x00,0x10,0x00,0x00,0x70,0x00,0x00,0x00,
0x7F,0xFF,0xF8,0x00,0x00,0x00,0x1F,0xE0,0x00,0x30,0x00,0x20,0x70,0x00,0x00,0x00,
0x3F,0xFF,0xE0,0x00,0x00,0x00,0x3C,0x20,0x00,0x70,0x02,0x30,0x70,0x00,0x00,0x00,
0x1F,0xFF,0xC0,0x00,0x00,0x00,0x0C,0x00,0x01,0xE0,0x07,0x60,0x70,0x00,0x00,0x00,
0x1F,0xFF,0x80,0x00,0x00,0x00,0x0C,0x00,0x07,0x80,0x07,0xC0,0x70,0x00,0x00,0x00,
0x0F,0xFF,0x00,0x00,0x00,0x00,0x0E,0x00,0x1E,0x00,0x0F,0xC8,0x60,0x00,0x00,0x00,
0x03,0xFE,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x0D,0x88,0xE0,0x00,0x00,0x00,
0x00,0x7E,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x18,0x09,0xE0,0x00,0x00,0x00,
0x00,0x1E,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x18,0x1F,0xC0,0x00,0x00,0x00,
0x00,0x0F,0xE0,0x00,0x00,0x00,0x7F,0xC0,0x00,0x00,0x30,0x3F,0x80,0x00,0x00,0x00,
0x00,0x03,0xFE,0x00,0x00,0x00,0xFF,0xC0,0x00,0x00,0x70,0x3F,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x80,0x00,0x01,0xFF,0xE1,0xC0,0x00,0x60,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0xE0,0x00,0x03,0x9F,0xB3,0xC0,0x00,0xC4,0xE0,0x00,0x00,0x00,0x00,
0x00,0x00,0x1F,0xF0,0x00,0x07,0x9F,0x9B,0xC0,0x01,0x8F,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x7F,0xF8,0x00,0x0F,0x1F,0x9E,0xC0,0x03,0x1F,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0xF0,0x3E,0x00,0x1F,0x9D,0x0E,0xC0,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,
初学者编写,谢谢各位
0x00,0x01,0xC0,0x1F,0xFC,0xFF,0xF9,0x0C,0xC0,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0xF0,0x03,0xFF,0xF3,0x78,0x8C,0xE0,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xF0,0x00,0x7F,0xC3,0x38,0x8D,0xF0,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x30,0x00,0x07,0x83,0x18,0x0F,0xC0,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x60,0x00,0x03,0xE1,0x98,0x0F,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x30,0x00,0x00,0x01,0x98,0x0C,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3C,0x00,0x00,0x01,0xFF,0x9C,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x1E,0x00,0x00,0x01,0xFF,0xF8,0x40,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x70,0xE0,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xC4,0x00,0x00,0x00,0x01,0xC0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xF7,0x80,0x00,0x00,0x01,0x81,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0xE0,0x00,0xFF,0xC3,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x1F,0xFE,0x00,0x01,0xE7,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0xFF,0xC0,0x00,0x7F,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void delaynms(uint aa) //延时程序
{
uchar bb;
while(aa--)
{
for(bb=0;bb<115;bb++)
初学者编写,谢谢各位
{
;
}
}
}
void busy_lcd(void) //忙时检测函数 无返回值
{
busy=1;
e=0;
rs=0;
rw=1;
e=1;
_nop_(); //等待 空指令 延时大约1us吧...汗颜
while(busy==1); //如果忙时为1
e=0; //关闭使能
}
void wr_i_lcd(comm) //液晶写入函数 指令
{
busy_lcd();
rs=0;
初学者编写,谢谢各位
rw=0;
e=1;
lcddata=comm;
_nop_();
e=0;
}
void wr_d_lcd(dat) //液晶写入函数 数据
{
busy_lcd(); //忙标志位检测
rs=1;
rw=0;
e=1;
lcddata=dat;
_nop_(); //等待
e=0;
}
void init_lcd(void) //初始化函数
{
wr_i_lcd(0x30); //写入基本指令集
delaynms(1); //延时
//wr_i_lcd(0x30); //再次写入基本指令集
//delaynms(1); 可以不要
初学者编写,谢谢各位
wr_i_lcd(0x0c); // 开启液晶显示 关掉游标
delaynms(1); //延时
wr_i_lcd(0x01); //清屏指令
delaynms(20);
wr_i_lcd(0x06); //光标右移动 整体不移动
}
void img_disp(uchar code *img) //图形显示函数 定义code*img为char型变量 最大256 数据指针指向code区
{
uchar i,j; //定义i,j
for(j=0;j<32;j++) //X轴有32个像素 依次读取 上半屏幕 地址计数器为8x64个地址
{
for(i=0;i<8;i++) //读取y轴8个位 每读取一次地址计数器自动加一
{
wr_i_lcd(0x34); //绘图功能关闭
wr_i_lcd(0x80+j); //写入指令 位置为0x80加上j的值 水平坐标
wr_i_lcd(0x80+i); //写入指令 位置为0x80+i的值 寻址初值坐标
wr_i_lcd(0x30); //基本指令集合
wr_d_lcd(img[j*16+i*2]); //写入d15-d8数据 这里是写入函数了就是16个像素的前八个 乘以16代表每行移动了16个字符 乘以2代表一个要读取2个字符的数据
wr_d_lcd(img[j*16+i*2+1]); //写入d7-d0数据 就是16个像素的后八个 +1是因为后八个像素读取的是第二个数据
初学者编写,谢谢各位
}
}
for(j=32;j<64;j++) //下半屏幕
{
for(i=0;i<8;i++)
{
wr_i_lcd(0x34); //关闭绘图功能 此为扩充指令集
wr_i_lcd(0x80+j-32); //将水平坐标写入ram区
wr_i_lcd(0x88+i); //将垂直坐标写入ram区
wr_i_lcd(0x30); //进入基本指令集
wr_d_lcd(img[j*16+i*2]); //将d15-d8写入ram 就是16个像素的前八个 wr_d_lcd(img[j*16+i*2+1]); //将d7-d0写入ram 就是16个像素的后八个 }
}
wr_i_lcd(0x36); //开启绘图显示功能
}
void over_time()
{
uchar x,y,z; wr_i_lcd(0x30); //先开启基本指令集功能
wr_i_lcd(0x86); //第一行倒数第二位
wr_d_lcd(dis1[0]);
wr_i_lcd(0x87); //第一行倒数第二位 wr_d_lcd(dis1[1]);
初学者编写,谢谢各位
delaynms(10); //延时
for(z=0;z<5;z++) //计时调整 z为秒数
{ x=z/10; y=z%10; wr_i_lcd(0x86); //复位 wr_d_lcd(x+0x30); //显示 wr_i_lcd(0x87); //复位 wr_d_lcd(y+0x30); //显示
delaynms(1000); //延时
} }
void end_time() //结束语函数
{ uchar x;
wr_i_lcd(0x30);
delaynms(5); wr_i_lcd(0x92); delaynms(5); for(x=0;x<8;x++) //注意,中文一个占用2个位 { wr_d_lcd(end[x]);
初学者编写,谢谢各位
}
x=0;
wr_i_lcd(0x30);
delaynms(5);
wr_i_lcd(0x89);
delaynms(5);
for(x=0;x<11;x++) //注意,中文一个占用2个位 {
wr_d_lcd(end2[x]);
}
}
void main(void) //主程序 无返回值
{
while(1) //循环
{
init_lcd(); //初始化
img_disp(tab); //显示图形
over_time();
wr_i_lcd(0x01); //计时结束清屏
end_time();
while(1);//显示图形定位
}
}
尼古拉斯@特斯拉
正在阅读:
关于12864制作一个秒表程序09-05
学会适应作文初中3篇04-01
短语结构练习12-05
口语答案---最新整理 -11-27
企业2022年开展安全生产培训工作总结范文【多篇】04-03
班主任安全教育教案 - 图文05-04
倒木是森林的另一种姿势美文11-21
《分类》教学反思08-06
基本电子仪器使用08-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 秒表
- 程序
- 制作
- 关于
- 一个
- 12864
- 银泰网相关数据分析
- 公司章程模板
- 如何上好初中音乐欣赏课
- 【金版学案】2013-2014学年高中地理 同步辅导与检测(中图版必修2,:第二章 第三节 地域文化与城市发展
- 检查计划、培训计划
- 事业单位财政专项资金管理办法
- 【参考文档】入党申请书格式字体的要求-word范文模板 (1页)
- 2-6矩阵的初等变换
- 2018-2019-工会经费审查委员会工作报告-优秀word范文 (4页)
- 短期招聘套餐
- 2019年中国游乐园市场分析报告-行业规模现状与投资战略研究
- 微博时代草根阶层意见领袖的地位变化
- 论建筑工程项目管理质量控制
- 说课稿必修五unit5
- 江南大学2018年上半年教育管理学第3阶段题目
- 人教版七年级上册四单元作文:月亮月亮我问你
- 最新部编版小学道德与法治五年级上册期末专项复习试题含答案(全套)
- 建筑材料考试题及答案
- 中国医科大学《病理学(中专起点大专)》在线作业
- 生物8上复习提纲 人教版 牛牛网