您的位置 首页 电源

HT66F50的使用

今年有些意外,还得研究研究HT66F50。PDF里面已经讲解了它强大的功能,这里我就不讲了。(个人觉得我这种条件下使用,芯片上没有集成串口通

本年有些意外,还得研讨研讨HT66F50PDF里边现已讲解了它强壮的功用,这儿我就不讲了。(个人觉得我这种条件下运用,芯片上没有集成串口通讯,有点惋惜。)

下面我简略介绍一下我在运用的进程中遇到的一些和46F49E/46RU232之间的差异:

一、运用进程的差异:

1.重新开发环境IDE-3000中集成的头文件来看,66F50只给出了相应寄存器的进口地址声明,而并没有像其他两款芯片的头文件相同给出每一个I/O的声明,这使得在运用进程中很是不方便(个人觉得)。因而不得不在运用之前,自己将对应的I/O在头文件声明一遍。

2.66F50引脚的重置功用愈加强壮。–这也导致在运用进程中对相应寄存器的设置变得愈加杂乱,不过习气和了解了就好。

3.从个人学习和运用条件上而言,这款芯片上没有集成串口功用,有点惋惜。不过这也契合盛群公司在芯片命名上的特色。比方HT46F49E和HT46RU232两款芯片中,前者便是不带串口功用,而后者则带有串口功用。

二.下面就举一个简略的比如吧。

运用HT66F50在12864上显现一个1、***本程序是在其他程序中截取的一部分,看起来有些杂乱和剩余。

#include “HT66F50.h”
#define en _pb3 //PB3 –12864使能端口界说
#define rs _pb4 //PB4
#define rw _pa0 //PB5
#define CY _c //进位

void delay(unsigned int t)
{
unsigned int x;
for(;t>0;t–)
for(x=110;x>0;x–);
}

void com(unsigned char com)
{
unsigned char i;
delay(2);
rs=1; //拉高操控,预备写数据
for(i=5;i>0;i–) //先写5个1
{
rw=1;
en=1;
en=0;
}
for(i=3;i>0;i–) //写3个0 写指令操控
{
rw=0;
en=1;
en=0;
}
for(i=4;i>0;i–) //写高4位
{
com=com<<1;
rw=CY;
en=1;
en=0;
}
for(i=4;i>0;i–) //再写4个0
{
rw=0;
en=1;
en=0;
}
for(i=4;i>0;i–) //写低4位
{
com=com<<1;
rw=CY;
en=1;
en=0;
}
for(i=4;i>0;i–) //写4个0
{
rw=0;
en=1;
en=0;
}
rs=0;
}

void dat(unsigned char dat)
{
unsigned char i;
delay(2);
rs = 1;
for(i=5;i>0;i–) //先写4个1
{
rw=1;
en=1;
en=0;
}
for(i=3;i>0;i–) //RW 写数据操控
{
rw=!rw;
en=1;
en=0;
}
for(i=4;i>0;i–) //写高4位数据
{
dat=dat<<1;
rw=CY;
en=1;
en=0;
}
for(i=4;i>0;i–) //写4个0
{
rw=0;
en=1;
en=0;
}
for(i=4;i>0;i–) //写低4位数据
{
dat=dat<<1;
rw=CY;
en=1;
en=0;
}
for(i=4;i>0;i–) //再写4个0
{
rw=0;
en=1;
en=0;
}
rs=0; //拉低,数据写完
}

void LCD_string(unsigned char *p)
{
while(*p)
{
dat(*p);
p++;
}
}

void init12864()
{
com(0x01);//清屏
delay(5);
com(0x30);//写操控字0x30
delay(5);
com(0x30);
delay(5);
com(0x0c);//写显现状况
delay(5);
com(0x01);//写清屏指令
delay(5);
com(0x06);
}

void init()
{
_smod=0x01; //运用FH作为时钟
_pbc=0x00; //设置pb口为输出形式
_pbpu=0xff; //带上拉电阻
_pac=0xff; //PA口悉数用于输入
_papu=0xff; //PA口带上拉电阻
}

void main()
{
init(); //初始化单片机
init12864(); //初始化12864
com(0x01); //清屏
delay(5);
com(0x83); //写入显现地址
delay(5);
dat(1); //写入数据
while(1);
}

要写的东西太多了,根据时刻的联系,现在就只能写到这儿了,今后有时刻再写吧!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/258894.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部