一.实验内容
1、在proteus软件中画好数码管动态显示实验电路,共阳数码管4个,由P0口作数据输出口与7段数码管数据引脚相连,P3.0~P3.3引脚输出位选控制信号。 2. 在keil软件中编写程序,采用动态显示法,实现数码管分别显示数字0,1,2,3 。
二.实验目的
1.巩固Proteus软件和keil软件的使用方法; 2. 掌握7段数码管的连接方式和动态显示法; 3. 掌握查表程序和延时子程序的设计。
三、实验电路及连线
RP14.7K1C130pF11.0592MHzC230pFC3100nR218RR14k7293031PSENALEEA9RSTX118XTAL2U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD23456789U23938373635343332212223242526272810111213141516171k1k1k1k23456789191A0A1A2A3A4A5A6A7CEAB/BA74HC245B0B1B2B3B4B5B6B7181172163154145136127118RN1161514131211109220Q1NPNQ2NPNQ3NPNQ4NPN12345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C5211.05926MHz 四、程序流程图
i<4i++;位码左移i位 P3输出位码 P0输出段码 P3输出初始化位码0x01 i初始化为0,指向第一个显示数字的段码 初始化显示数组 开始 N 五、实验代码
/*
*4只数码管采用动态扫描法显示0~3* */
#include typedef unsigned int uint16; code uint8 LED_CODE[] = {0xC0,0xF9,0xA4,0xB0}; void delay(uint16 x) { } void main() { } uint8 i; while(1) { } for(i = 0; i < 4; i ++) { } P3 = 0x01 << i; P0 = LED_CODE[i]; delay(10); uint16 i,j; for(i = x; i > 0; i --) for(j = 114; j > 0; j --); 六、实验现象及结果分析 因篇幅问题不能全部显示,请点此查看更多更全内容