ATmega128并行控制带字库的12864程序

发布者:江上HZ最新更新时间:2012-08-02 来源: 21ic 关键字:ATmega128  并行控制  12864程序 手机看文章 扫描二维码
随时随地手机看文章
ATmega128的特点是io口很多,所以我们可以用并行的方式来驱动此液晶屏,增加总线的速度,此程序是是网上整理收集而来,但已经通过本人验证可以使用,故在此发表.大家在应用的时候只需更改相应的io就行了.
 
软件:GCC V4.20
--------------------------------------------------------------- 
实验内容:写Lcd12864_ST7920。
---------------------------------------------------------------
硬件连接:
LCD12864_ST7920                  ATmega128
1.GND               --------        GND
2.VCC               --------        VCC
3.V0                --------        NC
4.RS(CS)            --------        PD7
5.R/W(SID)          --------        PG0
6.E(SCLK)           --------        PG1
7.D0                --------        PC0
8.D1                --------        PC1
9.D2                --------        PC2
10.D3               --------        PC3
11.D4               --------        PC4
12.D5               --------        PC5
13.D6               --------        PC6
14.D7               --------        PC7
15.PSB              --------        VCC
16.NC               --------        NC
17.RST              --------        VCC
18.NC               --------        NC
19.LED+             --------        VCC
20.LED-             --------        GND
以下是程序源代码:
---------------------------------------------------------------*/ 
#include 
#include
#include  
#define  E_set        PORTG|=_BV(PG1)    //液晶使能
#define  E_clear      PORTG&=~_BV(PG1)
#define  RW_set       PORTG|=_BV(PG0)    //液晶读写
#define  RW_clear     PORTG&=~_BV(PG0)
#define  RS_set       PORTD|=_BV(PD7)    //液晶数据
#define  RS_clear     PORTD&=~_BV(PD7)   //液晶指令
unsigned char j=0;
unsigned char yb=0x80;
unsigned char name00[] PROGMEM={"飞射白鹿雪连天,"};
unsigned char name01[] PROGMEM={"笑书神侠倚碧鸳。"};
unsigned char name02[] PROGMEM={"自古英雄多奇逸,"};
unsigned char name03[] PROGMEM={"金老挥毫尽使然。"};
unsigned char name10[] PROGMEM={"李白乘舟将欲行,"};
unsigned char name11[] PROGMEM={"忽闻岸上踏歌声。"};
unsigned char name12[] PROGMEM={"桃花潭水深千尺,"};
unsigned char name13[] PROGMEM={"不及汪伦送我情。"};
unsigned char name20[] PROGMEM={"this is a 12864 "};
unsigned char name21[] PROGMEM={"display program,"};
unsigned char name22[] PROGMEM={"welcome to commu"};
unsigned char name23[] PROGMEM={"nicate with me! "};

void wr_com(unsigned char);
void wr_data(unsigned char);
void reset (void);
void outChinese(unsigned char,unsigned char,unsigned char *point);
void ydgb(void);
void outchar(unsigned char,unsigned char,unsigned char *point);

