天猫网站建设可行性分析,网站后台上传word,做网站用别人的图片,微网站模板 php前言
就是今天看了一下书上的单片机实验#xff0c;发现很多的器件在Proteus中都不知道怎么去查找#xff0c;然后想做一下这个实验#xff0c;尝试能不能实现#xff0c;LED数码管的两个还可以实现#xff0c;但是用LED点阵显示器的时候他那个网络标号不知道是什么情况发现很多的器件在Proteus中都不知道怎么去查找然后想做一下这个实验尝试能不能实现LED数码管的两个还可以实现但是用LED点阵显示器的时候他那个网络标号不知道是什么情况有两个东西所以我也还没搞懂先暂时就是把LED数码管的静态显示和动态显示来记录一下。由于之前的Keil版本太老了然后我就下载了最新版的不过应该也没有什么影响吧。实验完成的就是以下两个
1.用静态的方法显示学号的最后两位。
2.用动态的方法流水显示学号的后面六位。
实验需要用到的元器件符号在Proteus中
元件名称Proteus关键字单片机AT89C51晶体振荡器CRYSTAL蓝色的数码管7SEG-COM-AN-BLUE绿色的数码管7SEG-COM-AN-GRN电阻RES七段数码管7SEG-MPX8-CA-BLUE复位按钮BUTTON电容CAP电解电容CAP-ELECNPN三极管NPN排阻RX8 LED数码管的显示原理是利用LED的发光特性通过控制LED的亮灭来显示不同的数字或字符。它由多个LED灯组成通常为七个LED灯排列成数字“8”的形状。每个LED灯代表一个数字段分别为a、b、c、d、e、f、g段其中a、b、c、d、e、f、g段分别对应数字“0”到“9”中的不同段。
LED数码管的控制方式有两种一种是共阳极控制一种是共阴极控制。共阳极控制是指将所有LED灯的阳极连接在一起通过控制各个阴极的接通情况来控制LED数码管的亮灭共阴极控制则是将所有LED灯的阴极连接在一起通过控制各个阳极的接通情况来控制LED数码管的亮灭。
比如我采用的是共阳极的数码管想输出2他共阳极就是都接着同一个电源了要想他亮对应的位置就是0低电平1高电平就不亮然后在纸上画着对应位置就可以写出对应的字型码了(采用16进制)。 常见的字符的码段
显示字符共阴极字型码共阳极字型码03FHC0H106HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90HA77H88Hb7CH83HC39HC6Hd5EHA1HE79H86HF71H8EHP73H8CHU3EHC1HT31HCEHy6EH91HH76H89HL38HC7H灭00HFFH
LED数码管的静态显示
首先就是要理解他的逻辑通过Keil生成对应的.hex文件再导入到Proteus中进行模拟。
Keil部分
新建项目 自己选择路径起文件名建议是用英文但是目前中文也没有报错 选择AT89C51
点击是 新建C语言文件 然后就是输入代码
#includereg51.h //包含8051单片机寄存器定义的头文件
void main(void){P00xa4;//将数字“2”的码段共阳极送P0口P10x82;//将数字“6”的码段共阳极送P1口while(1);//无限循环
}
没有错误就问题不大但是此时我们还没有生成.hex文件需要勾选一下。 再重新把程序构建一下就可以了。文件在项目的Objects文件夹下面
到这里Keil部分就可以了接着就是Proteus部分
Proteus部分
先要创建一个.DSN文件 添加电路图需要的元器件 然后就是添加后连线直接连线就不用说了这里说一下网络标号 输入标号标号一致表示连接 电源在左边的工具栏和通过鼠标右键都可以找到 导入hex文件(双击AT89C51) 左下角选择开始停止 运行结果 拓展
本来以为买的是一样的结果发现不太一样。这个选择的是AT89C52.需要借助STC-ISP.
之后就是下载/编程就烧录到单片机里面了。 还是有区别的这个程序。这个的有一个消影的布置就是如果不这样就会导致输出的时候两个会重合所以需要有清零重新打印的布置。
#includeregx52.h
//打印的位置
unsigned char NixieTable[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x7F,0x6F};
//延时函数
void delay(unsigned int xms){unsigned char i,j;while(xms--){i2;j239;do{while(--j);}while(--i);}
}
//打印的数字
void Nixie(unsigned char Location,Number){switch(Location){case 1:P2_41;P2_31;P2_21;break;case 2:P2_41;P2_31;P2_20;break;case 3:P2_41;P2_30;P2_21;break;case 4:P2_41;P2_30;P2_20;break;case 5:P2_40;P2_31;P2_21;break;case 6:P2_40;P2_31;P2_20;break;case 7:P2_40;P2_30;P2_21;break;case 8:P2_40;P2_30;P2_20;break;}//消影P0NixieTable[Number];delay(1);#P00x00;
}void main(){while(1){Nixie(1,2);Nixie(2,6);}
} LED数码管的动态显示
同理可得
#includereg51.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned intuchar code dis_code[]{0xA4,0xC0,0xC0,0xF9,0xA4,0x82};//200126
uchar code wei_code[]{0x01,0x02,0x04,0x08,0x10,0x20};//对应输出的位置void delay(uint t){uchar i;while(t--)for(i0;i200;i);
}void main(){uchar i;while(1){for(i0;i6;i){P0dis_code[i];//P0口输出段码P2wei_code[i];//P2口输入位控码delay(123);//延时}}
} 总线可以通过右键来找到左边也有还有电源和接地的符号 流水灯 参考链接
KeilMDK5软件写不了汉字注释怎么解决_keil怎么输入中文_第九荒岛的博客-CSDN博客https://blog.csdn.net/qq_46600282/article/details/128550120proteus设计教程-数码管使用方法_proteus数码管_zd845101500的博客-CSDN博客https://blog.csdn.net/zd845101500/article/details/126663186proteus常用元件图示和名称介绍 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/518410309?utm_id0单片机Proteus中的这个16个引脚的元器件是什么_百度知道 (baidu.com)https://zhidao.baidu.com/question/2121623824451309267.htmlProteus如何设置网络标号-百度经验 (baidu.com)https://jingyan.baidu.com/article/adc8151342d5a7b623bf73f3.html怎样把HEX文件载入PROTEUS 7仿真软件单片机里_360问答 (so.com)https://wenda.so.com/q/1676834827210755proteus电源在哪-百度经验 (baidu.com)https://jingyan.baidu.com/article/4e5b3e192806d8d0911e2423.html
51单片机入门教程-2020版 程序全程纯手打 从零开始入门_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Mb411e7re/?spm_id_from333.1007.0.0vd_source7c3bfbf39d037fe80c97234396acc524
总结
还是需要一点耐心的其实我也不确定能不能运行成功但是最后结果和自己理想中的一样的时候还是有点小激动的未来继续努力。