PIC单片机扩展8255A并口

发布者:祝福的4号最新更新时间:2017-12-06 来源: eefocus关键字:PIC单片机  扩展8255A并口 手机看文章 扫描二维码
随时随地手机看文章

#include IC.h> 
__CONFIG(0x3B31); 
#define A0 RB0 
#define A1 RB1 
#define CS RB2 
#define LE RD0 
#define WR RD6 
#define RD RD7 

const unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//0-F-全灭-共阳极数码管 
unsigned char tmp[]={0,0,0,0,0,0,0,0}; 
void delay1ms(unsigned int x) 

 unsigned char i; 
 for(;x>0;x--) 
  for(i=0;i<165;i++);  

void init() 

 TRISB=0x00; 
 PORTB=0x00; 
 TRISD=0x00; 
 PORTD=0x00; 
 LE=0;WR=1;RD=1;     //关373,禁止8255读写 

void init_8255() 

 LE=1;A1=1;A0=1;CS=0;   //开373,发送写控制器命令,CS片选允许 
 LE=0;       //锁住373,保持A1.A0,CS 
 PORTB=0x80;      //发送控制命令 
 WR=0;       //打开写入8255信号 
 NOP();NOP(); 

void write_data(unsigned char comm,unsigned char data)  //comm:0=A,1=B,2=C 

 if(comm==0) 
 { 
  WR=1; 
  LE=1;A1=0;A0=0;CS=0; 
  LE=0; 
  PORTB=data; 
  WR=0; 
  NOP();NOP(); 
 } 
 if(comm==1) 
 { 
  WR=1; 
  LE=1;A1=0;A0=1;CS=0; 
  LE=0; 
  PORTB=data; 
  WR=0; 
  NOP();NOP(); 
 } 
 if(comm==2) 
 { 
  WR=1; 
  LE=1;A1=1;A0=0;CS=0; 
  LE=0; 
  PORTB=data; 
  WR=0; 
  NOP();NOP(); 
 }   

void display() 

 unsigned char i,LED
 LED=0x01; 
 for(i=0;i<8;i++) 
 { 
  write_data(0,tab[tmp[i]]);  
  write_data(1,LED);  
  LED<<=1; 
  delay1ms(2); 
  write_data(1,0x00);     
 } 

void main() 

 unsigned char i,j,RR[24]; 
 init(); 
 init_8255(); 
 while(1) 
 { 
  for(i=0;i<24;i++)   //全部赋值为16,即显示为空,此处可精减,但演示用无所谓了 
   RR[i]=16; 
  RR[8]=2;RR[9]=0;RR[10]=0;RR[11]=9;RR[12]=0;RR[13]=7;RR[14]=1;RR[15]=2; 
  for(j=0;j<16;j++) 
  { 
   for(i=0;i<8;i++)  //将RR[16]开始内部赋值tmp[] 
    tmp[i]=RR[16+i]; 
   for(i=0;i<23;i++) 
    display(); 
   for(i=23;i>0;i--)  //此处将RR[]右移一位数组 
    RR[i+1]=RR[i];  
  } 
 }   
}


关键字:PIC单片机  扩展8255A并口 引用地址:PIC单片机扩展8255A并口

上一篇:59pic USART 232汇编程序
下一篇:PIC16F876A 64X16点阵显示

推荐阅读最新更新时间:2024-03-16 15:48

