CT107D蓝桥杯动态数码管实例(4)
来源:互联网 发布:网络主播协议 编辑:程序博客网 时间:2024/06/16 04:43
今天我给大家讲一下CT107D蓝桥杯数码管的显示。
数码管的具体原理我就不多说了,因为说多了怕你们晕了,多说无益,想了解原理的可以自己BD一下,
我们之间找电路吧:
这个可以看到,我们直接控制Y7C口,向P0口送数据
我们控制Y6C口选择使用哪个数码管,一个是8个
我们找到Y6C和Y7C就好了
这个很熟悉了吧,好了,上使用方法
P2=(P2&0x1f)|0xc0; 打开Y6
P0=0x01; 选第一个
P2&=0x1f; 关Y6
P2=(P2&0x1f)|0xe0; 打开Y7
P0=0xf9; 给数据
P2&=0x1f; 关Y7
这里是基本使用方式,下面我写一个完整的程序
#include “reg52.h”unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; //数据编码unsigned char dsbuff[]={10,10,10,10,10,10,10,10}; 显示的数据unsigned char dscom=0;void init_smg(){TMOD|= x01; 定时器0工作模式2TH0=(65536-2000)/256; 2m秒一次中断TL0=(65536-2000)%256;ET0=1; 开定时器中断TR0=1; 开定时器0EA=1; 开总中断}void dsplay(){ P2=(P2&0x1f)|0xe0;P0=0xff;P2&=0x1f;P2=(P2&0x1f)|0xc0;P0=1<<dscom;P2&=0x1fP2=(P2&0x1f)|0xe0;P0=tab[dsbuff[dscom]];P2&=0x1f;if(++dscom==8)dscom=0;}void smg_time0()interrupt 1{TH0=(65536-2000)/256; 2m秒一次中断TL0=(65536-2000)%256;dsplay();}void main(){init_smg();dsbuff[0]=8; 第一个数码管显示8while(1);}
2 0
- CT107D蓝桥杯动态数码管实例(4)
- CT107D蓝桥杯DS1302实例(数码管时钟)
- CT107D蓝桥杯串口实例(3)
- CT107D蓝桥杯单片机编程LED(1)
- CT107D蓝桥杯蜂鸣器和继电器(2)
- CT107D蓝桥杯独立键盘运用(5)
- CT107D蓝桥杯超声波模块(6)
- CT107D蓝桥杯EEPROM使用(8)
- CT107D蓝桥杯DS18B20使用
- CT107D蓝桥杯外部中断
- CT107D蓝桥杯IIC驱动通用所有单片机(7)
- 动态数码管
- 动态数码管
- CT107D蓝桥杯矩阵键盘使用
- 动态数码管显示(C源码)
- 七段数码管显示控制 (4个数码管)
- PIC32数码管实例
- 数码管动态显示字符
- Linux安装php-7.0.16,完成php和apache的配置
- zoj Connections in Galaxy War(逆向并查集)
- Vmware网络配置
- (转)对冲基金:AQR合伙人:“沉闷”股票回报更好
- 新手装ubuntu-14.04.1系统
- CT107D蓝桥杯动态数码管实例(4)
- Java小问题
- OpenCV中imread/imwrite与imdecode/imencode的异同
- 程序员养成这16个好习惯,离成功就不远了
- Java中相对路径,绝对路径问题总结
- js浏览器兼容问题总结及解决办法
- hibernate5--2.数据持久化及事务
- Junit单元测试+断点调试
- linux下查看所有用户及所有用户组