图4.6.2
6. 汇编源程序 FLAG BIT 00H ORG 00H
START: JB P1.7,START JNB FLAG,NEXT MOV R2,#200 DV: CPL P1.0 LCALL DELY500 LCALL DELY500 DJNZ R2,DV CPL FLAG
NEXT: MOV R2,#200 DV1: CPL P1.0 LCALL DELY500 DJNZ R2,DV1 CPL FLAG SJMP START
DELY500: MOV R7,#250 LOOP: NOP DJNZ R7,LOOP RET
END
7. C语言源程序
#include #include
bit flag;
unsigned char count;
void dely500(void) {
unsigned char i; for(i=250;i>0;i--) {
_nop_(); } }
void main(void) {
while(1) {
if(P1_7==0) {
for(count=200;count>0;count--) {
P1_0=~P1_0; dely500(); }
for(count=200;count>0;count--) {
P1_0=~P1_0; dely500(); dely500(); } } }
7. I/O并行口直接驱动LED显示
1. 实验任务
如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。 2. 电路原理图
图4.7.1
3. 系统板上硬件连线
把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连,??,P0.7/AD7与h相连。 4. 程序设计内容
(1. LED数码显示原理
七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。
LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码见表2 “0” 3FH “8” 7FH “1” 06H “9” 6FH “2” 5BH “A” 77H “3” 4FH “b” 7CH “4” 66H “C” 39H “5” 6DH “d” 5EH “6” 7DH “E” 79H “7” 07H “F” 71H (2. 由于显示的数字0-9的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。这样我们按着数字0-9的顺序,把每个数字的笔段代码
按顺序排好!建立的表格如下所示:TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH 5.程序框图
图4.7.2 6. 汇编源程序 ORG 0 START: MOV R1,#00H NEXT: MOV A,R1 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A LCALL DELAY INC R1 CJNE R1,#10,NEXT LJMP START
DELAY: MOV R5,#20 D2: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,D2 RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
7. C语言源程序
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char dispcount;
void delay02s(void) {
unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--) for(k=248;k>0;k--); }
void main(void)
{
while(1) {
for(dispcount=0;dispcount<10;dispcount++) {
P0=table[dispcount]; delay02s(); } } }
8. 按键识别方法之一
1. 实验任务
每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。 2. 电路原理图
图4.8.1
3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的
SP1端口上;
(2. 把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发
光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。 4. 程序设计方法
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育给初学单片机的40个实验 (4)全文阅读和word下载服务。
相关推荐: