返回主页  单片机教程  XL2000开发板  单片机学习 自制编程器  单片机资料  电子技术  产品介绍 如何购买  进入论坛

<>51单片机学习网热心版主单片东东,收集整理的单片机教程课程(例子程序, 特别推荐!)转载请保留连接!
单片机简介与单片机的发展历史I/O 口功能实例流水灯和方波试验
定时器实例 (1秒报警,200hz输出 200-250变化输出)

数码管0—9999 的循环显示

ADC0809模拟输入电压,在数码管上显示出来

ADC0809输入的两个不同电压数相加显示出来

软件滤波十六进制六位数加法(数码显示)求六位和中的最大值和最小值(数码显示)
求减去最大和最小值后的值(数码显示)除4所得软件滤波值(数码显示)
软件模拟一个振动传感器软件搜频的全过程在显示频率输出的同时显示AD值(数码显示)
过程检定(数码显示)

DA 转换三角波 正旋波 梯形波(dac0832)

串口通信,看到画面——“我爱单片机”。

按键数显,数码管显示加一
PWM码简介及解码原理--红外遥控原理与解码程序
智能定时的4位电子钟(带定时控制)智能红外工业控制器

                        

51单片机学习网热心版主单片东东,收集整理的单片机教程课程(例子程序, 特别推荐!)转载请保留连接!

<>如果您有任何不明白的地方请参加51单片机学习网论坛讨论

八、DA 转换

8.1 三角波

程序介绍:单片机通过DAC0832转换在LM358的7脚输

出三角波。实际应用如:函数波形发生器。

程序实例(0832shan.asm):

ORG 0000H

MAIN:

MOV DPTR,#0BFFFH ;选通地址

STR1:

MOV R6,#00H

;通过上升和下降来产生三角波///////////////////

;电压随时间上升///////////////////////////////

STR2: MOV A,R6

MOVX @DPTR,A

INC R6

CJNE R6,#0FFH,STR2

;/////////////////////////////////////////////

;电压随时间下降///////////////////////////////

STR3: DEC R6

MOV A,R6

MOVX @DPTR,A

CJNE R6,#00H,STR3

;/////////////////////////////////////////////

AJMP STR1

END

78

8.2 方波

程序介绍:程序介绍:单片机通过DAC0832转换在

LM358的7脚输出方波。实际应用如:函数波形发生器。

程序实例(0832fan.asm):

ORG 0000h

MAIN: MOV DPTR,#0BFFFH

;通过高低电平地的变化来输出方波///////////////

LOOP1:

MOV A,0

MOVX @DPTR,A ;向选通地址送低电平地

ACALL DELAY

MOV A,#0FFH

MOVX @DPTR,A ;向选通地址送高电平

ACALL DELAY

AJMP LOOP1

;/////////////////////////////////////////////

DELAY: MOV 30H,#0FFH ;延时,通过改变它的大小

可以改变占空比

D2: DJNZ 30H,D2

RET

END

8.3 正弦波

程序介绍:程序介绍:单片机通过DAC0832转换在

LM358的7脚输出正弦波。实际应用如:函数波形发生器。

程序实例(0832xuan.asm):

ORG 000H

MAIN: MOV R1,#00H ;取表格初值

79

LOOP1:

;在表格里取数送到指定地址/////////////////////

MOV A,R1

MOV DPTR,#SETTAB

MOVC A,@A+DPTR

MOV DPTR,#0BFFFH

MOVX @DPTR,A

;/////////////////////////////////////////////

INC R1 ;表格加一

AJMP LOOP1 ;循环

SETTAB:

;正弦表格/////////////////////////////////////

DB 80H,83H,86H,89H,8DH,90H,93H,96H

DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH

DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H

DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H

DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H

DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H

DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH

DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH

DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H

DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH

DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH

DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H

DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H

DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H

DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H

80

DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H

DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H

DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH

DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H

DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H

DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH

DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H

DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H

DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H

DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H

DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H

DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H

DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H

DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH

DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H

DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H

END

8.4 梯形波

程序介绍:程序介绍:单片机通过DAC0832转换在

LM358的7脚输出梯形波。实际应用如:函数波形发生器。

程序实例(0832ti.asm):

ORG 0000h

MAIN:

MOV DPTR,#0BFFFH

STEP: MOV R6,#19H

MOV R4,#0AH

MOV A,0

81

LOOP1: MOVX @DPTR,A ;选通地址

ACALL DELAY ;延时

ADD A,R6 ;每次以19H的梯度增加

DJNZ R4,LOOP1 ;梯度等待的时间

AJMP STEP ;循环

DELAY:

D2: MOV 31H,#0FFH

D1: DJNZ 31H,D1

RET

END