void wr_com(unsigned char value)//写指令,写指令时必须为RS=0;RW=0;
{
 E_clear;
 RS_clear;
 RW_clear;
 _delay_ms(1);
 PORTC=value; //并入字符数据
 E_set;
 _delay_ms(2); //如果没有延时就必须要加查忙指令
 E_clear;
}
void wr_data(unsigned char sj)//写数据,写数据时必须为 RS=1;RW=0;
{
 E_clear;
 RS_set;
 RW_clear;
 _delay_ms(1);
 PORTC=sj;
 E_set;
 _delay_ms(1);//如果没有延时就必须要加查忙指令
 E_clear;
}
void reset (void)
{
 wr_com(0x01);//清屏
 wr_com(0x08);//关显示
 wr_com(0x03);//归位
 wr_com(0x30);//功能设置
 wr_com(0x0f);//开显示
 wr_com(0x01);//清屏
}
//****************
//outChinese 为函数名
//place 为显示地址的首地址
//unit  字符长度
//charcode[]  要显示数据的内容[page]
void outChinese(unsigned char place,unsigned char unit,unsigned char *point)
{
 unsigned char i,progdata;
 wr_com(place);
 for(i=0;i				   
关键字:ATmega128  并行控制  12864程序 引用地址:ATmega128并行控制带字库的12864程序

上一篇:基于AVR的4*4矩阵键盘扫描与LED显示程序
下一篇:ATmega8的模拟比较器的总结

推荐阅读最新更新时间:2024-03-16 13:04

基于AVR和51单片机的机器鱼语音控制系统设计与实现
近年来,海洋资源开发日趋焦点,机器鱼作为一项现代化的新成果,具有广泛的现实意义,它可以更逼真的模拟鱼的游动原理,在水下的运动更符合流体力学原理,具有更好的加速和转向能力,利用它可以探测海洋资源,寻找和检测海域中受污染的地方,也可以用来勘探地形等等。随着科技的发展,人类对智能化产品的研究步伐在不断加快。但是,作为一项比较新的产品,机器鱼的智能化程度还远远不够,伴随着研究的加深,机器鱼的功能也会更趋完善。语音识别作为一门交叉学科,它的出现实现了长期以来人们渴望与机器交流的梦想。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。近年来,语音识别技术发展迅速,取得显著进步,并且已经开始被应用于通信、家庭服
[单片机]
基于AVR和51单片机的机器鱼语音<font color='red'>控制</font>系统设计与实现
基于单片机的喷墨打印机控制技术
单片机应用系统中最常用的输出打印设备是微型打印机,例如TP系列、UP系列打印机等,对它们的控制技术也较为成熟。但是近年来随着通用打印机的广泛使用,微型打印机的缺点也日益明显:一是通用性及互换性不强;二是打印输出文档的幅面过小,不便于装订及存档。而通用打印机都配有国际标准并行接口(CENTRONICS)和串行接口(RS232/422),纸张大小可任意选择。这些特点是微型打印机所无法抗衡的。因此在越来越多的单片机应用系统中逐渐趋向于使用通用打印机作为打印输出设备。本文介绍了以MCS-51系列单片机为核心,通过CENTRONICS国际标准8位并行接口控制驱动HP-DJ 600/800系列喷墨打印机的硬件接口电路没计方法及控制程序设计方法
[工业控制]
12864+DS1302+DS18B20大字符时钟原理图与源程序
12864+DS1302 +DS18B20 大字符时钟供大家学习。 电子智能时钟程序 单 片 机:STC89C52RC 晶 振:12MHz 时钟芯片:DS1302 液 晶 屏:LCM-12864-ST7920 时 间:2019年11月26修改完成 LCM12864使用并口连接方式,PSB、RST接高电平 制作出来的实物图如下: 电路原理图如下: 单片机源程序如下: /*--------------------------------------------------------------------------- 电子智能时钟程序 单 片 机:STC89C52RC
[单片机]
<font color='red'>12864</font>+DS1302+DS18B20大字符时钟原理图与源<font color='red'>程序</font>
ATmega128单片机PWM设计
脉宽调制(PWM:(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。只要带宽足够,任何模拟值都可以使用PWM进行编码。本文提出AVR单片机ATmega128的PWM的设计方法。 1.定时/计数器PWM设计要点   根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点:   1)首先应根据实际的情况,确定需
[单片机]
基于ATMEGA128单片机的自动准同期装置设计
前言 自动准同期装置在电力系统并网中有着十分重要的作用。本文采用ATMEGA128单片机为处理器,开发一种主要用于机组同期操作的自动准同期装置,该装置能自动检测系统侧和对象侧的压差、频差和相差,进行同期操作。如果采用一个同期点配备一个装置的方式,则能大大提高整个系统的同期可靠性。 1 系统的总体设计和硬件框图 作为准同期装置,首先必须要准确地测量系统侧和待并侧的同期参数。也就是精确测量两侧的电压、频率,以及相位差。在这个基础上,装置要进行准确的同期动作以及和上位机的通信。因此,系统的硬件设计和软件流程围绕这三个方面展开。为了减少干扰和便于操作,硬件分为CPU板、信号板和显示按键板。下面的硬件框图清楚地表示了三者之间的连接关系
[单片机]
基于<font color='red'>ATMEGA128</font>单片机的自动准同期装置设计
ATmega128 上电复位
上电复位(POR) 脉冲由片内检测电路产生。检测电平列于Table 19。POR 在VCC 低于 检测电平时产生。POR 电路可以用来触发启动复位,或者用来检测电源故障。 POR电路保证器件在上电时复位。VCC 达到上电门限电压后触发延迟计数器。在计数器溢出之前器件一直保持为复位状态。当VCC 下降时,只要低于检测门限,RESET 信号立即生效。
[单片机]
<font color='red'>ATmega128</font> 上电复位
ATmega128 定时器/计时器振荡器
对于拥有定时器/ 振荡器引脚(TOSC1 和TOSC2) 的AVR 微处理器,晶体可以直接与这 两个引脚连接,无需外部电容。此振荡器针对32.768 kHz 的钟表晶体作了优化。不建议 在TOSC1 引脚输入振荡信号。
[单片机]
一个基于ATMEGA128的直流电机抱死程序
先说一下我的硬件情况:一块ATMEGA128实验板;一个带编码器的80:1的变速电机,编码器的输出端连接到单片机的PD4和PD5引脚;一块电机驱动电路,该电路的输入为:24v电源、两路pwm信号输入,输出即为电机的正负极,要用该电路来驱动电机,则必须让两路pwm输入信号的一路占空比为0,另一路不为0,相当于让电机的一极接地,另一极接pwm,通过控制两路pwm的占空比来控制电机的转速和转动方向。pwm信号的输入端连接到单片机的PD6和PD7引脚。 下面是我的程序的设计思路: 这个程序用了两个定时器:timer0和timer1。 timer0用来产生pwm。timer0产生pwm信号是这样实现的:程序中有一个timer0的
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved