cloak-12864.rar

  • PUDN用户
    了解作者
  • C/C++
    开发工具
  • 80KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 5
    下载次数
  • 2012-08-04 10:39
    上传日期
12864 显示时钟 按键控制 液晶屏显示 温度 游戏
cloak-12864.rar
  • 时钟12864
  • 时钟 12864.uvproj
    12.9KB
  • 时钟 12864.plg
    41.5KB
  • 时钟 12864.LST
    73.5KB
  • 时钟 12864_uvopt.bak
    53.9KB
  • 时钟 12864.M51
    72.4KB
  • 时钟 12864.lnp
    37B
  • 时钟 12864.uvopt
    53.9KB
  • 时钟 12864.hex
    19.4KB
  • 时钟 12864.OBJ
    71.2KB
  • 时钟 12864.c
    41.2KB
  • 时钟 12864
    57.6KB
  • 时钟 12864_uvproj.bak
    0B
内容介绍
#include <stdio.h> #include <reg52.h> #include <intrins.h> #include <string.h> #define uchar unsigned char #define uint unsigned int #define AddWr 0xae //写数据地址,需要参考24c02芯片文档 #define AddRd 0xaf //读数据地址 unsigned char Number[3]; unsigned char Number1[5]; unsigned char Number2[1]; unsigned char Number3[25]; unsigned char Number4[25]; unsigned char Number5[1]; ////////#define fous 11059200 ////////#define band 9600 uchar code table[]={"星期一""星期二""星期三""星期四""星期五""星期六""星期日"}; sbit led=P1^4; sbit key1=P3^0; sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; uchar code LCD_data1[]; uchar code LCD_data2[]; uchar code LCD_picture1[]; uchar code LCD_picture2[]; //uchar code menu_pic[6][96]; uchar code mode_2num[11][64]; uchar code mode_3num[10][32]; uchar code mode_1num[32]; sbit Sda=P1^2; //定义总线连接端口 sbit Scl=P1^1; sbit WP=P1^0; //写保护,这里不使用 void lcm_w_word(unsigned char *str); void keyscan(); void keyscan1(); void keyscanshizhong(); void display(); void display1(); void display2(); void displayriqi(); void displayxingqi(); void displaykey2time(); void stopp(); void zhongzhuan(); void displaycaidan(); void displayshizhong(); void displayshizhongduoge(); void displayshi(); void displaynaozhong(); void displaymiaobiao(); void keyscanhui(); void keyscanriqi(); void fanhui(); void jianxie(); void shezhi(); sbit RS = P2^4; sbit RW = P2^5; sbit EN = P2^6; sbit PSB = P2^1; sbit RES = P2^3; sbit Dataport = P0; sbit Busyport = P0^7; bit flag,flagde,flagfe,flagee,flagwe,flagre,flagyong; uchar d,key1Save,key1Check,key1Times,day,yue,xianshi,key2time,jiyikey2time; uchar nian1,nian2,num6,num7,num8,xiaomiao,miaomiao,damiao; uchar d1,d2,d3,d4,d5,d6,num3,num4,num5,num,num1,num2,aa,count,count1,count2,num6; uchar num6,num7,num8; void delay(unsigned int m) //1US延时程序 { unsigned int i,j; for(i=0;i<m;i++) for(j=0;j<100;j++); } void delay_us(unsigned int temp) { while(temp--); } /////////////////////////////////////////////////////////////// //判LCM忙子函数 void check_LCD_busy (void) { Dataport = 0xff; RS = 0; RW = 1; EN = 1; while (Busyport); EN = 0; } /////////////////////////////////////////////////////////////// //写命令子函数 void write_com(uchar Command) { check_LCD_busy(); RW=0; RS=0; P0=Command; EN=1; delay_us(15); EN=0; } //////////////////////////////////////////////////////////////// //写数据子函数 void write_data(uchar Data) { check_LCD_busy(); RW=0; RS=1; delay_us(15); P0=Data; EN=1; delay_us(15); EN=0; } void lcm_w_word(unsigned char *str) { while(*str != '\0') { write_data(*str++); } *str = 0; } ///////////////////////////////////////////////////////////////// //LCM清屏函数 void lcdClear (void) { write_com(0x01); } //////////////////////////////////////////////////////////////// //LCM复位函数 void reset () { RES=0; //复位 delay(1); //延时 RES=1; //复位置高 delay(10); } void Start(void) { Sda=1; _nop_();_nop_(); Scl=1; _nop_();_nop_();_nop_();_nop_();_nop_(); Sda=0; _nop_();_nop_();_nop_();_nop_();_nop_(); Scl=0; } /*------------------------------------------------ 停止IIC总线 ------------------------------------------------*/ void Stop(void) { Sda=0; _nop_(); Scl=1; _nop_();_nop_();_nop_();_nop_();_nop_(); Sda=1; _nop_();_nop_();_nop_();_nop_();_nop_(); Scl=0; } /*------------------------------------------------ 应答IIC总线 ------------------------------------------------*/ void Ack(void) { // Sda=0; _nop_();_nop_();_nop_(); Scl=1; _nop_();_nop_();_nop_();_nop_();_nop_(); Scl=0; _nop_();_nop_(); } /*------------------------------------------------ 非应答IIC总线 ------------------------------------------------*/ void NoAck(void) { // Sda=1; _nop_();_nop_();_nop_(); Scl=1; _nop_();_nop_();_nop_();_nop_();_nop_(); Scl=0; _nop_();_nop_(); } /*------------------------------------------------ 发送一个字节 ------------------------------------------------*/ void Send(unsigned char Data) { unsigned char BitCounter=8; unsigned char temp; do { temp=Data; Scl=0; _nop_();_nop_();_nop_();_nop_();_nop_(); if((temp&0x80)==0x80) Sda=1; else Sda=0; Scl=1; temp=Data<<1; Data=temp; BitCounter--; } while(BitCounter); Scl=0; } /*------------------------------------------------ 读入一个字节并返回 ------------------------------------------------*/ unsigned int Read(void) { unsigned char temp=0; unsigned char temp1=0; unsigned char BitCounter=8; Sda=1; do { Scl=0; _nop_();_nop_();_nop_();_nop_();_nop_(); Scl=1; _nop_();_nop_();_nop_();_nop_();_nop_(); if(Sda) temp=temp|0x01; else temp=temp&0xfe; if(BitCounter-1) { temp1=temp<<1; temp=temp1; } BitCounter--; } while(BitCounter); return(temp); } /*------------------------------------------------ 写入数据 ------------------------------------------------*/ void WrToROM(unsigned char Data[],unsigned char Address,unsigned char Num) { unsigned char i; unsigned char *PData; PData=Data; for(i=0;i<Num;i++) { Start(); Send(AddWr); //写入芯片地址 Ack(); Send(Address+i);//写入存储地址 Ack(); Send(*(PData+i));//写数据 Ack(); Stop(); delay(20); } } /*------------------------------------------------ 读出数据 ------------------------------------------------*/ void RdFromROM(unsigned char Data[],unsigned char Address,unsigned char Num) { unsigned char i; unsigned char *PData; PData=Data; for(i=0;i<Num;i++) { Start(); //写入芯片地址 Send(AddWr); Ack(); Send(Address+i);//写入存储地址 Ack(); Start(); Send(AddRd); //读入地址 Ack(); *(PData+i)=Read();//读数据 Scl=0; NoAck(); Stop(); } } void num2_asc_dis(uchar num,uchar x_0) { uchar i,y_0=0x90; for(i=0;i<32;i++) // 十位个位一起读入 { write_com(0x36); write_com(y_0++); write_com(x_0); write_com(0x30); write_data(mode_2num[num][i*2]); write_data(mode_2num[num][i*2+1]); if(i==15) { x_0+=8; y_0=0x80; } } write_com(0x36); } void num3_asc_dis(uchar num,uchar x_0) { uchar i,y_0=0x88; //不明白 待考证明 验证 for(i=0;i<16;i++) { write_com(0x36); write_com(y_0++); write_com(x_0); write_com(0x30); write_data(mode_3num[num][i*2]); write_data(mode_3num[num][i*2+1]); } write_com(0x36); } void num1_asc_dis(uchar x_0) { uchar i,y_0=0x80; for(i=0;i<16;i++) { write_com(0x34); write_com(y_0++); write_com(x_0); write_com(0x30); write_data(mode_1num[i*2]); write_data(mode_1num[i*2+1]); } write_com(0x36); } void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)//泛白 { u
评论
    相关推荐
    • Proteus7.12.rar
      Proteus7.12完美破解版.rar电路仿真软件很好用可以仿真单片数字模拟电路
    • VHDL 的实例程序,共44个.rar
      经典VHDL 的实例程序,共44个!要下载的尽快
    • USBtoRS232Driver.rar
      USB转串口驱动程序,可以用在笔记本电脑上,方便的通过串口给单片机下载程序!
    • 模糊控制程序.rar
      模糊PID控制程序的源码,是作业,有讲解,
    • 串口编程源代码.rar
      这是本人最近几年所编写的串行通讯的代码集,可以供大家参考学习。
    • DELTA_PLC.rar
      台达PLC Modbus协议通信dll com控件
    • hongwaigooog.rar
      单片机红外遥控最全的资料,包含很多当前电视遥控专用芯片的解码方式,C语言和汇编语言编写的解码范例程序,看完了你就会了!
    • MF500绝密.rar
      非接触式IC卡开发板源程序,包括原理图/PCB图;源程序在KEIL环境下编译,打开压缩包后直接点击PRJ文件,即可编译使用。 这是个保密文件,做Mifare one卡开发人基本上都用过到这个源代码。
    • 20078251299410.rar
      C51实用程序(45个) I/O、定时器、中断、看门狗、计数器、软件AD、VB串口、93c06驱动、24c02系列驱动、7219、20045、软件陷阱、串口中断、码值转换、AVR通讯、IIC、DS1302、DS1820、SPI、1602、12232、12864、T6963、1330、PC键、键盘输入法、智能化、飞机游戏、贪吃蛇、多级菜单实例等
    • mcudesign.rar
      单片机设计,毕业设计 16×16点阵(滚动显示)论文+程序 cdma通信系统中的接入信道部分进行仿真与分析 LED显示屏动态显示和远程监控的实现 MCS-51单片机温度控制系统 USB接口设计 毕业设计(论文)OFDM通信系统基带数据 仓库温湿度的监测系统 单片机串行通信发射机 单片机课程设计__电子密码锁报告 单片机控制交通灯 电动智能小车(完整论文 电气工程系06届毕业设计开题报告 电信运营商收入保障系统设计与实现 电子设计大赛点阵电子显示屏(A题 电子时钟 火灾自动报警系统设计 基于GSM短信模块的家庭防盗报警系统 基于GSM模块的车载防盗系统设计 TC35i 资料 基于网络的虚拟仪器测试系统 门控自动照明电路 全遥控数字音量控制的D类功率放大器 数控直流稳压电源完整论文 数字密码锁设计 数字抢答器(数字电路) 数字时钟 水箱单片机控制系统 同步电机模型的MATLAB仿真 温度监控系统的设计 用单片机控制直流电机 用单片机实现温度远程显示 智能家用电热水器控制器 智能型充电器电源和显示的设计 自动加料机控制系统