原创译码器
用STC89C52RC单片机制作的内似7447的译码器
删除了7447引脚的RI/RBO、RBI和LT,方便显示每一个数
有LCD1602信息显示
相信我,这是原创
代码编了15分钟才完工
希望喜欢
晶振频率:12MHz
整体电路
启动后
读取效果
进位效果
单片机源程序如下:
- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #include "1602.c"
- sbit a=P1^0;
- sbit b=P1^1;
- sbit c=P1^2;
- sbit d=P1^3;
- uchar code table[]={
- 0xc0,0xf9,0xa4,0xb0,
- 0x99,0x92,0x82,0xf8,
- 0x80,0x90,0x88,0x83,
- 0xc6,0xa1,0x86,0x8e
- };
- void calcdat()
- {
- while(1){
- display_init();
- cprintf("4Bit to segment");
- gotoxy(0,1);
- if(a==0){
- if(b==0){
- if(c==0){
- if(d==0){
- P0=table[0];
- cprintf("74163=0");
- return;
- }
- }
- }
- }
- if(a==1){
- if(b==0){
- if(c==0){
- if(d==0){
- P0=table[1];
- cprintf("74163=1");
- return;
- }
- }
- }
- }
- if(a==0){
- if(b==1){
- if(c==0){
- if(d==0){
- P0=table[2];
- cprintf("74163=2");
- return;
- }
- }
- }
- }
- if(a==1){
- if(b==1){
- if(c==0){
- if(d==0){
- P0=table[3];
- cprintf("74163=3");
- return;
- }
- }
- }
- }
- if(a==0){
- if(b==0){
- if(c==1){
- if(d==0){
- P0=table[4];
- cprintf("74163=4");
- return;
- }
- }
- }
- }
- if(a==1){
- if(b==0){
- if(c==1){
- if(d==0){
- P0=table[5];
- cprintf("74163=5");
- return;
- }
- }
- }
- }
- if(a==0){
- if(b==1){
- if(c==1){
- if(d==0){
- P0=table[6];
- cprintf("74163=6");
- return;
- }
- }
- }
- }
- if(a==1){
- if(b==1){
- if(c==1){
- if(d==0){
- P0=table[7];
- cprintf("74163=7");
- return;
- }
- }
- }
- }
- if(a==0){
- if(b==0){
- if(c==0){
- if(d==1){
- P0=table[8];
- cprintf("74163=8");
- return;
- }
- }
- }
- }
- if(a==1){
- if(b==0){
- if(c==0){
- if(d==1){
- P0=table[9];
- cprintf("74163=9");
- return;
- }
- }
- }
- }
- if(a==0){
- if(b==1){
- if(c==0){
- if(d==1){
- P0=table[10];
- cprintf("74163=A(10)");
- return;
- }
- }
- }
- }
- if(a==1){
- if(b==1){
- if(c==0){
- if(d==1){
- P0=table[11];
- cprintf("74163=B(11)");
- return;
- }
- }
- }
- }
- if(a==0){
- if(b==0){
- if(c==1){
- if(d==1){
- P0=table[12];
- cprintf("74163=C(12)");
- return;
- }
- }
- }
- }
- if(a==1){
- if(b==0){
- if(c==1){
- if(d==1){
- P0=table[13];
- cprintf("74163=D(13)");
- return;
- }
- }
- }
- }
- if(a==0){
- if(b==1){
- if(c==1){
- if(d==1){
- P0=table[14];
- cprintf("74163=E(14)");
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
4-bit_to_segment.zip
(19.81 KB, 下载次数: 12)
|