历史上的今天
今天是:2025年08月02日(星期六)
2021年08月02日 | 51单片机------数码管【有74HC753】
2021-08-02 来源:eefocus
一 实验目的:
实验3:使用PO和P2端口实现数码管从0-7的显示效果:
(1) 掌握C语言编程单片机控制程序的方法。
(2) 掌握使用Keil4软件编写、编译、调试程序的方法。
(3) 掌握使用Proteus软件绘制电路原理图、硬件仿真和程序调试。
(4) 理解和掌握共阴极数码管的显示原理和编码(记忆)。
(5) 熟悉使用51单片机P0(开漏)和P1(推挽)端口实现对外部用电器和电路的控制。
二、实验硬件和软件:
计算机1台、并安装Proteus8.6软件和Keil4软件。
三、试验任务:
使用Proteus排线连接的方式,在单片机I/O口(P2和P0)上外接上拉电阻和数码管,最终实现数码管从0-7显示效果,为最终的实训项目一做准备。(要求:显示效果从左至右,单个数码管显示间隔时间为1S,可以在完成该实验的基础上增加实验内容:两位数从60到1的交通灯计时显示。)
四、实验报告:
(1)项目背景:
(2)需求分析:
【项目背景、需求分析可参考51单片机------闪烁灯】
(3) 项目内容:
(1)打开Keil软件,新建一个工程,命名为“数码管”;

(2)选择芯片类型,虽然使用的是STC90C516RD 或 STC89C52RC的单片机,但这里选择ATMEL------AT89C51这个芯片就行。

(3)新建一个文件,输入数码管实验的相关代码:
#include #define uint unsigned int #define uchar unsigned char uchar DULA_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar WELA_table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; sbit WELA=P2^6; sbit DULA=P2^7; void delayxms (unsigned int xms) { int x,y; for (x=xms;x>0;x--) for (y=110;y>0;y--); } int main ( ) { while(1) { uint i; for(i=0;i<8;i++) { WELA=1; P0=WELA_table[i]; delayxms(5); WELA=0; DULA=1; P0=DULA_table[i]; delayxms(5); DULA=0; delayxms(1000); } } } (4)保存文件看,文件名为“03-数码管.c”; (5)右键单击“Source Group 1”,单击“Add Files to Group ‘Source Group 1’”,将刚刚生成的“03-数码管.c”文件加入到工程中; (6)单击编译按钮 (7)右键单击“Target1”→“Options for Target ‘Target 1’…”,选择对话框中“Output”选项卡,选中“Create HEX File”选项用于生成十六进制文件,再次单击按钮编译,成功后会生成同名的十六进制文件;(点击按钮前应修改一些设置) (8)运行Proteus软件,绘制出原理图如下: 【所需元件:AT98C51 RESPACK-8 7SEG-MPX8-CC 74HC753 】 (4)测试过程: 成功 五、实验收获与体会 学习用单片机编程实现数码管的静态和动态显示,在理解老师讲解的知识基础上和同学一起探讨交流,慢慢熟悉了一些新知识。操作过程中,软硬件方面都出现一些问题,实验中实验结果讨论遇到数值显示不全及数值闪烁太快的情况,于是改用程序之后问题得以解决,因此实验中程序应该及时检查,不然会影响实验的顺利进行。 
,或按F7编译工程,结果如下则视为编译无误;




史海拾趣
|
一、测速设备综述: 交警执法用的测速设备包括流动式的雷达测速仪和固定安装在道路上的机动车超速自动监测系统。本文所称测速设备,主要指固定安装于道路上的机动车超速自动监测系统。 (一)流动式雷达测速仪: &n ...… 查看全部问答> |
|
大家好,我想请教一个问题。我用430f449的2.0和2.1口来模拟串口,2.0做输出,2.1做输入。把2.1的SEL打开,然后用TIMERB0来做接收起始位下降沿的捕获,用外接的32.768K晶振的ACLK做TIMERB0的时钟源。TBCCTL0的控制字是TBCCTL0 = OUTMOD_0 + CCIE + C ...… 查看全部问答> |
|
#include \"MSP430F5438A.H\"#define uchar unsigned char #define uint unsigned int#define at2464_PIN P9OUT#define at2464_RED P9IN#define at2464_DIR P9DIR#define at2464_SCL_H at2464_PIN|=BIT1#define at2464_SCL_L at2464_PIN ...… 查看全部问答> |
|
学校需要做一个小项目,目的就是给我一个正弦波,需要用msp430f149测量它的峰峰值,有效值和频率。我刚上手几天,手册看得一知半解,过于测量有效值的程序,思考了半天未果。疑问如下:1.ADC先做采样保持再做转换,时间没有重叠的吗?2.MEMORY里面 ...… 查看全部问答> |
|
PCB覆铜的方式基本上可以分为两种, A, flood over淹没式覆铜:即焊盘跟GND连成一片完整的铜皮 B, 十字覆铜:即焊盘跟大片的铜皮通过细铜皮连接 请问大家用哪种多,看到此帖的,并且画过PCB板的都回复一下: 您设计的单层板/双层板/多层板,分 ...… 查看全部问答> |
|
参考的是launchpad口袋实验平台指导书。 但是自己用P1后4位中断,P6接led显示就是出不来效果。 不算入门,劳驾高手指正。 #include #include \"config.h\" /************************************************ * 初始化IO ******************* ...… 查看全部问答> |




