2024年4月29日发(作者:)
维普资讯
20Q2年第1期 仪表技术 一9一
单片机应用程序的高级语言设计
陆永耕
(中国矿业大学,江苏撩州22100 ̄)
摘要:介绍利矾Fmaklin C高级语言蝙写单片机用户应用程序的特点,对汇蝙语言难以处理的数据分析、运算和显示等方面,
它具有较好的处理效果。
关羹词:单片机;高级语言;程序;数据处理
The Application 1)es ̄n of High Level Language to the Single-chip Processor
LU Yong-geng
(1he University 0f Mi, ̄g and clⅡd唧,XI 0I-221008,C]ifna)
Abs岫:This paperdiscussed 衄lni advantage 0fthe Franklin C highlevel J8I| 舻,esp郫 yinthe 0o曙她0fthe enaly'ne, ̄gIcu—
latin and j曲 .
Key Or出:single-chip 0ce秘叮#highlevellmagmge; 阳n】mer;data plocess.
1系统硬件结构
和运行情况在屏幕上同时显示出来,支持汇编语言、
PIAI语言、c语言源程序的运行调试,也可同时相互交
5l系列单片机应用系统.由以下部分组成:模数/
叉使用,有极高的开发效率。
数模转换芯片AD0809/DAC0832,并行输入输出信号缓 程序有以下子程序组成:系统初始化Init
—
sys()、
冲74Is 5、锁存74HC573、驱动光电隔离的8255A,键 主程序Main()、键盘输入ReadKey()与显示DisDP()、
盘输入KEY及数码管显示LED 8279,以及作为R
采样AD与数字量输出DAC、时钟定时TimeaO()、看门
232串行通讯接口的MAx232。同时,为防止死机现
狗复位WATCHI3OG()、串行发送Tx—char()与接收R工
象,设置了看门狗电路wlyr(看门狗将定时对系统实
一
char()等。下面分别对其进行介绍。
现自动复位)。单片机用8031/89c51/8751系列,它有
2.1系统初始化
64K EPR0M程序储存单元和32K RAM数据存储器,能
完成数码管显示、串行口、时钟、键盘的初始化。
满足一般应用要求。单片机应用系统组成如图l所
8279初始化为8*8字符显示.右端输入.编码扫描键
示。
盘,fv键轮回方式。要显示的数据经I)isSeg[]编码处
A,n#整
理后放在disp [8]单元,进行显示。单片机串行.El设
定为传输模式1,每次发送接收10个旒位,包括一个
看门囊 + 苴
起始位和一个结束位。时钟中断程序产生20ms的定
R^M}_+ 片
时,以便定时采样或者数码显示的更新。
; 帆
vo hilt
—
()}
ped妇h
羹量-^ ◆
XBYTE[ PⅫ]=0xDl;
e
((xⅡYTE【s F ])1==1);
图1单片机应用系统组成
xBYTE[s ]=0x00;
为了能够满足掉电情况下长期工作的要求,硬件
xBYTE[ 4PⅢ]=0x2A;
各部分选择低功耗的元器件。
for"( 0; (s;i++){di卵1 [ II Di娼es_]:I
sCoff=0x501
2系统软件设计
TMOD= 0眦 /*~-T/ClOD=Oxl1…一*/
TH1= .皿:
采用Franklin C高级语言编写用户程序.在仿真器
I(TCON 6);
Explorer/G6E上编译调试通过;ICExplorer仿真系统具
Selblt(scoN 1);l
有编辑、汇编、编译等集成调试功能,是一种高性能的 2.2键盘输入数码管显示接口
单片机开发工具.用于仿真4-16位单片机,所有命令
8279的命令状态口地址和数据口地址分别为
收稿日期:2∞1一lO
作者镯介:陆永瓣(1963一),男,江苏徐州人,博士,讲师,主要从事工业自动化及数字图像处理的研究。
维普资讯
一
10一 仪表技术 2002年第l期
StaPoa、DataPort;显示缓冲区RAM位于外部中;8279初
为1时,表示10个串行位发送完毕.可以发送下一个
始化为8*8字符显示,右端输入,编码扫描键盘,Ⅳ键
字符了;发送完后,应将SCON.1位清零,为下一步发
轮回方式。待检测到键按下后,返回键值.主程序调用 送作准备。同样道理,执行接收功能时.当SCON.0位
该子程序,读取键值并转向相应的键值处理服务程序。
变成1时.表示一串完整的数据进入SIIUF中,可以接
要显示的数据在变量disp中,经oi ̄seg[]编码处理后
收,并将SCON.0位清零。
放入display[]单元,显示程序将display[]中的数值在
/f…… 一一*/
数码管上显示出来。
'rx
—
dⅢ( edd c){
/*一一 旺7 …一*/
则e(1)
lg—d dw R 10-()}
if【Scc &0 ==0北)beeak;
if(ⅫⅥE[s ]&0 7)I
d l(SCON 1):
Ⅺ蛐[s lj=0枷;
印UF=c;l
r时um(XBn'E[n PⅢt]+1);l
dRx
—
dw()}
∞tO);l
则e(1)
voidIXOP()l
(s00 80lol==O曲1)b础;
ck (SCO ̄.O);
un 妇i,j;
for('_O;i《8;i++){di自p [i]=Diss [d %10];d p/=IO;}I
retura SBUF;}
2.3 AD/DAC接口
主程序流程如下所示:首先进行各个外设接V1的
程序中定义了两个存储变量单元,分别指向接口
初始化,然后,进入采样处理显示程序,由时钟中断程
单元地址ADc和外部单元地址 首先启动AD.
序完成显示扫描更新及采样处理;在对各外设接口单
CON转换.待检测到转换完成信号ADcoN.0位变为1
元处理时,要加入看门狗复位子程序,防止出现死循
时.读取转换结果并存贮到外部单元。输出数据时.直
环。
接向DAC地址输出结果即可。每次第i通道的采样
/*…-M ()…一*/
# e<Rm51 h’
结果存储在变量temp中,累加放入wei ̄t[i],不同通
# wh_de<sr1)lO.h
道的转换结果存入不同的weight[i]。
# wh_de《/dlSACC h>
/ …一^D.…一*/
/* 定殳善个外设接口地址:t/
voidAⅨ瑶09()l
舳=啦盯盯;^DC= _删;ADc0N= fI l;St ̄ort=0:cFII ̄B;
un d i,j;
nlL日P嘣=0)mA;IIVPott/oIIrPc ̄t=0 90:
for(i-0;i《3;i++)I
/ 一……一*/
(j=o;j<4“++)I
dⅢcode 目s []=/ P即ts be d y。I*/
XBYrE[^Dc+ ;0∞D;
}Cx3f,IN06,(NSb,0x4f ̄0 ,0 .0x7d.0x07.IN7f,0耐l
t,chi[ ̄((XBn'E[ADCON])^。==0);
IlII8igr c}I ,k ,w;
I唧=ⅫWE[^Dc+Ij;
m cIIIIsi ed }Ⅲdi ;
[i]+=te ̄p;}I}
呻 im i由 I 印.出甲,We l[8];
2.4时钟运行及看门狗复位程序
/*一…-*/
单片机的时钟频率为11.0592NI ̄.用时钟中断子
删 ()l
程序产生2 的定时,dick记录中断次数,产生秒信
un gr i.J;
click=0∞0;∞c=姗;d =0∞0;
号sec,每20ms更新标志,在显示程序中复位该标志。
n10D= Il;1H0=0'船;ⅡD=0 5;1啦=1;m=1;EA=1
看门狗定时要大于系统运行周期的两倍.否则影响系
Init
—
();
统的正常运行。
e(1)1
/*~一 _珀 O一.WATCH1)I ̄…一/
w=R翩dK ();
1iJ () 1 u 2I
key w
TH0=0 E;1I.D=IN75:
AD栅();
dick++:
=
【0];
if(diO ̄)5O){
();l}
see++i
if(∞c>59)l =ol;
参考文献:
eliak=0;{
[1]徐爱钧.彭秀华.单片机高级语言C51应用程序设计[M]
dWAII21t1) ̄()lXB'I/'I ̄[W1D]=INll;}
北京;电子工业出版杜,1999.
2.5串行通讯程序
[2]陈龙三.8051单片机C语言控制与应用[M].北京:清华大
单片机设定为传输模式1,每次传送10个串行
学出版杜.1999.
位,包括一个起始位和一个结束位。当SCON.1位变
(许雪军编发)
发布者:admin,转转请注明出处:http://www.yc00.com/web/1714372504a2434224.html
评论列表(0条)