
教学板自检程序设计.doc
8页华南师范大学实验报告华南师范大学实验报告学生姓名: 学号: 专业:电子信息科学与技术(非师范) 年级、班级:07 电子非师 4 班课程名称:单片机实验 实验时间:2010、3、29 实验项目:教学板自检教学板自检 类型:验证 实验指导老师: 实验评分:一、实验目的1.通过实验掌握 EEPROM 使用2. 掌握串行 A/D 的应用3. 掌握单片机串行通信收发接口的使用4.学习系统应用程序的设计和调试方法二、实验设备PC 机一台 、 实验教学板一块三、实验内容及原理程序运行前先将 TXD、RDX 短接程序完成以下功能:1.自检程序先将所有的数码管点亮,显示 0~9,每秒变换一次2. 编写走马灯程序,使 LED 逐位显示一次3.自检程序将 EEPROM 所有单元置 0,并读出检查是否为 0,再置EEPROM 所有单元为 FFH,并读出检查是否为全 1若不成功则显示器显示“Er r 1” 4.启动串行口进行自发自收,检查发、收的数据是否相同。
不成功则显示“Er r 2” 5. 启动 A/D,并在数码管上显示 A/D 转换值6. 等待按键,按任一键则蜂鸣器发声 0.5 秒一次四、程序清单ORG 0000HAJMP MAINORG 000BHAJMP TIME0CLOCK BIT P1.2 ;TLC549CP 时钟时钟DOUT BIT P1.3 ;TLC549CP 输出输出CS BIT P1.4 ;TLC549CP 片选片选MAIN: START: MOV P2,#00H MOV DPTR,#TAB1 LOOP: MOV A,#00HMOVC A,@A+DPTR ;取段码取段码CJNE A,#0BH,JIXU ;非结束码,转去送段码非结束码,转去送段码JMP START1 ;是结束码,转去测试发光二极管是结束码,转去测试发光二极管 JIXU: MOV P0,AMOV P2,#0FH ;开开 4 个数码管个数码管LCALL DELAY200MS ;延时延时 1sLCALL DELAY200MSLCALL DELAY200MSLCALL DELAY200MSLCALL DELAY200MSINC DPTR ;数据指针数据指针+1,指向下一个显示码,指向下一个显示码JMP LOOPSTART1:MOV P2,#00010000B ;从左到右从左到右 ;USE R0MOV A,#11111111BCLR CMOV R0,#8 ;左移次数左移次数=8 LOOP2: RLC AMOV P0,A ;送显示送显示 LCALL DELAY200MSDJNZ R0,LOOP2 ;左移左移 8 次未够,返回,继续次未够,返回,继续MOV A,#11111111B ;从右到左从右到左CLR CMOV R0,#8 ;右移位数右移位数=8 LOOP1: RRC AMOV P0,A ;送显示送显示LCALL DELAY200MSDJNZ R0,LOOP1 ;右移右移 8 次未够,返回,继续次未够,返回,继续MOV A,#00H ;闪烁两次闪烁两次MOV P0,ALCALL DELAY200MSMOV A,#0FFHMOV P0,ALCALL DELAY200MSMOV A,#00HMOV P0,ALCALL DELAY200MSMOV A,#0FFHMOV P0,ALCALL DELAY200MSSTART2: MOV P2,#00H ;串口自发自收串口自发自收MOV TMOD,#20H ;设置计时器设置计时器 T1 工作方式工作方式 2MOV TL1,#0E6H ;计数器计数器 T1 计数初值计数初值MOV TH1,#0E6HSETB TR1 ;启动定时器启动定时器MOV SCON,#50H ;设置串行端口方式设置串行端口方式 1,允许接收,允许接收MOV PCON,#80H ;SMOD=1,波特率加倍,波特率加倍MOV 30H,#10101010B ;置需要发送的数据置需要发送的数据MOV A,30H FASONG: MOV SBUF,AJNB TI,$ ;等待发送完呼叫信号等待发送完呼叫信号CLR TI JIESHOU:JNB RI,$MOV A,SBUFJBC RI,ZANCUN ;等待接收完回答信号等待接收完回答信号SJMP JIESHOU ZANCUN: MOV 40H,AMOV A,30HCJNE A,40H,ERR2 ;接收的数据与发送数据比较,不等,跳去显接收的数据与发送数据比较,不等,跳去显 示示 ERR2SJMP START5ERR2: MOV P2,#00H ;USE R2,R5,R6,MOV R6,#00HMOV R2,#4 ;4 位显示位显示MOV R5,#01HMOV DPTR,#TAB3HAHA: MOV A,#00HMOVC A,@A+DPTRCJNE A,#0CH,SONGJMP ERR2SONG: MOV P0,A ;送段码送段码MOV A,R5MOV P2,A ;送位码送位码DJNZ R6,$ ;1ms 延时延时DJNZ R6,$RL A ;让下一位亮让下一位亮MOV R4,AINC DPTRJMP HAHASTART5: CLR P1.4 ;片选信号片选信号 CS 为低电平为低电平MOV 50H,#0 ;存转换结果单元清存转换结果单元清 0CLR P1.2 ;置置 clock 为低电平为低电平MOV R1,#8 ;8 位数据位数据AD_HIG: LCALL DELAY MOV C,P1.3 ;读读 D7,D6,D5.D0MOV A,50H RLC AMOV 50H,A ;转换值暂存转换值暂存 50HSETB P1.2 ;置置 clock 为高电平为高电平LCALL DELAYCLR P1.2 DJNZ R1,AD_HIG ;8 位未移完,返回,继续位未移完,返回,继续SETB P1.4 ;设置设置 CS 为高电平,结束为高电平,结束 A/D 转换转换DISP: SETB RS1 ;显示转换值显示转换值MOV R7,#5DISP1: MOV P2,#00HMOV A,50HMOV B,#51DIV ABMOV 56H,A ;个位个位MOV 60H,BMOV A,60HMOV B,#10DIV ABMOV 57H,A ;0.1 位位MOV 61H,BMOV A,61HMOV B,#10DIV ABMOV 58H,A ;0.01 位位MOV 59H,B ;0.001 位位MOV R0,#56HMOV A,@R0MOV DPTR,#TAB2 ;查表,取段码查表,取段码MOVC A,@A+DPTRMOV P0,AMOV P2,#00000001BLCALL DELAY2MSMOV R0,#57HMOV A,@R0MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P0,AMOV P2,#00000010BLCALL DELAY2MSMOV R0,#58HMOV A,@R0MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P0,AMOV P2,#00000100BLCALL DELAY2MSMOV R0,#59HMOV A,@R0MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P0,AMOV P2,#00001000BLCALL DELAY2MSDJNZ R7,DISP1CLR RS1AJMP START4DELAY2MS: SETB RS1 ;2MS 延时延时MOV R3,#2DD1: MOV R4,#5DD2: MOV R5,#100DJNZ R5,$DJNZ R4,DD2DJNZ R3,DD1CLR RS1RETDELAY: MOV R6,#10HDJNZ R6,$RETSTART4: MOV R7,#10 ;0.5s 需要中断次数需要中断次数 ;USE R7,R3,R4MOV P2,#00H ;------------键盘查询程序键盘查询程序----------------------------KEY: ACALL KS ;调按键查询子程序判断是否有键按下调按键查询子程序判断是否有键按下JNZ K1 ;有键按下转移有键按下转移AJMP KEY ;继续查询按键继续查询按键;------------键盘扫描程序键盘扫描程序----------------------------K1: ACALL KS ;再次判断是否有键按下再次判断是否有键按下JNZ K2 ;有键按下,转移有键按下,转移AJMP KEY ;无键按下,误读,继续查询按键无键按下,误读,继续查询按键K2: MOV R3,#11101111B ;首列扫描字送首列扫描字送 R3,P3.4=0MOV R4,#0 ;首列号送首列号送 R4K3: MOV P3,R3 ;列扫描字送列扫描字送 P3MOV A,P3 ;读取行扫描字读取行扫描字JB ACC.3,L1 ;第一行无按键按下,转查第二行第一行无按键按下,转查第二行MOV A,#1 ;第一行有键按下,行首键号送第一行有键按下,行首键号送 AAJMP LK ;转求键值转求键值L1: JB ACC.2,NEXT ;第二行无键按下,转查下一列第二行无键按下,转查下一列MOV A,#5 ;第二行有键按下,行首键号送第二行有键按下,行首键号送 AAJMP LK ;转求键值转求键值LK: ADD A,R4 ;计算键值计算键值ACALL PR ;转到键盘处理程序转到键盘处理程序NEXT: INC R4 ;修改列号修改列号MOV A,R3JNB ACC.7,KEY ;四列扫描完,返回按键查询状态四列扫描完,返回按键查询状态RL A ;为扫描完,改为下一列扫描字为扫描完,改为下一列扫描字MOV R3,A ;列扫描字暂存列扫描字暂存 R3AJMP K3 ;转列扫描程序转列扫描程序;-----------键盘处理程序键盘处理程序---------------------------------PR: 。
