PIC16F877A开发板 普通IO驱动74595实验
2010-12-27 00:45
531 查看
//*****************电子园PIC16F877A开发板 普通IO驱动74595实验*************** // //PIC16F877A 实验板 // //mcu: PIC16F877A 4MHz //2010年7月10日21:52:30 //************************************************************************** #include <lian_pic.h> __CONFIG(HS&WDTDIS&LVPDIS&PWRTEN); //HS振荡,禁止看门狗,低压编程关闭,启动延时定时器 #define srclk RC3 //移位寄存器时钟 (74595:11脚) #define rclk RC4 //存储寄存器时钟 (74595:12脚) #define ser RC5 //串行数据口 (74595:14脚) //oe:输出允许 L:允许输出;H:禁止输出; (74595:13脚) //srclr:移位寄存器清零 (L:清零) (74595:10脚) const uchar smg_text[]={0xbf,0xfe,0xfb,0xef,0xdf,0x7f,0xfd,0xf7,}; const uchar smg[]={0x0a,0xfa,0x8c,0xa8,0x78,0x29,0x09,0xba,0x08,0x28,0x00,}; // 0 1 2 3 4 5 6 7 8 9 all const uchar smg_bit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,}; uchar c; uchar d; //********************函数定义********************* void delay1ms(uint DelayTime); void senddata_74595(uchar SendData); //*************** 主程序 ******************** void main(void) { TRISC3=0; //srclk 引脚设为输出 TRISC5=0; //ser 引脚设为输出 TRISC4=0; //rclk 引脚设为输出 rclk=0; delay1ms(10); rclk=0; //产生锁存时钟 senddata_74595(0x00); senddata_74595(0x00); rclk=1; delay1ms(200); for(d=0;d<8;d++) { for(c=0;c<8;c++) { rclk=0; senddata_74595(smg_bit[d]); senddata_74595(smg_text[c]); rclk=1; delay1ms(100); } } while(1) { for(c=0;c<11;c++) { rclk=0; senddata_74595(smg_bit[8]); senddata_74595(smg[c]); rclk=1; delay1ms(100); } } } //***********************74595发送函数************************ void senddata_74595(uchar SendData) { uchar i; for(i=0;i<8;i++) { if((SendData&0x80)==0) //先发送高位,后发送低位 { ser=0; } else { ser=1; } srclk=0; srclk=1; SendData=SendData<<1; //数据左移一位 } } //*****************延时 n*1ms 12MHz***************** void delay1ms(uint DelayTime) { uint temp; for(;DelayTime>0;DelayTime--) { for(temp=0;temp<270;temp++) {;} } }
相关文章推荐
- PIC16F877A开发板 SPI总线驱动74595实验
- VxWorks开发板驱动程序学习之普通ADC驱动
- 用普通IO驱动LCD的控制方法-松瀚汇编源程序
- 用STM32F103RCT6的普通IO口模拟串口的实验
- PIC16F877A开发板 数码管动态扫描实验
- PIC16F877A开发板 数码管计数器实验
- S3C2440扩展引脚普通IO的驱动源码
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十:PS/2模块④ — 普通鼠标
- 友善之臂Mini2440开发板的存储系统及IO空间总结
- mini2440开发板SD驱动移植
- 实验1:用户的登录与退出、IO重定向与简单文件操作
- 稍微进阶点的搞实验中的杂谈(一)—— 主要关于boost asio例程2,多个io_service的server,例程3,多个线程一个io_service
- Linux驱动开发第一步:怎么将.ko文件传入开发板
- 怎样添加earlysuspend到一个普通驱动中
- android驱动学习---led实验
- [置顶] iOs LightBlue与cc2540 BLE开发板之间的通信实验 [原创, 多图]
- Linux-2.6.32.2内核在mini2440上的移植(十八)---将UART2更成普通串口驱动
- 驱动_IoCreateSymbolicLink错误,返回NTSTATUS错误码:C00003A
- 【iCore4 双核心板_ARM】例程二十七:LWIP_NETIO实验——以太网测速
- 转:linux内核驱动中_IO, _IOR, _IOW, _IOWR 宏的用法与解析