PIC单片机中断服务程序
中断服务程序有一个特殊的定义方法: void interrupt ISR(void);其中的函数名“ISR”可以改成任意合法的字母或数字组合,但其入口参数和返回参数类型必须是“void”型,亦即没有入口参数和返回参数,且中间必须有一个关键词“interrupt”。 中断函数可以被放置在原程序的任意位置。因为已有关键词“interrupt”声明,PICC 在最后进行代码连接时会自动将其定位到0x0004 中断入口处,实现中断服务响应。编译器也会实现中断函数的返回指令“retfie”。 一个简单的中断服务示范函数如下: void interrupt ISR(void) //中断服务程序 { if (T0IE && T0IF)
[单片机]
刚学PIC单片机,分享第一个电子时钟,定时器计时
#define _XTAL_FREQ 4000000 //晶振定义 #include pic.h //头文件包含 //__CONFIG(0x3b31);//芯片配置字定义 // CONFIG1 #pragma config FOSC = XT // Oscillator Selection bits (XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled and can be enabled
[单片机]
刚学<font color='red'>PIC单片机</font>,分享第一个电子时钟,定时器计时
PIC单片机与AD5410芯片控制系统输出4-20mA电流信号的设计
仪表、传感器输出的电流信号多为4-20mA,为什么是4-20mA呢?因为4-20mA的传感器多为两线制,即信号线和电源线公用两根线,如果起点是0mA就这导致无法区分信号是0mA,还是传感器不工作;另外,起点是4mA也利于系统判断传感器是否掉电或者是短线。 那4-20mA的电流信号该如何产生呢,在数字电路高度发展的今天以单片机为核心的系统比比皆是,但是单片机是数字信号,而电流是模拟信号,这就需要用到DA转换,即数字信号转换为模拟信号。 目前,单片机要控制系统输出4-20mA的电流信号的常用方案为: 今天要推荐一款芯片:AD5410,该芯片是ANGLOG DEVICE生产的,单通道12位串行输入的DAC芯片,与单片机的通信方式
[单片机]
<font color='red'>PIC单片机</font>与AD5410芯片控制系统输出4-20mA电流信号的设计
PIC单片机模拟异步串行通讯UART源程序
简介:用TMR0实现定时查询。任何带中断的PIC上都可以实现。可用此法扩展多个串口。 ;|--------------------------------------------------------------| ;| Implement duplex USART base on normal I/O pin | ;| Using TIMER0 interrupt for bit timing | ;| Tested on PIC16F83 running at 4MHz | ;| Written by Paul Zhang, Microchip Tech Inc
[单片机]
PIC单片机软件异步串行口实现方法
在用单片机开发各种嵌入式应用系统时,异步串行通信是经常要用到的一种通信模式,很多应用中还要求实现多路异步串行通信。大家平时熟悉的各种厂家的单片机,绝大部分片上只提供一个硬件UART模块,利用它可以方便实现一路串行通讯。PIC系列单片机也不例外,在其丰富的产品家族成员中,除高端系列(PIC17/18)一些型号片上带有两路硬件UART模块外,其它大部分型号片上只有一路UART,一些低端廉价的PIC单片机甚至还不带硬件UART。为了提高系统的性能价格比,就要求设计工程师用软件增加实现一路或多路异步串行通信。很多工程师对用软件实现的UART在可靠性和效率方面持怀疑态度,其实关键问题是看软件采用何种方式来实现可靠的UART功能。   在
[单片机]
<font color='red'>PIC单片机</font>软件异步串行口实现方法
有关PIC单片机在线编程器、在线仿真器的问题
有关PIC单片机在线编程器、在线仿真器的问题 1.1在线串行编程接口   带有Flash闪速存储器的PIC单片机产品一般都具有在线串行编程功能,只需要5根引线就可以把程序下载到单片机的Flash程序存储器中。这5根线的排列顺序是MCLR/Vpp、Vdd、Vss、PD(或PGD)和PC(或PGC)。 1.2引脚含义  上述5根引线的具体含义是:MCLR/Vpp 编程电压(对于PIC单片机一般为13 V左右);Vdd 编程电源(5 V);Vss 地;PD 编程数据信号;PC 编程时钟信号。有了这个编程连接电路,只需要合适的编程硬件电路和编程软件,就可以实现单片机在线串行编程和调试。 2 在线调试器   2.1在线调试器与目标板的
[单片机]
DS18B20和PIC单片机通讯源程序
ORG PIC54 GOTO MAIN ORG 0 ;---------------------- ;---------------------------- DELAY22 MOVLW D'200' ; DELAY 2*250=500mS MOVWF COUNT1 DE32 MOVLW D'250' ; 8*250=2mS MOVWF COUNT2 DE42 NOP ; 1+2+1=5uS DECFSZ COUNT2,1 GOTO DE42 DECF
[单片机]
PIC单片机4×4行列式键盘的工作原理解析
在本文中,小编将对pic单片机的4×4行列式键盘的工作原理加以介绍,以帮助大家增进对pic单片机键盘系统的了解,方便后期编程使用。 (1)单片机系统键盘原理 行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。但是,在占用相同的I/O端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,其原理图如图1所示。 图1 4×4行列式键盘的原理图 实际的工程中,可能会使用PIC16C5X这种通用的可编程的键盘、显示接口器件,使用PIC16C5X单片器件就能够完成键盘输入和显示控制两种功能。 行列式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。键盘部分提供一种扫描的工作方式,可以
[单片机]
<font color='red'>PIC单片机</font>4×4行列式键盘的工作原理解析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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