内容提要: PIC系列微控制器系统扩展技术,PIC系列微控制器应用开发及常用工具有介绍, MPLAB集成开发环境IDE软件的介绍,PIC系列微控制器的应用实例! 《PIC系列单片机应用设计与实例》 pdf 窦振中 北京航空航天大学出版社 本书作为《PIC系列单片机原理和程序设计》的姊妹篇,介绍当前单片机世界中异军突起的美国Microchip公司的PIC系列单片机的应用设计技术和应用实例。内容相当丰富,包括并行的各种串行存储器、接口电路、人机对话通道、中断系统、IC总线串行通信等系统扩展技术,应用系统开发及其常用工具、集成开发环境MPLAB软件包和十分有实用价值的典型应用实例。应用实例有交流数字电压表、电力周波表、闪光报警器、移动式客房控制器、不间断电源UPS控制器、均匀分布随机数程序、4阶IIR数字滤波器程序、快速傅里叶变换程序、即热式电热水器模糊逻辑温控器、汉字热敏微型打印机等。书中给出了大部分应用实例的硬件电路、程序流程图以及汇编语言源程序。这些内容是作者近几年业部分开发工作的实践总结,有一些就是实际批量生产产品的提练和推广。 本书内容丰富而实用,语言逻辑性强,通俗流畅,易学易懂;适于广大从事单片机开发和应用的工程技术人员自学,也可作大学相关专业研究生、本科、专科、中专各种单片机应用、毕业设计的参考用书,以及培训班的教材。
上传时间: 2013-12-29
上传用户:yt1993410
本文介绍了基于单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用。本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机AT89S52来实现,硬件部分是以单片机为核心,还包括A/D模数转换模块,显示模块,和串行接口部分。该系统从机负责数据采集并应答主机的命令。8路被测电压通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据通过串行口MAX232传输到上位机,由上位机负责数据的接受、处理和显示,并用LED数码显示器来显示所采集的结果。软件部分应用VC++编写控制软件,对数据采集系统、模数转换系统、数据显示、数据通信等程序进行了设计。
上传时间: 2013-10-28
上传用户:18707733937
附件为:LCD12864显示汉字和数字的程序与电路 /* 自定义延时子函数 */ void delayms(uchar z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* 判断LCD忙信号状态 */ void buys() { int dat; RW=1; RS=0; do { P0=0x00; E=1; dat=P0; E=0; dat=0x80 & dat; } while(!(dat==0x00)); } /* LCD写指令函数 */ void w_com(uchar com) { //buys(); RW=0; RS=0; E=1; P0=com; E=0; } /* LCD写数据函数 */ void w_date(uchar date) { //buys(); RW=0; RS=1; E=1; P0=date; E=0; } /* LCD选屏函数 */ void select_screen(uchar screen) { switch(screen) { case 0: //选择全屏 CS1=0; CS2=0; break; case 1: //选择左屏 CS1=0; CS2=1; break; case 2: //选择右屏 CS1=1; CS2=0; break; /* case 3: //选择右屏 CS1=1; CS2=1; break; */ } } /* LCDx向上滚屏显示 */ void lcd_rol() { int x; for(x=0;x<64;x++) { select_screen(0); w_com(0xc0+x); delayms(500); } } /* LCD清屏函数:清屏从第一页的第一列开始,总共8页,64列 */ void clear_screen(screen) { int x,y; select_screen(screen); //screen:0-选择全屏,1-选择左半屏,2-选择右半屏 for(x=0xb8;x<0xc0;x++) //从0xb8-0xbf,共8页 { w_com(x); w_com(0x40); //列的初始地址是0x40 for(y=0;y<64;y++) { w_date(0x00); } } } /* LCD显示汉字字库函数 */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-3,mun:显示第几个汉字的参数 int a; mun=mun*32; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } } /* LCD显示字符字库函数 */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } } /* LCD显示数字字库函数 */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) { //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数 int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } } /* LCD初始化函数 */ void lcd_init() { w_com(0x3f); //LCD开显示 w_com(0xc0); //LCD行初始地址,共64行 w_com(0xb8); //LCD页初始地址,共8页 w_com(0x40); //LCD列初始地址,共64列 } /* LCD显示主函数 */ void main() { //第一行 int x; lcd_init(); //LCD初始化 clear_screen(0); //LCD清屏幕 lcd_display_shuzi(1,0,4,5); //LCD显示数字 lcd_display_shuzi(1,0,5,1); //LCD显示数字 lcd_display_hanzi(1,0,3,0); //LCD显示汉字 lcd_display_hanzi(2,0,0,1); //LCD显示汉字 //LCD字符汉字 lcd_display_hanzi(2,0,1,2); //LCD显示汉字 //第二行 lcd_display_zifuk(1,1,2,0); //LCD显示字符 lcd_display_zifuk(1,1,3,0); //LCD显示字符 lcd_display_zifuk(1,1,4,0); //LCD显示字符 lcd_display_zifuk(1,1,5,4); //LCD显示字符 lcd_display_shuzi(1,1,6,8); //LCD显示字符 lcd_display_shuzi(1,1,7,9); //LCD显示字符 lcd_display_shuzi(2,1,0,5); //LCD显示字符 lcd_display_shuzi(2,1,1,1); //LCD显示字符 lcd_display_zifuk(2,1,2,4); lcd_display_zifuk(2,1,3,1); lcd_display_zifuk(2,1,4,2); lcd_display_zifuk(2,1,5,3); //第三行 for(x=0;x<4;x++) { lcd_display_hanzi(1,2,x,3+x); //LCD显示汉字 } for(x=0;x<4;x++) { lcd_display_hanzi(2,2,x,7+x); //LCD显示汉字 } //第四行 for(x=0;x<4;x++) { lcd_display_zifuk(1,3,x,5+x); //LCD显示汉字 } lcd_display_shuzi(1,3,4,7); lcd_display_shuzi(1,3,5,5); lcd_display_shuzi(1,3,6,5); lcd_display_zifuk(1,3,7,9); lcd_display_shuzi(2,3,0,8); lcd_display_shuzi(2,3,1,9); lcd_display_shuzi(2,3,2,9); lcd_display_shuzi(2,3,3,5); lcd_display_shuzi(2,3,4,6); lcd_display_shuzi(2,3,5,8); lcd_display_shuzi(2,3,6,9); lcd_display_shuzi(2,3,7,2); while(1); /* while(1) { // LCD向上滚屏显示 lcd_rol(); } */ }
上传时间: 2013-11-08
上传用户:aeiouetla
利用Atmel公司的ATmega168微处理器,采用A/D转换方式来实现按摩椅控制器的键盘接口,通过在硬件电路中巧妙地选择电阻,在软件设计中采用数字滤波、二分法和区间鉴定等方法,灵敏可靠地实现了按摩椅中30个按键的处理。给出了硬件电路设计和软件设计思想以及部分汇编代码。 Abstract: This paper chooses A/D conversion method to realize the keyboard interface of the controller by using ATmega168 microchip from Atmel Company.It accomplishes 30-key dealing sensitively and reliably in massage chair through skillfully selecting resistors in hardware circuit and using digital filter,dichotomy and area-judging method in software design.The hardware design circuit, software design idea and partly assembles code are presented mainly.
上传时间: 2014-01-10
上传用户:咔乐坞
DS1991是一种多密钥信息纽扣,文章介绍了DS1991的主要特点、工作原理及读写方法。给出了一种基于DS1991和PIC单片机的智能水卡设计方案,同时给出了整个系统的硬件组成原理和软件设计方法。 Abstract: DS1991 is a multikey iButton. The characteristic operation principle and the way of read/write of DS1991 are introduced in the paper. A smart water card based on DS1991 and PIC singlechip is presented the design of hardware and software are also given
上传时间: 2013-11-06
上传用户:李彦东
摘要:在数字电路和单片杌原理与应用的课程设计中.如果按传统的设计制作方法,初学者总会遇到硬件资源消耗大,作品调试周期长。无法方便的按自己的设计意图反复修改自己的作品的难题。而一旦利用Proteus软件,那么上述难题可迎刃而解。这里通过介绍一种基于51单片机电子密码锁的仿真设计过程.证明了在Proteus的环境下可以方便完成单片机和数字电子系统的硬件设计和软件调试,证明其可缩短我们作品的开发周期。提高设计效率。
上传时间: 2013-10-26
上传用户:sc965382896
摘要:使用AT89C51单片机,选用集成温度传感器AD590和气体传感器TGS202作为敏感元件,利用多传感器信息融合技术,开发了可用于小型单位火灾报警的语音数字联网报警器。关键词:单片机;传感器;信号处理;火灾报警器
上传时间: 2013-10-11
上传用户:youke111
文章介绍了基于单片机AT89C52和数字电位器DS3904来设计程控放大器的原理以及DS3904的读写操作流程并得以实现。与传统的程控放大器相比,接口简单,使用方便,可以获得更多的放大倍数。
上传时间: 2013-10-29
上传用户:lijinchuan
介绍了一种以PIC16F73单片机芯片和CC1000调制解调芯片为核心的超低功耗无线数字传输模块的设计方案及实现方法!并给出了该模块在无线智能IC 卡水表中的应用" 该模块通信速率最高可达38.4KBPS查询工作方式下平均工作电流为10UA与同类设计相比!该模块具有功耗低#使用方便#通信可靠等优点"
上传时间: 2013-11-16
上传用户:d815185728
摘 要:简要介绍了图像边缘检测的基本概念,针对其硬件实现的基本模型进行探讨;分析其关键算术单元,采用了多种优化措施并引入了流水线的设计方法以满足高速应用的要求;提出了3种不同的FIR滤波器实现结构;最终完成FPGA和ASIC设计,对不同结构的实现数据进行比较并给出了结论,实现结果表明该设计可以满足高速系统应用场合。关键词:边缘检测;FIR滤波器;流水线设计;超前进位加法;FPGA
上传时间: 2014-12-27
上传用户:xingisme