欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第六章-数字显示驱动程序-Linux设备驱动程序-教学课件.ppt

    • 资源ID:73599296       资源大小:2.06MB        全文页数:33页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第六章-数字显示驱动程序-Linux设备驱动程序-教学课件.ppt

    设备驱动程序第六章 数字显示驱动程序 目录l数字显示器 l数码管显示电路的硬件设计 l数码管驱动程序实例 l数码管显示电路测试程序设计 目录l数字显示器 l数码管显示电路的硬件设计 l数码管驱动程序实例 l数码管显示电路测试程序设计 数字显示器l在数字系统中,经常需要将测量、时钟或数值运算结果等字符显示出来,便于人们监视数字系统的工作情况。可见,数字显示电路是数字设备中不可或缺的组成部分。同样,在嵌入式系统中数字显示器也是常见的外围设备之一。l数字显示器有很多种不同类型的产品,如发光二极管、荧光数码管、液晶数字显示器等。数码管的分类l共阴极数码管l如图3-2,7段数码管有公共的地,即7个发光二极管的负极全部连接在了一起,只要给想点亮的二极管高电平就可以使其发光。l如果采用了拉电流连接,就要选择共阴极数码管。l共阳极数码管l如图3-4,共同的正向电压,然后通过控制负极的电压来控制二极管的发光或者熄灭。l如果采用了灌电流连接,就要选择共阳极数码管。数码管显示原理l7段数码管是由7个独立的二极管采用共阴或共阳的方法连接而成。通常将这7个独立的二极管做成a、b、c、d、e、f、g这7个笔画,如图3-5。l通过一个7位的二进制电平信号就可以显示出想要的结果。目录l数字显示器 l数码管显示电路的硬件设计 l数码管驱动程序实例 l数码管显示电路测试程序设计 数码管的驱动方式l静态驱动l当使用数码管数量较少时,可以将每个数码管都与一个译码器相连接。然后,通过级联来实现多位数码管显示逻辑。l可以解决数码管的显示驱动问题。数码管的驱动方式l动态驱动l将所有的数码管并联接在同一个译码器上,再通过专门的数据选择器来实现数码管的逐个轮流受控显示,可以极大减少BCD码的输入线,同时也就节约了对嵌入式处理器I/O端口的使用数量。串/并变换的译码设计l串并变换芯片74LV164是8位的边沿触发的串行输入、并行输出的转换器。串行的数据从两个输入端的其中一个输入,两个输入端必须连接在一起,或者不用的一个接高电平。l在时钟信号CP的上升沿到来的时候,数据向右移位。数据从Q0进入,它是两个输入管脚(DSA、DSB)逻辑与的结果。在MR管脚输入低电平可以把所有输入清0,并把输出置为低电平。l采用串并变换的驱动方式也属于静态驱动的一种,每个数码管都对应一个专门的串并信号转换器。唯一不同的是,串并信号转换器的输入信号可以是串行信号,大大节省了对嵌入式CPUI/O端口的使用,其电路设计如图3-14。硬件电路图说明l使用ZLG7290驱动数码管显示有两种方法,第一种方法是向命令缓冲区(07H-08H)写入复合指令,向07H写入命令并选通相应的数码管,向08H写入所要显示的数据,这种方法每次只能写入一个字节的数据,多字节数据的输出可在程序中用循环写入的方法实现;第二种方法是向显示缓存寄存器(10H17H)写入所要显示的数据的段码,段码的编码规则为从高位到低位为abcdefgdp,这种方法每次可写入18个字节数据。驱动程序lstatic int s3c2410_xfer(struct i2c_adapter*i2c_adap,struct i2c_msg msgs,int num)s3c2410_sendbytes(i2c_adap,pmsg,IIC_SINGLE_XFER);数码管测试程序lInt main()fd=open(/dev/i2c/0,O_RDWR);buf7=0 x05;buf6=0 x03;buf5=0 x0C;buf4=0 x02;buf3=0 x04;buf2=0 x01;buf1=0 x00;buf0=0 x0A;zlg7290_disp(buf,8)数码管测试程序lvoid zlg7290_disp(unsigned char*buf,unsigned char num)unsigned char i;unsigned char temp3;for(i=0;inum;i+)temp0=0 x07;/命令缓冲区的地址 temp1=0 x60+i;/按位下载数据且译码指令,依次从第0位到第7位 temp2=*buf;/第i位数码管显示的数字 buf+;write(fd,temp,3);usleep(5000);驱动程序的初始化static int _init HW_GPIO_LED_CTL_init(void)int ret=-ENODEV;printk(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhnn);showversion();GPDR3|=0 x00000001;/SET GPIO96 OUTPUT MODEGPSR3|=0 x00000001;/OFF THE LED#ifdef OURS_GPIO_LED_DEBUG printk(GPLR3=%x n,GPLR3);printk(GPDR3=%x n,GPDR3);#endifret=devfs_register_chrdev(SIMPLE_GPIO_LED_MAJOR,gpio_led_ctl,&GPIO_LED_ctl_ops);if(ret 0)printk(pxa270:init_module failed with%dn -kernel-,ret);return ret;elseprintk(pxa270 gpio_led_driver register success!-kernel-n);return ret;文件操作结构模块struct GPIO_LED_ctl_ops=open:SIMPLE_GPIO_LED_open,read:SIMPLE_GPIO_LED_read,write:SIMPLE_GPIO_LED_write,ioctl:SIMPLE_GPIO_LED_ioctl,release:SIMPLE_GPIO_LED_release,;数码管的读取模块ssize_t SIMPLE_GPIO_LED_read(struct file*buf,size_t count,loff_t*f_ops)#ifdef OURS_GPIO_LED_DEBUGprintk(SIMPLE_GPIO_LED_read -kernel-n);#endif return count;数码管写入模块ssize_t SIMPLE_GPIO_LED_write(struct file*char*buf,size_t count,loff_t*f_ops)#ifdef OURS_GPIO_LED_DEBUG printk(SIMPLE_GPIO_LED_write -kernel-n);#endifreturn count;数码管的I/O控制模块ssize_t SIMPLE_GPIO_LED_ioctl(struct inode*inode,struct file*file,unsigned int cmd,long data)#ifdef OURS_GPIO_LED_DEBUG printk(SIMPLE_GPIO_LED_ioctl -kernel-n);#endif switch(cmd)case LED_ON:GPCR3|=0 x1;break;case LED_OFF:GPSR3|=0 x1;break;default:printk(lcd control:no cmd run -kernel-n);return(-EINVAL);return 0;驱动程序的模块加载static int _init pxa270_GPIO_LED_CTL_init(void)int ret=-ENODEV;#ifdef OURS_GPIO_LED_DEBUG printk(pxa270_GPIO_LED_CTL_init -kernel-n);#endif ret=HW_GPIO_LED_CTL_init();if(ret)return ret;return 0;驱动程序的模块卸载static void _exit cleanup_GPIO_LED_ctl(void)#ifdef OURS_GPIO_LED_DEBUG printk(cleanup_GPIO_LED_ctl -kernel-n);#endif devfs_unregister_chrdev(SIMPLE_GPIO_LED_MAJOR,gpio_led_ctl);目录l数字显示器 l数码管显示电路的硬件设计 l数码管驱动程序实例 l数码管显示电路测试程序设计 数码管测试设计l在完成了数码管显示设备驱动程序的设计后,同样需要编写相应的测试程序来验证驱动程序的正确与否。l测试程序的方法多种多样,但主要的目的是观察数码管能否正常显示数字,即0-9的显示。数码管测试效果

    注意事项

    本文(第六章-数字显示驱动程序-Linux设备驱动程序-教学课件.ppt)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开