全球旧事资料 分类
tempP3temptemp0xf0iftemp0xf0delayms10tempP3temptemp0xf0iftemp0xf0tempP3switchtemp
20201127
fcase0xe7key12breakcase0xd7key13breakcase0xb7key14breakcase0x77key15breakwhiletemp0xf0tempP3temptemp0xf0
displaykeyvoidmai
P00关闭所有数码管段选dula1dula0P00xc0位选中所有数码管wela1wela0while1matrixkeysca
不停调用键盘扫描程序
例531用单片机控制ADC0804进行数模转换,当拧动实验板上AD旁边的电位时,在数
20201127
f码管的前三位以十进制方式显示出AD转换后的数字量(8位AD转换后数值在0255变
化)。(part23_1cP107)
i
cludereg52h
52系列单片机头文件
i
cludei
tri
sh
defi
eucharu
sig
edchar
defi
eui
tu
sig
edi
t
sbitdulaP26
申明U1锁存器的锁存端
sbitwelaP27
申明U2锁存器的锁存端
sbitadwrP36
定义AD的WR端口
sbitadrdP37
定义AD的RD端口
ucharcodetable
0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x71
voiddelaymsui
txms

ui
tij
forixmsi0i
ixms即延时约xms毫秒
forj110j0j

voiddisplayucharbaiucharshiucharge显示子函数

dula1P0tablebai
送段选数据
dula0
P00xffwela1
送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位选锁存器造成混乱
P00x7e送位选数据
wela0
delayms5
延时
dula1P0tableshidula0P00xffwela1P00x7dwela0delayms5
dula1P0tablege
20201127
fdula0P00xffwela1P00x7bwela0delayms5
voidmai

主程序
ucharaA1A2A3adval
wela1P00x7f
置CSAD为0,选通ADCS以后不必再管ADCS
wela0
while1

adwr1
_
op_adwr0
启动AD转换
_
op_
adwr1fora10a0a留点时间用来转换

TX1C实验板AD工作频率较低,所以启动转换后要多这里把显示部分放这里的原因也是为了延长转换时
displayA1A2A3
P10xffadrd1
读取P1口之前先给其写全1选通ADCS
_
op_adrd0
AD读使能
_
op_advalP1
AD数据读取赋给P1口
adrd1A1adval100
分出百,十,和个位
A2adval10010
A3adval10


例551用单片机控制DAC0832芯片输出电流,让发光二级管D12由灭均匀变到最亮,再
20201127
f由最亮均匀熄灭。在最亮和最暗时使用蜂鸣器分别警报一声,完成整个周期时间控制在5S左右,循环变化。(part23_2cP121)
i
cludereg52h
defi
eucharu
sig
edchar
defi
eui
tu
sig
edi
t
sbitdulaP26
申明U1锁存器的锁存端
sbitwelaP27
申明U2锁存器的锁存端
sbitdawrP36sbitdacsP32
定义DA的WRr
好听全球资料 返回顶部