历史上的今天
返回首页

历史上的今天

今天是:2024年11月15日(星期五)

正在发生

2019年11月15日 | PIC18f4520单片机驱动H1632的C语言程序

2019-11-15 来源:51hei

#include
#include
//#pragma config OSC = HS //配置内部振荡器Fosc/4 RA7,IO口RA7
//#pragma config PWRT =OFF
//#pragma config BOREN = OFF
//#pragma config WDT = OFF
//#pragma config MCLRE = ON
//#pragma config PBADEN = OFF
//#pragma config LVP = OFF
#define CLK PORTCbits.RC3 
#define DAT PORTCbits.RC5 
#define CS1 PORTDbits.RD0
//#define CS1 PORTCbits.RC0
//#define CS2 PORTDbits.RD1
//#define CS3 PORTDbits.RD2
//#define CS4 PORTDbits.RD3
#define KEY PORTBbits.RB0
//#define KEY PORTAbits.RA4
void init_command(unsigned int command_data); /nd commad data to HT1632
void set2416(void); 
//initialize HT1632
void MCU_Data_0832(unsigned char Data1,unsigned char Data2); /nd 16 bits 
data to HT1632 once 
void MCU_Address_2416(unsigned char address); /nd address to 1632's RAM
void senddata1(void); /nd data to HT1632(1st screen)to display information
void delay(void);
void KeyJudgement(void);
unsigned char KeyLast,KeyNow;//Record the state of key
unsigned char KeyCounter; 
void KeyJudgement(void)
{
KeyNow=KEY;
if((KeyNow==0)&&(KeyLast==1))
{
Delay100TCYx(10);//Delay 2ms
KeyNow=KEY;
if(KeyNow==0)
{
KeyCounter++;
if(KeyCounter==6)
KeyCounter=0;
}
}
KeyLast=KeyNow;

void delay(void)
{
unsigned char i,j;
for(i=0;i<200;i++)
{
j++;
}
}
void init_command(unsigned int command_data)
{
unsigned int i,j;
command_data=command_data&0xfff;
command_data=command_data<<4;
CS1=1;
CS1=0;
for(i=0;i<12;i++)
{
CLK=0;
j=command_data&0x8000;
command_data=command_data<<1;
j=j>>15;
DAT=j;
CLK=1;
}
CS1=1;
//CS2=1;
//CS3=1;
//CS4=1;
}
void set2416(void)
{
//sys en
init_command(0b100000000010);
//led on
init_command(0b100000000110);
//blink on
// init_command(0b100000010010);
//master mode
init_command(0b100000101110);
//RC
init_command(0b100000110110);
//commons option
//init_command(0b100001011110);//2416
init_command(0b100001010110);//0832
//pwm duty
init_command(0b100101111110);
}
void MCU_Data_0832(unsigned char Data1,unsigned char Data2)
{
unsigned char i,j,databuffer;
for(j=0;j<4;j++)
{
databuffer=Data1;
for(i=0 ; i<8 ; i++)
{
CLK=0; //clk = 0 for data ready
if(databuffer & 0x80)
DAT=1;
else
DAT=0;
CLK=1; //clk = 1 for data write into 2
databuffer=databuffer<<1;
}
databuffer=Data2;
for(i=0 ; i<8 ; i++)
{
CLK=0; //clk = 0 for data ready
if(databuffer & 0x80)
DAT=1;
else
DAT=0;
CLK=1; //clk = 1 for data write into 2
databuffer=databuffer<<1;
}

}

void MCU_Address_2416(unsigned char address)
{
unsigned char i,temp;
temp = 0x40; //address has 7 bits. MSB fisrt
for(i=0;i<7;i++)
{
CLK= 0; //clk = 0 for data ready
if((temp & address) == 0) 
DAT= 0;
else
DAT= 1;
CLK= 1; //clk = 1 for data write into 
1632
temp >>= 1;
}
}
void senddata1(void)
{
unsigned char i,data1,data2;
CS1=1;
delay();
CS1=0;
delay();
CLK=0;
DAT=1;
CLK=1;
CLK=0;
DAT=0;
CLK=1; 
CLK=0;
DAT=1;
CLK=1;
MCU_Address_2416(0x00);
switch (KeyCounter)
{
case 0:{
data1=0x00;
data2=0x00;
}break;
case 1:{
data1=0xaa;
data2=0xaa;
}break;
case 2:{
data1=0x55;
data2=0x55;
}break;
case 3:{
data1=0xff;
data2=0x00;
}break;
case 4:{
data1=0x00;
data2=0xff;
}break;
Page 30832Test
case 5:{
data1=0xff;
data2=0xff;
}break;
}
for(i=0;i<4;i++) 
MCU_Data_0832(data1,data2); 
delay();
CS1=1;
}
void main(void)
{
unsigned char CounterShallow; 
TRISCbits.TRISC3=0;
TRISCbits.TRISC5=0;
TRISDbits.TRISD0=0;
//TRISCbits.TRISC0=0;
TRISDbits.TRISD1=0;
TRISDbits.TRISD2=0;
//TRISAbits.TRISA4=1;
TRISBbits.TRISB0=1;
KeyLast=1;
KeyNow=1;
KeyCounter=0;
CounterShallow=1; 
set2416();
delay(); 
while(1)
{
KeyJudgement();
if(CounterShallow!=KeyCounter)
{
senddata1();
CounterShallow=KeyCounter;
Delay1KTCYx(100);//Keep from intervals 
}
}
}

推荐阅读

史海拾趣

Frolyt Condensers & Elements GmbH公司的发展小趣事

面对电子行业的快速变化,Frolyt Condensers & Elements GmbH深知数字化转型的重要性。近年来,公司积极推进数字化转型,引入先进的ERP系统和智能制造技术,实现了生产过程的自动化、智能化和精细化管理。数字化转型不仅提高了公司的生产效率和产品质量,还降低了运营成本,为公司的持续发展奠定了坚实的基础。同时,Frolyt还利用大数据和人工智能技术优化供应链管理,提升了客户服务水平和市场响应速度。

DSMI Electronics SA公司的发展小趣事

DSMI Electronics SA公司非常重视企业文化的建设和团队建设。公司倡导开放、协作、创新、务实的企业文化,鼓励员工积极参与技术创新和市场竞争。同时,DSMI还注重人才培养和引进,通过内部培训、外部招聘等方式,不断提升员工的素质和能力。这些努力为公司的持续发展提供了有力的人才保障。

Fairchild公司的发展小趣事

1961年,Fairchild公司向全世界介绍了第一个实用的集成电路(IC)。这个微小的芯片将多个晶体管和其他电子元件集成在一起,极大地提高了电子设备的性能和可靠性。这一创新对电子行业产生了深远的影响,并开启了集成电路技术的飞速发展。

晶群科技(Gem-micro)公司的发展小趣事

近年来,Fairchild公司在全球范围内与众多知名企业建立了合作关系。其中,与华为的合作尤为引人注目。华为作为全球领先的通信设备制造商,对供应商的要求极为严格。然而,Fairchild公司凭借其出色的产品质量、客户支持和公司间的成功合作,从众多供应商中脱颖而出,成为华为的核心合作伙伴之一。华为对Fairchild公司的认可不仅体现在订单量的增加上,还体现在对其产品和服务的高度评价上。

Hirschmann公司的发展小趣事
TC4013作为定时器的核心,通过接收外部触发信号(如时钟信号的上升沿)来控制定时器的置位和复位。它内部的JK触发器可以根据输入的信号状态(J、K、时钟信号等)来设置或重置其输出状态。
巨盛电子(Chesen)公司的发展小趣事

随着国内市场的饱和,巨盛电子(Chesen)开始寻求国际化发展。公司制定了一系列国际化战略,包括拓展海外市场、建立海外生产基地、与国际品牌合作等。通过这些努力,巨盛电子成功进入了欧美、东南亚等市场,实现了品牌的全球化布局。同时,公司还积极与国际品牌合作,共同开发新产品,提高了品牌知名度和市场份额。

问答坊 | AI 解惑

开放源码硬件简史

开放源码硬件史前时代早在60,70 年代,电子爱好者就开始互相交流电路设计,PCB版图, 形成了开放源码硬件的雏形。在中国,这个时期,出现了很多以业余无线电和电子设计为主题的书刊、杂志。集成电路出现后,越来越多的功能集成在一个芯片中, 电路 ...…

查看全部问答>

飞思卡尔单片机开发环境

飞思卡尔单片机开发环境,先分享了…

查看全部问答>

IR2110烫的要命,急!!!!!!!!

本帖最后由 paulhyde 于 2014-9-15 09:35 编辑 A题,线接的没问题,有散热,可是IR2110接上没2秒就烫的要命  …

查看全部问答>

第9/15原创:事无巨细,无源蜂鸣器

事无巨细,无源蜂鸣器     CEPARK AVR学习板上,最简单的内容也许就是蜂鸣器了。当然如果你硬要用它来唱歌的话,那还是有点难度的。所以我们还是让它先发出“滴滴“声好了。      先来拓展拓展我们的知识吧(内容部 ...…

查看全部问答>

【Labview】labview下载地址

也许菜鸟们还不知道在哪可以下到labview,那么这个贴子应该可以帮助你们。 labview8.6完整官方下载地址 http://www.ni.com/labview/family/zhs/ ftp://evalftp86:LabV13w86@ftp.ni.com/ 附件中为labview2009官方下载地址 大家可以先用试用 ...…

查看全部问答>

有关VGA图像显示

我在做一个VGA图像显示的设计,然后采用的是定制ROM的方式。现在问题出在像素点的采集上,即定制ROM时那个.MIF或者.HEX文件里面的像素点怎么得到啊,希望知道的大侠们能指点指点···谢谢!…

查看全部问答>

evc socket有windows通信问题

小弟定义了一个结构体,然后想用来进行windows和wince通信,内容是文件的一些信息。然后把文件从windows传到wince上去。不过每次传都收不到真确的东西。请问我哪里有问题,是wince的Unicode的问题吗?…

查看全部问答>

调试运行不了,报错:管道的另一端上无任何进程

一个DLL,一个exe工程,加载dll使用#pragma comment lib形式,在EVC下可以运行的; 但现在要移植到ce6下,使用vs2005编译通过,部署也成功,但运行不起来,调试发现连APP的构造函数也没运行,就报错提示:管道的另一端上无任何进程。网上搜索没有 ...…

查看全部问答>

TFT液晶驱动

最近在用一种叫WXCAT35-TG3#001的TFT彩色屏,原想用HDL程序来驱动它,不过资料很少,没看懂它的工作原理。希望大侠们能够给予点帮助 如果哪位写过有关程序的话希望也教我一下,谢谢啦~ PS:我找到的数据手册…

查看全部问答>

STR911SPI做主收不到数据

  GPIO_StructInit(&GPIO_InitStruct);        GPIO_InitStruct.GPIO_Direction = GPIO_PinInput;  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;  GP ...…

查看全部问答>