资源简介
利用51单片机做一个简单的示波器 通过12864显示简单波形
代码片段和文件信息
#include
#include
#include
sbit RS=P2^5; //并行的指令/数据选择信号 H数据 L命令
sbit RW=P2^6; //并行读写选择信号 H读 L写
sbit E=P2^7; //并行使能端 H有效 L无效
sbit led=P1^0;
sbit jiakey=P3^0;
sbit jiankey=P3^1;
sbit ledkey=P3^2;
#define LcdData P0
unsigned char dati=0;
unsigned char dat[100];
unsigned char over=0;
unsigned int temp=0;
unsigned char mode=0;
unsigned int delnop=0;
//////////////////////////////////////
unsigned char Lcd_CheckBusy(void)
{
unsigned char Busy;
LcdData=0xff;
RS=0;
RW=1;
E=1;
_nop_();
Busy=LcdData&0x80;
E=0;
return Busy;
}
/*********************************
向LCD写入字节数据
**********************************/
void Lcd_WriteData(unsigned char Data)
{
while(Lcd_CheckBusy());
RS=1;
RW=0;
E=0;
_nop_();
_nop_();
LcdData=Data;
E=1;
_nop_();
_nop_();
E=0;
}
/***********************************
从LCD中读出数据
************************************/
unsigned char Lcd_ReadData(void)
{
unsigned char Temp;
while(Lcd_CheckBusy());
LcdData=0xff;
RS=1;
RW=1;
E=1;
_nop_();
Temp=LcdData;
E=0;
return Temp;
}
/*************************************
想LCD中写入指令代码
**************************************/
void Lcd_WriteCmd(unsigned char CmdCode)
{
while(Lcd_CheckBusy());
RS=0;
RW=0;
E=0;
_nop_();
_nop_();
LcdData=CmdCode;
_nop_();
_nop_();
E=1;
_nop_();
_nop_();
E=0;
}
/**************************************
为加速逻辑运算而设置的掩码表,这是以牺牲空间而换取时间的办法
***************************************/
code unsigned int LcdMaskTab[]={0x00010x00020x00040x00080x00100x00200x00400x00800x01000x02000x04000x08000x10000x20000x40000x8000};
/***************************************
向LCD指定坐标写入一个象素象素颜色有两种,0代表白(无显示),1代表黑(有显示)
****************************************/
void Lcd_PutPixel(unsigned char xunsigned char yunsigned char Color)
{
unsigned char zw;
unsigned int Temp;
if(x>=128||y>=64)
return;
Color=Color%2;
w=15-x%16;//确定对这个字的第多少位进行操作
x=x/16;//确定为一行上的第几字
if(y<32) //如果为上页
z=0x80;
else //否则如果为下页
z=0x88;
y=y%32;
//EA=0;
Lcd_WriteCmd(0x36);
Lcd_WriteCmd(y+0x80); //行地址
Lcd_WriteCmd(x+z); //列地址
Temp=Lcd_ReadData();//先空读一次
Temp=(unsigned int)Lcd_ReadData()<<8;//再读出高8位
Temp|=(unsigned int)Lcd_ReadData();//再读出低8位
//EA=1;
if(Color==1) //如果写入颜色为1
Temp|=LcdMaskTab[w];//在此处查表实现加速
else //如果写入颜色为0
Temp&=~LcdMaskTab[w];//在此处查表实现加速
//EA=0;
Lcd_WriteCmd(y+0x80); //行地址
Lcd_WriteCmd(x+z); //列地址
Lcd_WriteData(Temp>>8);//先写入高8位,再写入低8位
Lcd_WriteData(Temp&0x00ff);
Lcd_WriteCmd(0x30);
//EA=1;
}
/*****************************************
清除Lcd全屏,如果清除模式Mode为0,则为全屏清除为颜色0(无任何显示)
否则为全屏清除为颜色1(全屏填充显示)
******************************************/
void Lcd_Clear(unsigned char Mode)
{
unsigned char xyii;
unsigned char Temp;
if(Mode%2==0)
Temp=0x00;
else
Temp=0xff;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-09 17:11 基于51示波器\
目录 0 2017-12-05 21:12 基于51示波器\单片机示波器--12864\
目录 0 2017-12-06 23:03 基于51示波器\单片机示波器--12864\1-程序\
文件 6376 2013-06-24 10:27 基于51示波器\单片机示波器--12864\1-程序\STARTUP.A51
文件 14051 2017-03-31 21:02 基于51示波器\单片机示波器--12864\1-程序\STARTUP.LST
文件 751 2017-03-31 21:02 基于51示波器\单片机示波器--12864\1-程序\STARTUP.OBJ
文件 26284 2017-11-09 21:28 基于51示波器\单片机示波器--12864\1-程序\main.LST
文件 43123 2017-11-09 21:28 基于51示波器\单片机示波器--12864\1-程序\main.OBJ
文件 42 2017-11-09 21:28 基于51示波器\单片机示波器--12864\1-程序\main.__i
文件 11898 2017-03-31 21:02 基于51示波器\单片机示波器--12864\1-程序\main.c
文件 17731 2015-09-25 22:11 基于51示波器\单片机示波器--12864\1-程序\stc12c5a.H
文件 36407 2017-11-20 19:11 基于51示波器\单片机示波器--12864\1-程序\程序
文件 38743 2017-11-20 19:11 基于51示波器\单片机示波器--12864\1-程序\程序.M51
文件 13278 2017-11-20 19:11 基于51示波器\单片机示波器--12864\1-程序\程序.hex
文件 56 2017-11-20 19:11 基于51示波器\单片机示波器--12864\1-程序\程序.lnp
文件 349 2017-11-20 19:11 基于51示波器\单片机示波器--12864\1-程序\程序.plg
文件 84310 2017-04-20 20:31 基于51示波器\单片机示波器--12864\1-程序\程序.uvgui.Administrator
文件 70673 2017-12-06 23:03 基于51示波器\单片机示波器--12864\1-程序\程序.uvgui.Shinelon
文件 5380 2017-11-29 09:43 基于51示波器\单片机示波器--12864\1-程序\程序.uvopt
文件 14024 2017-11-29 09:43 基于51示波器\单片机示波器--12864\1-程序\程序.uvproj
文件 56456 2017-11-09 21:28 基于51示波器\单片机示波器--12864\1-程序\程序_uvopt.bak
文件 14024 2017-04-20 19:39 基于51示波器\单片机示波器--12864\1-程序\程序_uvproj.bak
目录 0 2017-12-05 21:12 基于51示波器\单片机示波器--12864\10-参考设计文档\
文件 1389933 2016-05-13 14:14 基于51示波器\单片机示波器--12864\10-参考设计文档\基于LCD12864显示器的数字示波器设计.pdf
文件 2831872 2016-05-13 14:11 基于51示波器\单片机示波器--12864\10-参考设计文档\数字存储示波器-毕业论文(西交大).doc
文件 373233 2016-05-13 14:12 基于51示波器\单片机示波器--12864\10-参考设计文档\简易数字示波器设计.doc
目录 0 2017-12-05 21:12 基于51示波器\单片机示波器--12864\11-开发资料\
文件 58880 2016-03-10 09:01 基于51示波器\单片机示波器--12864\11-开发资料\LCD12864显示屏_带中文字库.doc
目录 0 2017-12-05 21:12 基于51示波器\单片机示波器--12864\11-开发资料\单片机资料\
文件 6705087 2016-03-10 08:59 基于51示波器\单片机示波器--12864\11-开发资料\单片机资料\STC12C5Axx.pdf
目录 0 2017-12-05 21:12 基于51示波器\单片机示波器--12864\2-电路图\
............此处省略88个文件信息
相关资源
- 星云5100调参软件合集
- 基于单片机的蓝牙计步器的设计
- 基于Arduino单片机的循迹型小车
- multiPIE 人脸数据库1515张,含表情,光
- AD软件51单片机常见的库PCB封装.zip
- VMware-Horizon-View-Client-x86-2.3.3-1745122.e
- 单片机原理与接口技术(第二版李全
- keil4 for C51完美破解版
- 基于AT89C51的温度报警器
- 新编MCS-51单片机应用设计(清晰最新
- 蓝桥杯单片机历年真题锦含二到九届
- 简单粗暴学蓝牙4.0CC2541篇_201802240551
- stm32智能搬运码垛小车
- 51 单片机 计算器 简单加减乘除
- Hi3516AV100_xxxSPC070最新版SDK开发包
- 基于STM32的数字示波器设计原理图+p
- 数字示波器—普中STM32开发板
- stc系列单片机驱动12864屏幕万年历翻转
- 12.3 (16F5117h).zip
- weixin_38356902_10551465.zip
- 基于单片机的车辆信息自动识别系统
- 基于51单片机的太阳能手机充电系统
- SIMI808的单片机调试程序STM32,51 12,
- kernel-devel-3.10.0-514.el7.x86_64.rpm
- 3维立体旋转LED显示屏
- keil C51完全破解版uVision2.rar
- 锐起3.9.0510完美破解版
- DP-851绝版资料,带PC监控调试软件和说
- 单片机外围器件实用手册——数据传
- 基于C51的无线温控系统
评论
共有 条评论