指令的时钟周期数为12;该指令的时钟周期数为12;该指令的时钟周期数为24
4、单片机外接221184MHz晶体,复位后执行了下列串口初始化程序段。问:串口的波特率被设置为19200bps?串行通信的一帧数据有10位?MOVMOVMOVMOVSETBSCON,40HTMOD,20HTH1,253TL1,253TR1
5、DAC0832工作在直通工作方式,DAC0832的D7D0与单片机的P07P00依次连接。问:运行如下程序时产生的波形是锯齿波?MOVMOVADDLJMPA,00HP0,AA04HLOOP
LOOP:
三、编程题(每小题4分,共20分)编程题(
1、编写C语言程序段,将20H与30H中的内容互换,其中R0的地址为10H,请在程序中设置PSW。
程序1:程序2:SETBRS1CLRRS0MOVA20HMOV20H30HMOV30HA
charp1p2charmRS11RS00p10x20p20x30mp1p1p2p2m
SETBRS1CLRRS0PUSH20HPUSH30HPOP20HPOP30H
2、编写汇编语言程序段,完成对立即数BDH、45H、55H的相加运算,结果存放在地址为50H和51H两个存储单元中,其中低字节结果放在50H中,高字节结果放在51H单元中。
共4页第3页
fmova0bdhadda45hpushaccmova0
addca0mov51hapopaccadda55h
mov50hamova51haddca0mov51ha
3、编写汇编语言程序段,将地址20H开始的10个连续单元的内容取反后放入原单元,要求用R6作为循环计数器。
movr610movr020hlpmovar0cplamovr0ai
cr0dj
zr6lp
4、编写汇编语言程序段,实现以下公式的计算。其中有符号数X在R1中,Y在R2中。
X3Y2X
X≥0X0
movar1j
bacc7lpmovb2mulabsjmp
ext
lpadda3
extmovr2asjmp
5、编写完整C语言程序,使用定时器T0进行定时,用中断方式在P20引脚产生周期为100Hz的方波(晶体频率为12MHz)。
i
cludereg51hsbitledP20voidtimer0i
terrupt1TH050008TL050000XFFledledmai
EA1ET01TMOD0X11TH050008TL050000XFFTR01while1
第一题必须用汇编语言编写,四、综合应用题(每小题5分,共10分)第一题必须用汇编语言编写,第二综合应用题(应用题题可以用汇编也可以用C语言
硬件电路的示意图如下(晶体频率为12MHz):
共4页第4页
f1、设计使数码管显示字母“H”的完整汇编语言程序。完整汇编语言
ORG0lpmovp201101110bSJMPlpEND
2、设计从P1口读入开关的状态并在数码管中显示相应数值的完整程序。
ORG0movdptrtablpmovap1a
la0fhmovcaadptrmovp2aljmplpabcdefgptabdb11111100bdb01100000bdb11011010bdb11110010bdb01100110bdb10110110bdb10111110bdb11100000bdb11111110bdb11110110bdb11101110bdb00111110bdb10011100bdb01111010bdb10011110bdb10001110bEND45r