1

关于投票
[开发板]增加新的实验程序,老用户请发邮件索取!

本次共增加2个新的实验程序!

1、上电开机次数程序,通过24C16/32存储上电次数,按中断键次数清0

2、增加汇编的1602液晶程序,结构简单,有注释(方便汇编的使用者)

以前增加的新程序有:

1、电子钟(可显示时间、日期,可通过按键设置时间、日期)

2、小数点后4位的温度DS18B20程序

3、蜂鸣器唱歌程序(可以唱2首歌,中断键换歌)

没有以上程序的开发板老用户发邮件到ahai0306@sina.com  写清姓名和所在城市,我就用印象了。

以后还不断有新的程序发布,大家及时关注本博客!升级程序,技术支持!使初学者掌握更多的单片机知识!

开发板原配程序:

2.2 基础实验
2
21  初学者第一个单片机程序(C语言和汇编程序)

2
22  流水灯(C语言和汇编程序)

2
23  蜂鸣器实验(C语言和汇编程序)

2
24  单个数码管(C语言和汇编程序)

2
25  动态数码管实验(C语言和汇编程序)

2
26  按键实验(C语言和汇编程序)

2
27  外部中断实验(C语言和汇编程序)

2
28  定时器实验(C语言和汇编程序)

2
3 高级实验

2
31  0099秒计时器(C语言)

2
32  24CXX存储器(24C01-24C16的程序,24C32-24C1024的程序,C语言)

2
33  液晶LCD1602C语言)

2
34  温度传感器DS18B20C语言)

2
35  RS232通信(C语言)

2
36  RS485通信(C语言)

2
37  上电时的综合程序(C语言,大部分器件的检测)

23上电时的综合程序2C语言,温度及一些部件的检测)

 

/*
***************************************************************************
*     (C) Copyright 2008,单片机初学者园地
*                  All Rights reserved.
*项目名称: 51单片机学习开发系统            
*本文件名称:kaiji.c  
* 完成作者 : 单片机初学者 QQ:50501160  
ahai0306@sina.com
* 当前版本 : V1.0       
* 完成日期 : 2008年5月1日
* 描    述 : 
*                本程序上电一次,通过数码管增加1次,使用24C16/32存储

*          芯片存储的当前次数按下中断键(SW6)次数清0,或者开机99次后

*          自动清0            
我的博客:http://blog.ednchina.com/ahai0306/
*  开发板介绍:http://blog.ednchina.com/ahai0306/84416/message.aspx
淘宝网店铺地址:http://shop35284066.taobao.com/
我的论坛:http://dianzi.5d6d.com/?fromuser=mcu_51          
****************************************************************************
*/

系统分类: 单片机
用户分类: 单片机开发板
标签: 实验程序 单片机 开发板 学习板 入门
来源: 原创
发表评论 阅读全文(147) | 回复(0)

7

关于投票
[原创]字库12864液晶ST7920驱动C文件!(含原理图)

    今天五一节,大家是不是出去旅游去了,我今天没有事情,也没有出去游玩,传些原创资料给大家参考!

   记得我刚开始用含字库12864液晶时,找一找现成的C程序吧,可惜没有找到,后来干脆自己写一个吧。现在公开给大家参考,可能不是最好的,但我用着很好用!

/*
***************************************************************************
*     (C) Copyright 2007,单片机初学者园地
*                          All Rights reserved.
*项目名称:             
*本文件名称:LCD12864.c  
* 完成作者 : 单片机初学者 QQ:50501160  
ahai0306@sina.com
* 当前版本 : V1.0       
* 完成日期 : 2006年9月9日
* 描    述 : 
*                此程序实现,完成液晶ST7920的驱动程序
*            
我的博客:http://blog.ednchina.com/ahai0306/
*  开发板介绍:http://blog.ednchina.com/ahai0306/84416/message.aspx
淘宝网店铺地址:http://shop35284066.taobao.com/
我的论坛:http://dianzi.5d6d.com/?fromuser=mcu_51          
****************************************************************************
*/

#include "Lcd12864.h"
#include <INTRINS.H>      //调用头文件

/******本段为硬件I/O口定义********/
sbit  EN="P3"^4;
sbit  RW="P3"^3;
sbit  RS="P3"^2;
sbit  Lcd_RST=P3^1;

#define NOP  _nop_(); _nop_()

//延时函数

void delay(uint16 data i)
{
  while(i--);
}

//检测液晶忙状态函数

uint8 CheckBusy(void)
{
  uint8 a;
  RS=0;
  RW=1;
 NOP;
  EN=1;
 NOP;
 P2=0xff;
  a=P2;
 EN=0;
      if(a&0x80)
    return OK;
       else
          return NOK;
}

//向液晶发送命令
void SendLcdCommand (uint8 command)
{
 NOP;NOP;
 
// delay(500);
 while(CheckBusy());
 RS=0;
  RW=0;
  P2=command;
  EN=1;
  NOP;NOP;
  EN=0;

 //向液晶发送数据
void SendLcdData (uint8 dat)
{
 NOP;NOP;
 while(CheckBusy());
// delay(500);
 RS=1;
  RW=0;
  P2=dat;
  EN=1;
  NOP;NOP;
  EN=0;
}

//液晶初始化

void LCD_init(void)

 Lcd_RST = 0;
 delay(5000);
    Lcd_RST = 1;
 delay(500);
  
 SendLcdCommand(0x34); //扩充指令操作
 SendLcdCommand(0x30); //基本指令操作
 SendLcdCommand(0x01); //清除显示
 SendLcdCommand(0x06); //指定在资料写入或读取时,光标的移动方向
 SendLcdCommand(0x0c); //开显示,关光标,不闪烁
}

//清屏

void Clear_display(void)
{
  SendLcdCommand(0x01); //清除显示
}

//从第几行,第几列显示字符串(汉字),x代表行,y代表列

void  Disp_lcd( uint8  x, uint8  y, uint8 *chinese )
{
  uint8  xtemp;;
  switch(x)
  {
    case 0: xtemp="0x80"+y; break;
 case 1: xtemp="0x90"+y; break;
 case 2: xtemp="0x88"+y; break;
 case 3: xtemp="0x98"+y; break;
 default:break;
 }
// xtemp== x%2*0x10 + x/2*0x08 + y + 0x80;     地址公式
   SendLcdCommand(xtemp);
   do
 {
  SendLcdData(*chinese);
  chinese++;
 }while(*chinese!=0);
 }

点击看大图

系统分类: 单片机
用户分类: 单片机程序
标签: 液晶驱动 C程序 学习 开发板
来源: 原创
发表评论 阅读全文(626) | 回复(2)
总共 , 当前 /