数码管——8段共阴极数码管
2016-09-14 21:17
162 查看
在德飞莱的系统中,数码管的解法是这样接的:
段锁存器:使能端(低电平有效)
c = 0时,锁存;
c = 1时,传送数据;
段选和位选的操作:
先操作段码,再作位码。
在没有中断的程序的情况下,写入以下程序,实现数码管计数:
段锁存器:使能端(低电平有效)
c = 0时,锁存;
c = 1时,传送数据;
段选和位选的操作:
sbit bit_sel = P2^0;//位选 sbit seg_sel = P2^1;//段选 unsigned char segdata[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴极0~f unsigned char coode[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //控制位选
先操作段码,再作位码。
//消重影 SEGPORT = 0xff; bit_sel = 1; bit_sel = 0; SEGPORT = 0x0; seg_sel = 1; seg_sel = 0; //对数字的刷新 SEGPORT = coode[i]; bit_sel = 1; bit_sel = 0; SEGPORT = outdata[i]; seg_sel = 1; seg_sel = 0;
在没有中断的程序的情况下,写入以下程序,实现数码管计数:
#include <reg52.h> #include "./delay/delay.h" #define SEGPORT P1 sbit bit_sel = P2^0; sbit seg_sel = P2^1; unsigned char segdata[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; unsigned char coode[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char outdata[8] = {0x3f,0x3f,0x40,0x3f,0x3f,0x40,0x3f,0x3f}; unsigned char second = 0; unsigned char minute = 0; unsigned char hour = 0; void hour_seg() { hour++; while(hour > 23) { hour = 0; } outdata[0] = segdata[hour/10]; outdata[1] = segdata[hour%10]; } void minute_seg() { minute++; while(minute > 59) { minute = 0; hour_seg(); } outdata[3] = segdata[minute/10]; outdata[4] = segdata[minute%10]; } void second_seg() { second++; while(second > 59) { second = 0; minute_seg(); } outdata[6] = segdata[second/10]; outdata[7] = segdata[second%10]; } void main() { unsigned char i,j; while(1) { for(j = 0;j<120;j++) { for(i = 0; i < 8; i++) { SEGPORT = 0xff; bit_sel = 1; bit_sel = 0; SEGPORT = 0x0; seg_sel = 1; seg_sel = 0; SEGPORT = coode[i]; bit_sel = 1; bit_sel = 0; SEGPORT = outdata[i]; seg_sel = 1; seg_sel = 0; delay_ms(1); } } second_seg(); } }
相关文章推荐
- 电路与Multisim 共阴极数码管是com_k,共阳极数码管是com_a
- 8段数码管显示电路
- [51单片机] 以从0开始做4位8段共阴数码管3461AS驱动谈细节决定高质量DIY
- arduino 8段数码管,arduino 8段数码管
- 8段数码管显示
- 573锁存器驱动8段数码管
- 573锁存器驱动8段数码管
- 这是个完整的万年历程序,用数码管显示
- 数码管的显示和发光二极管
- 基于tx-1c 51单片机中断使用及数码管显示的使用方法
- PIC16F877A开发板 数码管动态扫描实验
- 定时器控制数码管扫描显示
- 介绍2款使用过的按键和数码管驱动IC
- 使用黑金开发板做出的键盘边沿检测的用数码管显示的verilog hdl 程序
- 整理2010年51单片机程序--4*4按键与数码管显示
- 数码管显示
- 单片机数码管消隐问题
- display32bit(扩展板上的八位数码管的显示模块)
- 按键显示数码管
- 数码管显示原理