Last version
This commit is contained in:
parent
8ba8dda08f
commit
5774acdc1b
1893
C52.uvgui.Simular
Normal file
1893
C52.uvgui.Simular
Normal file
File diff suppressed because one or more lines are too long
197
C52.uvopt
Normal file
197
C52.uvopt
Normal file
@ -0,0 +1,197 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
|
||||
|
||||
<SchemaVersion>1.0</SchemaVersion>
|
||||
|
||||
<Header>### uVision Project, (C) Keil Software</Header>
|
||||
|
||||
<Extensions>
|
||||
<cExt>*.c</cExt>
|
||||
<aExt>*.s*; *.src; *.a*</aExt>
|
||||
<oExt>*.obj; *.o</oExt>
|
||||
<lExt>*.lib</lExt>
|
||||
<tExt>*.txt; *.h; *.inc</tExt>
|
||||
<pExt>*.plm</pExt>
|
||||
<CppX>*.cpp</CppX>
|
||||
<nMigrate>0</nMigrate>
|
||||
</Extensions>
|
||||
|
||||
<DaveTm>
|
||||
<dwLowDateTime>0</dwLowDateTime>
|
||||
<dwHighDateTime>0</dwHighDateTime>
|
||||
</DaveTm>
|
||||
|
||||
<Target>
|
||||
<TargetName>Target 1</TargetName>
|
||||
<ToolsetNumber>0x0</ToolsetNumber>
|
||||
<ToolsetName>MCS-51</ToolsetName>
|
||||
<TargetOption>
|
||||
<CLK51>24000000</CLK51>
|
||||
<OPTTT>
|
||||
<gFlags>1</gFlags>
|
||||
<BeepAtEnd>1</BeepAtEnd>
|
||||
<RunSim>1</RunSim>
|
||||
<RunTarget>0</RunTarget>
|
||||
<RunAbUc>0</RunAbUc>
|
||||
</OPTTT>
|
||||
<OPTHX>
|
||||
<HexSelection>0</HexSelection>
|
||||
<FlashByte>65535</FlashByte>
|
||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||
<HexOffset>0</HexOffset>
|
||||
</OPTHX>
|
||||
<OPTLEX>
|
||||
<PageWidth>120</PageWidth>
|
||||
<PageLength>65</PageLength>
|
||||
<TabStop>8</TabStop>
|
||||
<ListingPath>.\Listings\</ListingPath>
|
||||
</OPTLEX>
|
||||
<ListingPage>
|
||||
<CreateCListing>1</CreateCListing>
|
||||
<CreateAListing>1</CreateAListing>
|
||||
<CreateLListing>1</CreateLListing>
|
||||
<CreateIListing>0</CreateIListing>
|
||||
<AsmCond>1</AsmCond>
|
||||
<AsmSymb>1</AsmSymb>
|
||||
<AsmXref>0</AsmXref>
|
||||
<CCond>1</CCond>
|
||||
<CCode>0</CCode>
|
||||
<CListInc>0</CListInc>
|
||||
<CSymb>0</CSymb>
|
||||
<LinkerCodeListing>0</LinkerCodeListing>
|
||||
</ListingPage>
|
||||
<OPTXL>
|
||||
<LMap>1</LMap>
|
||||
<LComments>1</LComments>
|
||||
<LGenerateSymbols>1</LGenerateSymbols>
|
||||
<LLibSym>1</LLibSym>
|
||||
<LLines>1</LLines>
|
||||
<LLocSym>1</LLocSym>
|
||||
<LPubSym>1</LPubSym>
|
||||
<LXref>0</LXref>
|
||||
<LExpSel>0</LExpSel>
|
||||
</OPTXL>
|
||||
<OPTFL>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<IsCurrentTarget>1</IsCurrentTarget>
|
||||
</OPTFL>
|
||||
<CpuCode>255</CpuCode>
|
||||
<Books>
|
||||
<Book>
|
||||
<Number>0</Number>
|
||||
<Title>Data Sheet</Title>
|
||||
<Path>DATASHTS\ATMEL\AT89C52_DS.PDF</Path>
|
||||
</Book>
|
||||
<Book>
|
||||
<Number>1</Number>
|
||||
<Title>Instruction Set Manual</Title>
|
||||
<Path>DATASHTS\ATMEL\AT_C51ISM.PDF</Path>
|
||||
</Book>
|
||||
</Books>
|
||||
<DebugOpt>
|
||||
<uSim>0</uSim>
|
||||
<uTrg>1</uTrg>
|
||||
<sLdApp>1</sLdApp>
|
||||
<sGomain>1</sGomain>
|
||||
<sRbreak>1</sRbreak>
|
||||
<sRwatch>1</sRwatch>
|
||||
<sRmem>1</sRmem>
|
||||
<sRfunc>1</sRfunc>
|
||||
<sRbox>1</sRbox>
|
||||
<tLdApp>1</tLdApp>
|
||||
<tGomain>0</tGomain>
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
<tRmem>1</tRmem>
|
||||
<tRfunc>0</tRfunc>
|
||||
<tRbox>1</tRbox>
|
||||
<tRtrace>1</tRtrace>
|
||||
<sRSysVw>1</sRSysVw>
|
||||
<tRSysVw>1</tRSysVw>
|
||||
<sRunDeb>0</sRunDeb>
|
||||
<sLrtime>0</sLrtime>
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>0</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
<sDlgPa></sDlgPa>
|
||||
<sIfile></sIfile>
|
||||
<tDll></tDll>
|
||||
<tDllPa></tDllPa>
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>BIN\MON51.DLL</pMon>
|
||||
</DebugOpt>
|
||||
<Breakpoint/>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
<DebugFlag>
|
||||
<trace>0</trace>
|
||||
<periodic>1</periodic>
|
||||
<aLwin>0</aLwin>
|
||||
<aCover>0</aCover>
|
||||
<aSer1>0</aSer1>
|
||||
<aSer2>0</aSer2>
|
||||
<aPa>0</aPa>
|
||||
<viewmode>0</viewmode>
|
||||
<vrSel>0</vrSel>
|
||||
<aSym>0</aSym>
|
||||
<aTbox>0</aTbox>
|
||||
<AscS1>0</AscS1>
|
||||
<AscS2>0</AscS2>
|
||||
<AscS3>0</AscS3>
|
||||
<aSer3>0</aSer3>
|
||||
<eProf>0</eProf>
|
||||
<aLa>0</aLa>
|
||||
<aPa1>0</aPa1>
|
||||
<AscS4>0</AscS4>
|
||||
<aSer4>0</aSer4>
|
||||
<StkLoc>0</StkLoc>
|
||||
<TrcWin>0</TrcWin>
|
||||
<newCpu>0</newCpu>
|
||||
<uProt>0</uProt>
|
||||
</DebugFlag>
|
||||
<LintExecutable></LintExecutable>
|
||||
<LintConfigFile></LintConfigFile>
|
||||
<bLintAuto>0</bLintAuto>
|
||||
<bAutoGenD>0</bAutoGenD>
|
||||
<LntExFlags>0</LntExFlags>
|
||||
<pMisraName></pMisraName>
|
||||
<pszMrule></pszMrule>
|
||||
<pSingCmds></pSingCmds>
|
||||
<pMultCmds></pMultCmds>
|
||||
<pMisraNamep></pMisraNamep>
|
||||
<pszMrulep></pszMrulep>
|
||||
<pSingCmdsp></pSingCmdsp>
|
||||
<pMultCmdsp></pMultCmdsp>
|
||||
</TargetOption>
|
||||
</Target>
|
||||
|
||||
<Group>
|
||||
<GroupName>Source Group 1</GroupName>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
<File>
|
||||
<GroupNumber>1</GroupNumber>
|
||||
<FileNumber>1</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>.\Main\main.c</PathWithFileName>
|
||||
<FilenameWithoutPath>main.c</FilenameWithoutPath>
|
||||
<RteFlg>0</RteFlg>
|
||||
<bShared>0</bShared>
|
||||
</File>
|
||||
</Group>
|
||||
|
||||
</ProjectOpt>
|
378
C52.uvproj
Normal file
378
C52.uvproj
Normal file
@ -0,0 +1,378 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
|
||||
|
||||
<SchemaVersion>1.1</SchemaVersion>
|
||||
|
||||
<Header>### uVision Project, (C) Keil Software</Header>
|
||||
|
||||
<Targets>
|
||||
<Target>
|
||||
<TargetName>Target 1</TargetName>
|
||||
<ToolsetNumber>0x0</ToolsetNumber>
|
||||
<ToolsetName>MCS-51</ToolsetName>
|
||||
<uAC6>0</uAC6>
|
||||
<TargetOption>
|
||||
<TargetCommonOption>
|
||||
<Device>AT89C52</Device>
|
||||
<Vendor>Microchip</Vendor>
|
||||
<Cpu>IRAM(0-0xFF) IROM(0-0x1FFF) CLOCK(24000000)</Cpu>
|
||||
<FlashUtilSpec></FlashUtilSpec>
|
||||
<StartupFile>"LIB\STARTUP.A51" ("Standard 8051 Startup Code")</StartupFile>
|
||||
<FlashDriverDll></FlashDriverDll>
|
||||
<DeviceId>2980</DeviceId>
|
||||
<RegisterFile>REGX52.H</RegisterFile>
|
||||
<MemoryEnv></MemoryEnv>
|
||||
<Cmp></Cmp>
|
||||
<Asm></Asm>
|
||||
<Linker></Linker>
|
||||
<OHString></OHString>
|
||||
<InfinionOptionDll></InfinionOptionDll>
|
||||
<SLE66CMisc></SLE66CMisc>
|
||||
<SLE66AMisc></SLE66AMisc>
|
||||
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||
<SFDFile></SFDFile>
|
||||
<bCustSvd>0</bCustSvd>
|
||||
<UseEnv>0</UseEnv>
|
||||
<BinPath></BinPath>
|
||||
<IncludePath></IncludePath>
|
||||
<LibPath></LibPath>
|
||||
<RegisterFilePath>Atmel\</RegisterFilePath>
|
||||
<DBRegisterFilePath>Atmel\</DBRegisterFilePath>
|
||||
<TargetStatus>
|
||||
<Error>0</Error>
|
||||
<ExitCodeStop>0</ExitCodeStop>
|
||||
<ButtonStop>0</ButtonStop>
|
||||
<NotGenerated>0</NotGenerated>
|
||||
<InvalidFlash>1</InvalidFlash>
|
||||
</TargetStatus>
|
||||
<OutputDirectory>.\Objects\</OutputDirectory>
|
||||
<OutputName>C52</OutputName>
|
||||
<CreateExecutable>1</CreateExecutable>
|
||||
<CreateLib>0</CreateLib>
|
||||
<CreateHexFile>1</CreateHexFile>
|
||||
<DebugInformation>1</DebugInformation>
|
||||
<BrowseInformation>1</BrowseInformation>
|
||||
<ListingPath>.\Listings\</ListingPath>
|
||||
<HexFormatSelection>0</HexFormatSelection>
|
||||
<Merge32K>0</Merge32K>
|
||||
<CreateBatchFile>0</CreateBatchFile>
|
||||
<BeforeCompile>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopU1X>0</nStopU1X>
|
||||
<nStopU2X>0</nStopU2X>
|
||||
</BeforeCompile>
|
||||
<BeforeMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopB1X>0</nStopB1X>
|
||||
<nStopB2X>0</nStopB2X>
|
||||
</BeforeMake>
|
||||
<AfterMake>
|
||||
<RunUserProg1>0</RunUserProg1>
|
||||
<RunUserProg2>0</RunUserProg2>
|
||||
<UserProg1Name></UserProg1Name>
|
||||
<UserProg2Name></UserProg2Name>
|
||||
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||
<nStopA1X>0</nStopA1X>
|
||||
<nStopA2X>0</nStopA2X>
|
||||
</AfterMake>
|
||||
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||
<SVCSIdString></SVCSIdString>
|
||||
</TargetCommonOption>
|
||||
<CommonProperty>
|
||||
<UseCPPCompiler>0</UseCPPCompiler>
|
||||
<RVCTCodeConst>0</RVCTCodeConst>
|
||||
<RVCTZI>0</RVCTZI>
|
||||
<RVCTOtherData>0</RVCTOtherData>
|
||||
<ModuleSelection>0</ModuleSelection>
|
||||
<IncludeInBuild>1</IncludeInBuild>
|
||||
<AlwaysBuild>0</AlwaysBuild>
|
||||
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||
<PublicsOnly>0</PublicsOnly>
|
||||
<StopOnExitCode>3</StopOnExitCode>
|
||||
<CustomArgument></CustomArgument>
|
||||
<IncludeLibraryModules></IncludeLibraryModules>
|
||||
<ComprImg>1</ComprImg>
|
||||
<BankNo>65535</BankNo>
|
||||
</CommonProperty>
|
||||
<DllOption>
|
||||
<SimDllName>S8051.DLL</SimDllName>
|
||||
<SimDllArguments></SimDllArguments>
|
||||
<SimDlgDll>DP51.DLL</SimDlgDll>
|
||||
<SimDlgDllArguments>-p52</SimDlgDllArguments>
|
||||
<TargetDllName>S8051.DLL</TargetDllName>
|
||||
<TargetDllArguments></TargetDllArguments>
|
||||
<TargetDlgDll>TP51.DLL</TargetDlgDll>
|
||||
<TargetDlgDllArguments>-p52</TargetDlgDllArguments>
|
||||
</DllOption>
|
||||
<DebugOption>
|
||||
<OPTHX>
|
||||
<HexSelection>0</HexSelection>
|
||||
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||
<HexOffset>0</HexOffset>
|
||||
<Oh166RecLen>16</Oh166RecLen>
|
||||
</OPTHX>
|
||||
<Simulator>
|
||||
<UseSimulator>0</UseSimulator>
|
||||
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||
<RunToMain>1</RunToMain>
|
||||
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||
<RestoreFunctions>1</RestoreFunctions>
|
||||
<RestoreToolbox>1</RestoreToolbox>
|
||||
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||
<RestoreSysVw>1</RestoreSysVw>
|
||||
</Simulator>
|
||||
<Target>
|
||||
<UseTarget>1</UseTarget>
|
||||
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||
<RunToMain>0</RunToMain>
|
||||
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||
<RestoreFunctions>0</RestoreFunctions>
|
||||
<RestoreToolbox>1</RestoreToolbox>
|
||||
<RestoreTracepoints>1</RestoreTracepoints>
|
||||
<RestoreSysVw>1</RestoreSysVw>
|
||||
</Target>
|
||||
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||
<TargetSelection>0</TargetSelection>
|
||||
<SimDlls>
|
||||
<CpuDll></CpuDll>
|
||||
<CpuDllArguments></CpuDllArguments>
|
||||
<PeripheralDll></PeripheralDll>
|
||||
<PeripheralDllArguments></PeripheralDllArguments>
|
||||
<InitializationFile></InitializationFile>
|
||||
</SimDlls>
|
||||
<TargetDlls>
|
||||
<CpuDll></CpuDll>
|
||||
<CpuDllArguments></CpuDllArguments>
|
||||
<PeripheralDll></PeripheralDll>
|
||||
<PeripheralDllArguments></PeripheralDllArguments>
|
||||
<InitializationFile></InitializationFile>
|
||||
<Driver>BIN\MON51.DLL</Driver>
|
||||
</TargetDlls>
|
||||
</DebugOption>
|
||||
<Utilities>
|
||||
<Flash1>
|
||||
<UseTargetDll>1</UseTargetDll>
|
||||
<UseExternalTool>0</UseExternalTool>
|
||||
<RunIndependent>0</RunIndependent>
|
||||
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
|
||||
<Capability>0</Capability>
|
||||
<DriverSelection>-1</DriverSelection>
|
||||
</Flash1>
|
||||
<bUseTDR>0</bUseTDR>
|
||||
<Flash2></Flash2>
|
||||
<Flash3>"" ()</Flash3>
|
||||
<Flash4></Flash4>
|
||||
<pFcarmOut></pFcarmOut>
|
||||
<pFcarmGrp></pFcarmGrp>
|
||||
<pFcArmRoot></pFcArmRoot>
|
||||
<FcArmLst>0</FcArmLst>
|
||||
</Utilities>
|
||||
<Target51>
|
||||
<Target51Misc>
|
||||
<MemoryModel>0</MemoryModel>
|
||||
<RTOS>0</RTOS>
|
||||
<RomSize>2</RomSize>
|
||||
<DataHold>0</DataHold>
|
||||
<XDataHold>0</XDataHold>
|
||||
<UseOnchipRom>0</UseOnchipRom>
|
||||
<UseOnchipArithmetic>0</UseOnchipArithmetic>
|
||||
<UseMultipleDPTR>0</UseMultipleDPTR>
|
||||
<UseOnchipXram>0</UseOnchipXram>
|
||||
<HadIRAM>1</HadIRAM>
|
||||
<HadXRAM>0</HadXRAM>
|
||||
<HadIROM>1</HadIROM>
|
||||
<Moda2>0</Moda2>
|
||||
<Moddp2>0</Moddp2>
|
||||
<Modp2>0</Modp2>
|
||||
<Mod517dp>0</Mod517dp>
|
||||
<Mod517au>0</Mod517au>
|
||||
<Mode2>0</Mode2>
|
||||
<useCB>0</useCB>
|
||||
<useXB>0</useXB>
|
||||
<useL251>0</useL251>
|
||||
<useA251>0</useA251>
|
||||
<Mx51>0</Mx51>
|
||||
<ModC812>0</ModC812>
|
||||
<ModCont>0</ModCont>
|
||||
<Lp51>0</Lp51>
|
||||
<useXBS>0</useXBS>
|
||||
<ModDA>0</ModDA>
|
||||
<ModAB2>0</ModAB2>
|
||||
<Mx51P>0</Mx51P>
|
||||
<hadXRAM2>0</hadXRAM2>
|
||||
<uocXram2>0</uocXram2>
|
||||
<ModC2>0</ModC2>
|
||||
<ModH2>0</ModH2>
|
||||
<Mdu_R515>0</Mdu_R515>
|
||||
<Mdu_F120>0</Mdu_F120>
|
||||
<Psoc>0</Psoc>
|
||||
<hadIROM2>0</hadIROM2>
|
||||
<ModSmx2>0</ModSmx2>
|
||||
<cBanks>0</cBanks>
|
||||
<xBanks>0</xBanks>
|
||||
<OnChipMemories>
|
||||
<RCB>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0xffff</Size>
|
||||
</RCB>
|
||||
<RXB>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</RXB>
|
||||
<Ocm1>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocm1>
|
||||
<Ocm2>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocm2>
|
||||
<Ocm3>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocm3>
|
||||
<Ocr1>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocr1>
|
||||
<Ocr2>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocr2>
|
||||
<Ocr3>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</Ocr3>
|
||||
<IRO>
|
||||
<Type>1</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x2000</Size>
|
||||
</IRO>
|
||||
<IRA>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x100</Size>
|
||||
</IRA>
|
||||
<XRA>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</XRA>
|
||||
<XRA512>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</XRA512>
|
||||
<IROM512>
|
||||
<Type>0</Type>
|
||||
<StartAddress>0x0</StartAddress>
|
||||
<Size>0x0</Size>
|
||||
</IROM512>
|
||||
</OnChipMemories>
|
||||
</Target51Misc>
|
||||
<C51>
|
||||
<RegisterColoring>0</RegisterColoring>
|
||||
<VariablesInOrder>0</VariablesInOrder>
|
||||
<IntegerPromotion>1</IntegerPromotion>
|
||||
<uAregs>0</uAregs>
|
||||
<UseInterruptVector>1</UseInterruptVector>
|
||||
<Fuzzy>3</Fuzzy>
|
||||
<Optimize>8</Optimize>
|
||||
<WarningLevel>2</WarningLevel>
|
||||
<SizeSpeed>1</SizeSpeed>
|
||||
<ObjectExtend>1</ObjectExtend>
|
||||
<ACallAJmp>0</ACallAJmp>
|
||||
<InterruptVectorAddress>0</InterruptVectorAddress>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>.\Include</IncludePath>
|
||||
</VariousControls>
|
||||
</C51>
|
||||
<Ax51>
|
||||
<UseMpl>0</UseMpl>
|
||||
<UseStandard>1</UseStandard>
|
||||
<UseCase>0</UseCase>
|
||||
<UseMod51>0</UseMod51>
|
||||
<VariousControls>
|
||||
<MiscControls></MiscControls>
|
||||
<Define></Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath></IncludePath>
|
||||
</VariousControls>
|
||||
</Ax51>
|
||||
<Lx51>
|
||||
<useFile>0</useFile>
|
||||
<linkonly>0</linkonly>
|
||||
<UseMemoryFromTarget>1</UseMemoryFromTarget>
|
||||
<CaseSensitiveSymbols>0</CaseSensitiveSymbols>
|
||||
<WarningLevel>2</WarningLevel>
|
||||
<DataOverlaying>1</DataOverlaying>
|
||||
<OverlayString></OverlayString>
|
||||
<MiscControls></MiscControls>
|
||||
<DisableWarningNumbers></DisableWarningNumbers>
|
||||
<LinkerCmdFile></LinkerCmdFile>
|
||||
<Assign></Assign>
|
||||
<ReserveString></ReserveString>
|
||||
<CClasses></CClasses>
|
||||
<UserClasses></UserClasses>
|
||||
<CSection></CSection>
|
||||
<UserSection></UserSection>
|
||||
<CodeBaseAddress></CodeBaseAddress>
|
||||
<XDataBaseAddress></XDataBaseAddress>
|
||||
<PDataBaseAddress></PDataBaseAddress>
|
||||
<BitBaseAddress></BitBaseAddress>
|
||||
<DataBaseAddress></DataBaseAddress>
|
||||
<IDataBaseAddress></IDataBaseAddress>
|
||||
<Precede></Precede>
|
||||
<Stack></Stack>
|
||||
<CodeSegmentName></CodeSegmentName>
|
||||
<XDataSegmentName></XDataSegmentName>
|
||||
<BitSegmentName></BitSegmentName>
|
||||
<DataSegmentName></DataSegmentName>
|
||||
<IDataSegmentName></IDataSegmentName>
|
||||
</Lx51>
|
||||
</Target51>
|
||||
</TargetOption>
|
||||
<Groups>
|
||||
<Group>
|
||||
<GroupName>Source Group 1</GroupName>
|
||||
<Files>
|
||||
<File>
|
||||
<FileName>main.c</FileName>
|
||||
<FileType>1</FileType>
|
||||
<FilePath>.\Main\main.c</FilePath>
|
||||
</File>
|
||||
</Files>
|
||||
</Group>
|
||||
</Groups>
|
||||
</Target>
|
||||
</Targets>
|
||||
|
||||
</Project>
|
70
Include/com_send.h
Normal file
70
Include/com_send.h
Normal file
@ -0,0 +1,70 @@
|
||||
#ifndef _com_send_H
|
||||
#define _com_send_H
|
||||
|
||||
#include "reg52.h"
|
||||
|
||||
typedef unsigned char BYTE;
|
||||
typedef unsigned int WORD;
|
||||
|
||||
#define FOSC 11059200L //System frequency
|
||||
#define BAUD 9600 //UART baudrate
|
||||
|
||||
bit busy;
|
||||
|
||||
void send_init();
|
||||
void send_data(BYTE dat);
|
||||
void send_string(char *s);
|
||||
|
||||
void send_init()
|
||||
{
|
||||
SCON = 0x50;
|
||||
TL2 = RCAP2L = (65536-(FOSC/32/BAUD)); //Set auto-reload vaule
|
||||
TH2 = RCAP2H = (65536-(FOSC/32/BAUD)) >> 8;
|
||||
T2CON = 0x34; //Timer2 start run
|
||||
ES = 1; //Enable UART interrupt
|
||||
EA = 1; //Open master interrupt switch
|
||||
}
|
||||
|
||||
/*----------------------------
|
||||
UART interrupt service routine
|
||||
----------------------------*/
|
||||
void uart_isr() interrupt 4
|
||||
{
|
||||
if (RI)
|
||||
{
|
||||
RI = 0; //Clear receive interrupt flag
|
||||
}
|
||||
if (TI)
|
||||
{
|
||||
TI = 0; //Clear transmit interrupt flag
|
||||
busy = 0; //Clear transmit busy flag
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------
|
||||
Send a byte data to UART
|
||||
Input: dat (data to be sent)
|
||||
Output:None
|
||||
----------------------------*/
|
||||
void send_data(BYTE dat)
|
||||
{
|
||||
while (busy); //Wait for the completion of the previous data is sent
|
||||
ACC = dat; //Calculate the even parity bit P (PSW.0)
|
||||
busy = 1;
|
||||
SBUF = ACC; //Send data to UART buffer
|
||||
}
|
||||
|
||||
/*----------------------------
|
||||
Send a string to UART
|
||||
Input: s (address of string)
|
||||
Output:None
|
||||
----------------------------*/
|
||||
void send_string(char *s)
|
||||
{
|
||||
while (*s) //Check the end of the string
|
||||
{
|
||||
send_data(*s++); //Send current char and increment string ptr
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
59
Include/key.h
Normal file
59
Include/key.h
Normal file
@ -0,0 +1,59 @@
|
||||
#ifndef _key_H
|
||||
#define _key_H
|
||||
|
||||
#include "public.h"
|
||||
|
||||
//定义独立按键控制脚
|
||||
sbit KEY1=P3^1;
|
||||
sbit KEY2=P3^0;
|
||||
sbit KEY3=P3^2;
|
||||
sbit KEY4=P3^3;
|
||||
|
||||
|
||||
//使用宏定义独立按键按下的键值
|
||||
#define KEY1_PRESS 1
|
||||
#define KEY2_PRESS 2
|
||||
#define KEY3_PRESS 3
|
||||
#define KEY4_PRESS 4
|
||||
#define KEY_UNPRESS 0
|
||||
|
||||
|
||||
u8 key_scan(u8 mode);
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : key_scan
|
||||
* 函数功能 : 检测独立按键是否按下,按下则返回对应键值
|
||||
* 输 入 : mode=0:单次扫描按键
|
||||
mode=1:连续扫描按键
|
||||
* 输 出 : KEY1_PRESS:K1按下
|
||||
KEY2_PRESS:K2按下
|
||||
KEY3_PRESS:K3按下
|
||||
KEY4_PRESS:K4按下
|
||||
KEY_UNPRESS:未有按键按下
|
||||
*******************************************************************************/
|
||||
u8 key_scan(u8 mode)
|
||||
{
|
||||
static u8 key=1;
|
||||
|
||||
if(mode)key=1;//连续扫描按键
|
||||
if(key==1&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0))//任意按键按下
|
||||
{
|
||||
delay_10us(1000);//消抖
|
||||
key=0;
|
||||
if(KEY1==0)
|
||||
return KEY1_PRESS;
|
||||
else if(KEY2==0)
|
||||
return KEY2_PRESS;
|
||||
else if(KEY3==0)
|
||||
return KEY3_PRESS;
|
||||
else if(KEY4==0)
|
||||
return KEY4_PRESS;
|
||||
}
|
||||
else if(KEY1==1&&KEY2==1&&KEY3==1&&KEY4==1) //无按键按下
|
||||
{
|
||||
key=1;
|
||||
}
|
||||
return KEY_UNPRESS;
|
||||
}
|
||||
|
||||
#endif
|
182
Include/lcd1602.h
Normal file
182
Include/lcd1602.h
Normal file
@ -0,0 +1,182 @@
|
||||
#ifndef _lcd1602_H
|
||||
#define _lcd1602_H
|
||||
|
||||
#include "public.h"
|
||||
|
||||
//LCD1602数据口4位和8位定义,若为1,则为LCD1602四位数据口驱动,反之为8位
|
||||
#define LCD1602_4OR8_DATA_INTERFACE 0 //默认使用8位数据口LCD1602
|
||||
|
||||
//管脚定义
|
||||
sbit LCD1602_RS=P2^6;//数据命令选择
|
||||
sbit LCD1602_RW=P2^5;//读写选择
|
||||
sbit LCD1602_E=P2^7; //使能信号
|
||||
#define LCD1602_DATAPORT P0 //宏定义LCD1602数据端口
|
||||
|
||||
|
||||
//函数声明
|
||||
void lcd1602_init(void);
|
||||
void lcd1602_clear(void);
|
||||
void lcd1602_show_string(u8 x,u8 y,u8 *str);
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : lcd1602_write_cmd
|
||||
* 函数功能 : LCD1602写命令
|
||||
* 输 入 : cmd:指令
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
#if (LCD1602_4OR8_DATA_INTERFACE==0)//8位LCD
|
||||
void lcd1602_write_cmd(u8 cmd)
|
||||
{
|
||||
LCD1602_RS=0;//选择命令
|
||||
LCD1602_RW=0;//选择写
|
||||
LCD1602_E=0;
|
||||
LCD1602_DATAPORT=cmd;//准备命令
|
||||
delay_ms(1);
|
||||
LCD1602_E=1;//使能脚E先上升沿写入
|
||||
delay_ms(1);
|
||||
LCD1602_E=0;//使能脚E后负跳变完成写入
|
||||
}
|
||||
#else //4位LCD
|
||||
void lcd1602_write_cmd(u8 cmd)
|
||||
{
|
||||
LCD1602_RS=0;//选择命令
|
||||
LCD1602_RW=0;//选择写
|
||||
LCD1602_E=0;
|
||||
LCD1602_DATAPORT=cmd;//准备命令
|
||||
delay_ms(1);
|
||||
LCD1602_E=1;//使能脚E先上升沿写入
|
||||
delay_ms(1);
|
||||
LCD1602_E=0;//使能脚E后负跳变完成写入
|
||||
|
||||
LCD1602_DATAPORT=cmd<<4;//准备命令
|
||||
delay_ms(1);
|
||||
LCD1602_E=1;//使能脚E先上升沿写入
|
||||
delay_ms(1);
|
||||
LCD1602_E=0;//使能脚E后负跳变完成写入
|
||||
}
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : lcd1602_write_data
|
||||
* 函数功能 : LCD1602写数据
|
||||
* 输 入 : dat:数据
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
#if (LCD1602_4OR8_DATA_INTERFACE==0)//8位LCD
|
||||
void lcd1602_write_data(u8 dat)
|
||||
{
|
||||
LCD1602_RS=1;//选择数据
|
||||
LCD1602_RW=0;//选择写
|
||||
LCD1602_E=0;
|
||||
LCD1602_DATAPORT=dat;//准备数据
|
||||
delay_ms(1);
|
||||
LCD1602_E=1;//使能脚E先上升沿写入
|
||||
delay_ms(1);
|
||||
LCD1602_E=0;//使能脚E后负跳变完成写入
|
||||
}
|
||||
#else
|
||||
void lcd1602_write_data(u8 dat)
|
||||
{
|
||||
LCD1602_RS=1;//选择数据
|
||||
LCD1602_RW=0;//选择写
|
||||
LCD1602_E=0;
|
||||
LCD1602_DATAPORT=dat;//准备数据
|
||||
delay_ms(1);
|
||||
LCD1602_E=1;//使能脚E先上升沿写入
|
||||
delay_ms(1);
|
||||
LCD1602_E=0;//使能脚E后负跳变完成写入
|
||||
|
||||
LCD1602_DATAPORT=dat<<4;//准备数据
|
||||
delay_ms(1);
|
||||
LCD1602_E=1;//使能脚E先上升沿写入
|
||||
delay_ms(1);
|
||||
LCD1602_E=0;//使能脚E后负跳变完成写入
|
||||
}
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : lcd1602_init
|
||||
* 函数功能 : LCD1602初始化
|
||||
* 输 入 : 无
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
#if (LCD1602_4OR8_DATA_INTERFACE==0)//8位LCD
|
||||
void lcd1602_init(void)
|
||||
{
|
||||
lcd1602_write_cmd(0x38);//数据总线8位,显示2行,5*7点阵/字符
|
||||
lcd1602_write_cmd(0x0c);//显示功能开,无光标,光标闪烁
|
||||
lcd1602_write_cmd(0x06);//写入新数据后光标右移,显示屏不移动
|
||||
lcd1602_write_cmd(0x01);//清屏
|
||||
}
|
||||
#else
|
||||
void lcd1602_init(void)
|
||||
{
|
||||
lcd1602_write_cmd(0x28);//数据总线4位,显示2行,5*7点阵/字符
|
||||
lcd1602_write_cmd(0x0c);//显示功能开,无光标,光标闪烁
|
||||
lcd1602_write_cmd(0x06);//写入新数据后光标右移,显示屏不移动
|
||||
lcd1602_write_cmd(0x01);//清屏
|
||||
}
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : lcd1602_clear
|
||||
* 函数功能 : LCD1602清屏
|
||||
* 输 入 : 无
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
void lcd1602_clear(void)
|
||||
{
|
||||
lcd1602_write_cmd(0x01);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : lcd1602_show_string
|
||||
* 函数功能 : LCD1602显示字符
|
||||
* 输 入 : x,y:显示坐标,x=0~15,y=0~1;
|
||||
str:显示字符串
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
void lcd1602_show_string(u8 x,u8 y,u8 *str)
|
||||
{
|
||||
u8 i=0;
|
||||
|
||||
if(y>1||x>15)return;//行列参数不对则强制退出
|
||||
|
||||
if(y<1) //第1行显示
|
||||
{
|
||||
while(*str!='\0')//字符串是以'\0'结尾,只要前面有内容就显示
|
||||
{
|
||||
if(i<16-x)//如果字符长度超过第一行显示范围,则在第二行继续显示
|
||||
{
|
||||
lcd1602_write_cmd(0x80+i+x);//第一行显示地址设置
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd1602_write_cmd(0x40+0x80+i+x-16);//第二行显示地址设置
|
||||
}
|
||||
lcd1602_write_data(*str);//显示内容
|
||||
str++;//指针递增
|
||||
i++;
|
||||
}
|
||||
}
|
||||
else //第2行显示
|
||||
{
|
||||
while(*str!='\0')
|
||||
{
|
||||
if(i<16-x) //如果字符长度超过第二行显示范围,则在第一行继续显示
|
||||
{
|
||||
lcd1602_write_cmd(0x80+0x40+i+x);
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd1602_write_cmd(0x80+i+x-16);
|
||||
}
|
||||
lcd1602_write_data(*str);
|
||||
str++;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif
|
39
Include/public.h
Normal file
39
Include/public.h
Normal file
@ -0,0 +1,39 @@
|
||||
#ifndef _public_H
|
||||
#define _public_H
|
||||
|
||||
#include "reg52.h"
|
||||
|
||||
typedef unsigned int u16; //对系统默认数据类型进行重定义
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned long u32;
|
||||
|
||||
//函数声明
|
||||
void delay_10us(u16 ten_us);
|
||||
void delay_ms(u16 ms);
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : delay_10us
|
||||
* 函数功能 : 延时函数,ten_us=1时,大约延时10us
|
||||
* 输 入 : ten_us
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
void delay_10us(u16 ten_us)
|
||||
{
|
||||
while(ten_us--);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : delay_ms
|
||||
* 函数功能 : ms延时函数,ms=1时,大约延时1ms
|
||||
* 输 入 : ms:ms延时时间
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
void delay_ms(u16 ms)
|
||||
{
|
||||
u16 i,j;
|
||||
for(i=ms;i>0;i--)
|
||||
for(j=110;j>0;j--);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
63
Include/timer.h
Normal file
63
Include/timer.h
Normal file
@ -0,0 +1,63 @@
|
||||
#ifndef _timer_H
|
||||
#define _timer_H
|
||||
|
||||
#include "public.h"
|
||||
|
||||
void timer0_init(u8 tmod, u8 th0, u8 tl0);
|
||||
void timer0_reset(u8 th0, u8 tl0);
|
||||
void timer1_init(u8 tmod, u8 th0, u8 tl0);
|
||||
void timer1_reset(u8 th0, u8 tl0);
|
||||
|
||||
void timer0_init(u8 tmod, u8 th0, u8 tl0)
|
||||
{
|
||||
TMOD=(TMOD&0xF0)|(tmod&0x0F);//选择为定时器0模式
|
||||
TH0=th0;
|
||||
TL0=tl0;
|
||||
ET0=1;//打开定时器0中断允许
|
||||
EA=1;//打开总中断
|
||||
TR0=0;
|
||||
}
|
||||
|
||||
void timer0_open()
|
||||
{
|
||||
TR0=1;//打开定时器
|
||||
}
|
||||
|
||||
void timer0_close()
|
||||
{
|
||||
TR0=0;
|
||||
}
|
||||
|
||||
void timer0_reset(u8 th0, u8 tl0)
|
||||
{
|
||||
TH0=th0;
|
||||
TL0=tl0;
|
||||
}
|
||||
|
||||
void timer1_init(u8 tmod, u8 th1, u8 tl1)
|
||||
{
|
||||
TMOD=(TMOD&0x0F)|(tmod&0xF0);//选择为定时器1模式
|
||||
TH1=th1;
|
||||
TL1=tl1;
|
||||
ET1=1;//打开定时器0中断允许
|
||||
EA=1;//打开总中断
|
||||
TR1=0;//打开定时器
|
||||
}
|
||||
|
||||
void timer1_reset(u8 th1, u8 tl1)
|
||||
{
|
||||
TH1=th1;
|
||||
TL1=tl1;
|
||||
}
|
||||
|
||||
void timer1_open()
|
||||
{
|
||||
TR1=1;//打开定时器
|
||||
}
|
||||
|
||||
void timer1_close()
|
||||
{
|
||||
TR1=0;
|
||||
}
|
||||
|
||||
#endif
|
851
Listings/C52.m51
Normal file
851
Listings/C52.m51
Normal file
@ -0,0 +1,851 @@
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 1
|
||||
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
|
||||
C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj TO .\Objects\C52 PRINT (.\Listings\C52.m51) RAMSIZE (256)
|
||||
|
||||
|
||||
MEMORY MODEL: SMALL WITH FLOATING POINT ARITHMETIC
|
||||
|
||||
|
||||
INPUT MODULES INCLUDED:
|
||||
.\Objects\main.obj (MAIN)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPMUL)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPDIV)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCMP)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FCAST)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (PRINTF)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPGETOPN)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPROUND)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPCONVERT)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FPADD)
|
||||
C:\KEIL_V5\C51\LIB\C51FPS.LIB (?C?FTNPWR)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C_STARTUP)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDOPTR)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?CSTPTR)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?IMUL)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?UIDIV)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?LMUL)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?LNEG)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?PLDIIDATA)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?CCASE)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (PUTCHAR)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C_INIT)
|
||||
|
||||
|
||||
LINK MAP OF MODULE: .\Objects\C52 (MAIN)
|
||||
|
||||
|
||||
TYPE BASE LENGTH RELOCATION SEGMENT NAME
|
||||
-----------------------------------------------------
|
||||
|
||||
* * * * * * * D A T A M E M O R Y * * * * * * *
|
||||
REG 0000H 0008H ABSOLUTE "REG BANK 0"
|
||||
0008H 0018H *** GAP ***
|
||||
BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_
|
||||
BIT 0021H.1 0000H.1 UNIT ?BI?MAIN
|
||||
0021H.2 0000H.6 *** GAP ***
|
||||
DATA 0022H 0035H UNIT ?DT?MAIN
|
||||
DATA 0057H 0027H UNIT _DATA_GROUP_
|
||||
IDATA 007EH 0001H UNIT ?STACK
|
||||
|
||||
* * * * * * * C O D E M E M O R Y * * * * * * *
|
||||
CODE 0000H 0003H ABSOLUTE
|
||||
CODE 0003H 0008H UNIT ?PR?_LCD1602_WRITE_CMD?MAIN
|
||||
CODE 000BH 0003H ABSOLUTE
|
||||
CODE 000EH 000DH UNIT ?PR?UART_ISR?MAIN
|
||||
CODE 001BH 0003H ABSOLUTE
|
||||
CODE 001EH 0005H UNIT ?PR?LCD1602_CLEAR?MAIN
|
||||
CODE 0023H 0003H ABSOLUTE
|
||||
CODE 0026H 0693H UNIT ?C?LIB_CODE
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 2
|
||||
|
||||
|
||||
CODE 06B9H 046FH UNIT ?PR?PRINTF?PRINTF
|
||||
CODE 0B28H 0285H UNIT ?PR?MAIN?MAIN
|
||||
CODE 0DADH 008CH UNIT ?C_C51STARTUP
|
||||
CODE 0E39H 0089H UNIT ?PR?_LCD1602_SHOW_STRING?MAIN
|
||||
CODE 0EC2H 0065H UNIT ?PR?TIMER1?MAIN
|
||||
CODE 0F27H 004DH UNIT ?PR?TIMER0?MAIN
|
||||
CODE 0F74H 004CH UNIT ?PR?_KEY_SCAN?MAIN
|
||||
CODE 0FC0H 003DH UNIT ?CO?MAIN
|
||||
CODE 0FFDH 003AH UNIT ?PR?SHOW_STRING_INIT?MAIN
|
||||
CODE 1037H 0036H UNIT ?C_INITSEG
|
||||
CODE 106DH 0032H UNIT ?PR?SHOW_STRING_MODE?MAIN
|
||||
CODE 109FH 0031H UNIT ?PR?_DELAY_MS?MAIN
|
||||
CODE 10D0H 0027H UNIT ?PR?PUTCHAR?PUTCHAR
|
||||
CODE 10F7H 0026H UNIT ?PR?RESET?MAIN
|
||||
CODE 111DH 0025H UNIT ?PR?_SEND_STRING?MAIN
|
||||
CODE 1142H 0017H UNIT ?PR?SEND_INIT?MAIN
|
||||
CODE 1159H 0016H UNIT ?PR?_TIMER0_INIT?MAIN
|
||||
CODE 116FH 0016H UNIT ?PR?_TIMER1_INIT?MAIN
|
||||
CODE 1185H 0014H UNIT ?PR?LCD1602_INIT?MAIN
|
||||
CODE 1199H 000FH UNIT ?PR?CHANGE_RANGE?MAIN
|
||||
CODE 11A8H 000EH UNIT ?PR?_TIMER0_RESET?MAIN
|
||||
CODE 11B6H 000BH UNIT ?PR?_DELAY_10US?MAIN
|
||||
CODE 11C1H 0009H UNIT ?PR?_SEND_DATA?MAIN
|
||||
CODE 11CAH 0008H UNIT ?PR?_LCD1602_WRITE_DATA?MAIN
|
||||
CODE 11D2H 0006H UNIT ?PR?TIMER1_OPEN?MAIN
|
||||
CODE 11D8H 0005H UNIT ?PR?_TIMER1_RESET?MAIN
|
||||
CODE 11DDH 0003H UNIT ?PR?TIMER0_OPEN?MAIN
|
||||
CODE 11E0H 0003H UNIT ?PR?TIMER0_CLOSE?MAIN
|
||||
CODE 11E3H 0003H UNIT ?PR?TIMER1_CLOSE?MAIN
|
||||
|
||||
|
||||
|
||||
OVERLAY MAP OF MODULE: .\Objects\C52 (MAIN)
|
||||
|
||||
|
||||
SEGMENT BIT_GROUP DATA_GROUP
|
||||
+--> CALLED SEGMENT START LENGTH START LENGTH
|
||||
-------------------------------------------------------------------------
|
||||
?PR?TIMER0?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?TIMER0_CLOSE?MAIN
|
||||
+--> ?PR?TIMER1_CLOSE?MAIN
|
||||
+--> ?PR?_TIMER0_RESET?MAIN
|
||||
+--> ?PR?TIMER0_OPEN?MAIN
|
||||
+--> ?PR?TIMER1_OPEN?MAIN
|
||||
|
||||
?PR?TIMER1_OPEN?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?TIMER0_OPEN?MAIN
|
||||
|
||||
*** NEW ROOT ***************************************************
|
||||
|
||||
?PR?TIMER1?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_TIMER1_RESET?MAIN
|
||||
+--> ?PR?_TIMER0_RESET?MAIN
|
||||
+--> ?PR?TIMER0_CLOSE?MAIN
|
||||
+--> ?PR?TIMER1_CLOSE?MAIN
|
||||
|
||||
*** NEW ROOT ***************************************************
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 3
|
||||
|
||||
|
||||
|
||||
?C_C51STARTUP ----- ----- ----- -----
|
||||
+--> ?PR?MAIN?MAIN
|
||||
+--> ?C_INITSEG
|
||||
|
||||
?PR?MAIN?MAIN ----- ----- 0057H 000BH
|
||||
+--> ?PR?LCD1602_INIT?MAIN
|
||||
+--> ?PR?SEND_INIT?MAIN
|
||||
+--> ?PR?SHOW_STRING_INIT?MAIN
|
||||
+--> ?PR?SHOW_STRING_MODE?MAIN
|
||||
+--> ?PR?_TIMER0_INIT?MAIN
|
||||
+--> ?PR?_TIMER1_INIT?MAIN
|
||||
+--> ?PR?TIMER1_OPEN?MAIN
|
||||
+--> ?PR?_KEY_SCAN?MAIN
|
||||
+--> ?PR?CHANGE_RANGE?MAIN
|
||||
+--> ?PR?RESET?MAIN
|
||||
+--> ?PR?LCD1602_CLEAR?MAIN
|
||||
+--> ?CO?MAIN
|
||||
+--> ?PR?PRINTF?PRINTF
|
||||
+--> ?PR?_LCD1602_SHOW_STRING?MAIN
|
||||
+--> ?PR?_SEND_STRING?MAIN
|
||||
|
||||
?PR?LCD1602_INIT?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_LCD1602_WRITE_CMD?MAIN
|
||||
|
||||
?PR?_LCD1602_WRITE_CMD?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_DELAY_MS?MAIN
|
||||
|
||||
?PR?SHOW_STRING_INIT?MAIN ----- ----- ----- -----
|
||||
+--> ?CO?MAIN
|
||||
+--> ?PR?_LCD1602_SHOW_STRING?MAIN
|
||||
|
||||
?PR?_LCD1602_SHOW_STRING?MAIN ----- ----- 0062H 0002H
|
||||
+--> ?PR?_LCD1602_WRITE_CMD?MAIN
|
||||
+--> ?PR?_LCD1602_WRITE_DATA?MAIN
|
||||
|
||||
?PR?_LCD1602_WRITE_DATA?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_DELAY_MS?MAIN
|
||||
|
||||
?PR?SHOW_STRING_MODE?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_LCD1602_SHOW_STRING?MAIN
|
||||
+--> ?CO?MAIN
|
||||
|
||||
?PR?_KEY_SCAN?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_DELAY_10US?MAIN
|
||||
|
||||
?PR?CHANGE_RANGE?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?SHOW_STRING_INIT?MAIN
|
||||
+--> ?PR?SHOW_STRING_MODE?MAIN
|
||||
|
||||
?PR?RESET?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_TIMER0_RESET?MAIN
|
||||
+--> ?PR?_TIMER1_RESET?MAIN
|
||||
|
||||
?PR?LCD1602_CLEAR?MAIN ----- ----- ----- -----
|
||||
+--> ?PR?_LCD1602_WRITE_CMD?MAIN
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 4
|
||||
|
||||
|
||||
?PR?PRINTF?PRINTF 0020H.0 0001H.1 0062H 001CH
|
||||
+--> ?PR?PUTCHAR?PUTCHAR
|
||||
|
||||
?PR?_SEND_STRING?MAIN ----- ----- 0062H 0003H
|
||||
+--> ?PR?_SEND_DATA?MAIN
|
||||
|
||||
?C_INITSEG ----- ----- ----- -----
|
||||
+--> ?CO?MAIN
|
||||
|
||||
|
||||
|
||||
SYMBOL TABLE OF MODULE: .\Objects\C52 (MAIN)
|
||||
|
||||
VALUE TYPE NAME
|
||||
----------------------------------
|
||||
|
||||
------- MODULE MAIN
|
||||
C:0000H SYMBOL _ICE_DUMMY_
|
||||
D:0080H PUBLIC P0
|
||||
D:0090H PUBLIC P1
|
||||
D:00A0H PUBLIC P2
|
||||
D:00B0H PUBLIC P3
|
||||
B:00A8H.7 PUBLIC EA
|
||||
C:11CAH PUBLIC _lcd1602_write_data
|
||||
D:00A8H PUBLIC IE
|
||||
D:0024H PUBLIC timer0_th
|
||||
D:0025H PUBLIC timer0_tl
|
||||
C:1185H PUBLIC lcd1602_init
|
||||
D:0028H PUBLIC range_mode
|
||||
B:00A8H.4 PUBLIC ES
|
||||
D:0029H PUBLIC gate_mode_number
|
||||
D:00B8H PUBLIC IP
|
||||
B:00B0H.1 PUBLIC KEY1
|
||||
B:0098H.0 PUBLIC RI
|
||||
D:002DH PUBLIC range_mode_name
|
||||
B:00B0H.0 PUBLIC KEY2
|
||||
B:00B0H.2 PUBLIC KEY3
|
||||
B:0098H.1 PUBLIC TI
|
||||
B:00B0H.3 PUBLIC KEY4
|
||||
C:0E44H PUBLIC _lcd1602_show_string
|
||||
D:0036H PUBLIC pause
|
||||
D:00CBH PUBLIC RCAP2H
|
||||
D:0037H PUBLIC result
|
||||
C:0003H PUBLIC _lcd1602_write_cmd
|
||||
B:00A0H.6 PUBLIC LCD1602_RS
|
||||
C:10F7H PUBLIC reset
|
||||
D:00CAH PUBLIC RCAP2L
|
||||
C:0B28H PUBLIC main
|
||||
C:111DH PUBLIC _send_string
|
||||
B:00A0H.5 PUBLIC LCD1602_RW
|
||||
C:11C1H PUBLIC _send_data
|
||||
D:003BH PUBLIC gate_mode
|
||||
D:003CH PUBLIC range_auto
|
||||
D:003DH PUBLIC send
|
||||
D:003EH PUBLIC gate_mode_name
|
||||
D:0099H PUBLIC SBUF
|
||||
D:0098H PUBLIC SCON
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 5
|
||||
|
||||
|
||||
D:0089H PUBLIC TMOD
|
||||
D:0088H PUBLIC TCON
|
||||
C:11B6H PUBLIC _delay_10us
|
||||
C:1142H PUBLIC send_init
|
||||
B:00A0H.7 PUBLIC LCD1602_E
|
||||
B:0021H.1 PUBLIC busy
|
||||
C:106DH PUBLIC show_string_mode
|
||||
D:00E0H PUBLIC ACC
|
||||
D:004AH PUBLIC auto_count
|
||||
B:00A8H.1 PUBLIC ET0
|
||||
B:00A8H.3 PUBLIC ET1
|
||||
D:008CH PUBLIC TH0
|
||||
D:008DH PUBLIC TH1
|
||||
C:11E0H PUBLIC timer0_close
|
||||
D:00CDH PUBLIC TH2
|
||||
C:11E3H PUBLIC timer1_close
|
||||
D:008AH PUBLIC TL0
|
||||
D:008BH PUBLIC TL1
|
||||
C:0F74H PUBLIC _key_scan
|
||||
D:00CCH PUBLIC TL2
|
||||
C:10B2H PUBLIC _delay_ms
|
||||
C:0F27H PUBLIC timer0
|
||||
C:0EC2H PUBLIC timer1
|
||||
C:0FFDH PUBLIC show_string_init
|
||||
D:004BH PUBLIC time_sig
|
||||
B:0088H.4 PUBLIC TR0
|
||||
B:0088H.6 PUBLIC TR1
|
||||
D:004DH PUBLIC range_h
|
||||
D:0053H PUBLIC time_50ms
|
||||
C:1199H PUBLIC change_range
|
||||
C:11B1H PUBLIC _timer0_reset
|
||||
C:11D8H PUBLIC _timer1_reset
|
||||
D:00C8H PUBLIC T2CON
|
||||
C:11DDH PUBLIC timer0_open
|
||||
C:001EH PUBLIC lcd1602_clear
|
||||
C:11D5H PUBLIC timer1_open
|
||||
C:1159H PUBLIC _timer0_init
|
||||
C:116FH PUBLIC _timer1_init
|
||||
C:000EH PUBLIC uart_isr
|
||||
D:0055H PUBLIC time_gate_ms
|
||||
D:00D0H PUBLIC PSW
|
||||
------- PROC _DELAY_10US
|
||||
D:0006H SYMBOL ten_us
|
||||
C:11B6H LINE# 20
|
||||
C:11B6H LINE# 21
|
||||
C:11B6H LINE# 22
|
||||
C:11C0H LINE# 23
|
||||
------- ENDPROC _DELAY_10US
|
||||
------- PROC L?0118
|
||||
------- ENDPROC L?0118
|
||||
------- PROC _DELAY_MS
|
||||
D:0006H SYMBOL ms
|
||||
------- DO
|
||||
D:0006H SYMBOL i
|
||||
D:0004H SYMBOL j
|
||||
------- ENDDO
|
||||
C:10B2H LINE# 31
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 6
|
||||
|
||||
|
||||
C:10B2H LINE# 32
|
||||
C:10B2H LINE# 34
|
||||
C:10BBH LINE# 35
|
||||
C:10CFH LINE# 36
|
||||
------- ENDPROC _DELAY_MS
|
||||
------- PROC _LCD1602_WRITE_CMD
|
||||
D:0007H SYMBOL cmd
|
||||
C:0003H LINE# 28
|
||||
C:0003H LINE# 29
|
||||
C:0003H LINE# 30
|
||||
C:0005H LINE# 31
|
||||
C:0005H LINE# 32
|
||||
C:0005H LINE# 33
|
||||
C:0005H LINE# 34
|
||||
C:0005H LINE# 35
|
||||
C:0005H LINE# 36
|
||||
C:0008H LINE# 37
|
||||
C:000AH LINE# 38
|
||||
------- ENDPROC _LCD1602_WRITE_CMD
|
||||
------- PROC _LCD1602_WRITE_DATA
|
||||
D:0007H SYMBOL dat
|
||||
C:11CAH LINE# 66
|
||||
C:11CAH LINE# 67
|
||||
C:11CAH LINE# 68
|
||||
C:11CCH LINE# 69
|
||||
C:11CCH LINE# 70
|
||||
C:11CCH LINE# 71
|
||||
C:11CCH LINE# 72
|
||||
C:11CCH LINE# 73
|
||||
C:11CCH LINE# 74
|
||||
C:11CFH LINE# 75
|
||||
C:11D1H LINE# 76
|
||||
------- ENDPROC _LCD1602_WRITE_DATA
|
||||
------- PROC LCD1602_INIT
|
||||
C:1185H LINE# 104
|
||||
C:1185H LINE# 105
|
||||
C:1185H LINE# 106
|
||||
C:118AH LINE# 107
|
||||
C:118FH LINE# 108
|
||||
C:1194H LINE# 109
|
||||
------- ENDPROC LCD1602_INIT
|
||||
------- PROC LCD1602_CLEAR
|
||||
C:001EH LINE# 127
|
||||
C:001EH LINE# 128
|
||||
C:001EH LINE# 129
|
||||
------- ENDPROC LCD1602_CLEAR
|
||||
------- PROC L?0121
|
||||
------- ENDPROC L?0121
|
||||
------- PROC _LCD1602_SHOW_STRING
|
||||
D:0062H SYMBOL x
|
||||
D:0005H SYMBOL y
|
||||
D:0001H SYMBOL str
|
||||
------- DO
|
||||
D:0063H SYMBOL i
|
||||
------- ENDDO
|
||||
C:0E44H LINE# 139
|
||||
C:0E46H LINE# 140
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 7
|
||||
|
||||
|
||||
C:0E46H LINE# 141
|
||||
C:0E49H LINE# 143
|
||||
C:0E55H LINE# 145
|
||||
C:0E5BH LINE# 146
|
||||
C:0E5BH LINE# 147
|
||||
C:0E60H LINE# 148
|
||||
C:0E60H LINE# 149
|
||||
C:0E6EH LINE# 150
|
||||
C:0E6EH LINE# 151
|
||||
C:0E72H LINE# 152
|
||||
C:0E74H LINE# 154
|
||||
C:0E74H LINE# 155
|
||||
C:0E7CH LINE# 156
|
||||
C:0E7CH LINE# 157
|
||||
C:0E83H LINE# 158
|
||||
C:0E8AH LINE# 159
|
||||
C:0E8CH LINE# 160
|
||||
C:0E8EH LINE# 161
|
||||
C:0E8EH LINE# 163
|
||||
C:0E8EH LINE# 164
|
||||
C:0E93H LINE# 165
|
||||
C:0E93H LINE# 166
|
||||
C:0EA1H LINE# 167
|
||||
C:0EA1H LINE# 168
|
||||
C:0EA5H LINE# 169
|
||||
C:0EA7H LINE# 171
|
||||
C:0EA7H LINE# 172
|
||||
C:0EAFH LINE# 173
|
||||
C:0EAFH LINE# 174
|
||||
C:0EB6H LINE# 175
|
||||
C:0EBDH LINE# 176
|
||||
C:0EBFH LINE# 177
|
||||
C:0EC1H LINE# 178
|
||||
C:0EC1H LINE# 179
|
||||
------- ENDPROC _LCD1602_SHOW_STRING
|
||||
------- PROC _KEY_SCAN
|
||||
D:0007H SYMBOL mode
|
||||
------- DO
|
||||
D:0022H SYMBOL key
|
||||
------- ENDDO
|
||||
C:0F74H LINE# 34
|
||||
C:0F74H LINE# 35
|
||||
C:0F74H LINE# 38
|
||||
C:0F7AH LINE# 39
|
||||
C:0F8CH LINE# 40
|
||||
C:0F8CH LINE# 41
|
||||
C:0F93H LINE# 42
|
||||
C:0F96H LINE# 43
|
||||
C:0F99H LINE# 44
|
||||
C:0F9CH LINE# 45
|
||||
C:0F9FH LINE# 46
|
||||
C:0FA2H LINE# 47
|
||||
C:0FA5H LINE# 48
|
||||
C:0FA8H LINE# 49
|
||||
C:0FABH LINE# 50
|
||||
C:0FAEH LINE# 51
|
||||
C:0FAEH LINE# 52
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 8
|
||||
|
||||
|
||||
C:0FBAH LINE# 53
|
||||
C:0FBAH LINE# 54
|
||||
C:0FBDH LINE# 55
|
||||
C:0FBDH LINE# 56
|
||||
C:0FBFH LINE# 57
|
||||
------- ENDPROC _KEY_SCAN
|
||||
------- PROC _TIMER0_INIT
|
||||
D:0007H SYMBOL tmod
|
||||
D:0005H SYMBOL th0
|
||||
D:0003H SYMBOL tl0
|
||||
C:1159H LINE# 11
|
||||
C:1159H LINE# 12
|
||||
C:1159H LINE# 13
|
||||
C:1164H LINE# 14
|
||||
C:1166H LINE# 15
|
||||
C:1168H LINE# 16
|
||||
C:116AH LINE# 17
|
||||
C:116CH LINE# 18
|
||||
C:116EH LINE# 19
|
||||
------- ENDPROC _TIMER0_INIT
|
||||
------- PROC TIMER0_OPEN
|
||||
C:11DDH LINE# 21
|
||||
C:11DDH LINE# 22
|
||||
C:11DDH LINE# 23
|
||||
C:11DFH LINE# 24
|
||||
------- ENDPROC TIMER0_OPEN
|
||||
------- PROC TIMER0_CLOSE
|
||||
C:11E0H LINE# 26
|
||||
C:11E0H LINE# 27
|
||||
C:11E0H LINE# 28
|
||||
C:11E2H LINE# 29
|
||||
------- ENDPROC TIMER0_CLOSE
|
||||
C:11A8H SYMBOL L?0120
|
||||
------- PROC L?0119
|
||||
------- ENDPROC L?0119
|
||||
C:11A8H SYMBOL L?0120
|
||||
------- PROC _TIMER0_RESET
|
||||
D:0007H SYMBOL th0
|
||||
D:0005H SYMBOL tl0
|
||||
C:11B1H LINE# 31
|
||||
C:11B1H LINE# 32
|
||||
C:11B1H LINE# 33
|
||||
C:11B3H LINE# 34
|
||||
C:11B5H LINE# 35
|
||||
------- ENDPROC _TIMER0_RESET
|
||||
------- PROC _TIMER1_INIT
|
||||
D:0007H SYMBOL tmod
|
||||
D:0005H SYMBOL th1
|
||||
D:0003H SYMBOL tl1
|
||||
C:116FH LINE# 37
|
||||
C:116FH LINE# 38
|
||||
C:116FH LINE# 39
|
||||
C:117AH LINE# 40
|
||||
C:117CH LINE# 41
|
||||
C:117EH LINE# 42
|
||||
C:1180H LINE# 43
|
||||
C:1182H LINE# 44
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 9
|
||||
|
||||
|
||||
C:1184H LINE# 45
|
||||
------- ENDPROC _TIMER1_INIT
|
||||
------- PROC _TIMER1_RESET
|
||||
D:0007H SYMBOL th1
|
||||
D:0005H SYMBOL tl1
|
||||
C:11D8H LINE# 47
|
||||
C:11D8H LINE# 48
|
||||
C:11D8H LINE# 49
|
||||
C:11DAH LINE# 50
|
||||
C:11DCH LINE# 51
|
||||
------- ENDPROC _TIMER1_RESET
|
||||
------- PROC L?0122
|
||||
------- ENDPROC L?0122
|
||||
------- PROC TIMER1_OPEN
|
||||
C:11D5H LINE# 53
|
||||
C:11D5H LINE# 54
|
||||
C:11D5H LINE# 55
|
||||
C:11D7H LINE# 56
|
||||
------- ENDPROC TIMER1_OPEN
|
||||
------- PROC TIMER1_CLOSE
|
||||
C:11E3H LINE# 58
|
||||
C:11E3H LINE# 59
|
||||
C:11E3H LINE# 60
|
||||
C:11E5H LINE# 61
|
||||
------- ENDPROC TIMER1_CLOSE
|
||||
------- PROC SEND_INIT
|
||||
C:1142H LINE# 18
|
||||
C:1142H LINE# 19
|
||||
C:1142H LINE# 20
|
||||
C:1145H LINE# 21
|
||||
C:114BH LINE# 22
|
||||
C:1151H LINE# 23
|
||||
C:1154H LINE# 24
|
||||
C:1156H LINE# 25
|
||||
C:1158H LINE# 26
|
||||
------- ENDPROC SEND_INIT
|
||||
------- PROC UART_ISR
|
||||
C:000EH LINE# 31
|
||||
C:000EH LINE# 33
|
||||
C:0011H LINE# 34
|
||||
C:0011H LINE# 35
|
||||
C:0013H LINE# 36
|
||||
C:0013H LINE# 37
|
||||
C:0016H LINE# 38
|
||||
C:0016H LINE# 39
|
||||
C:0018H LINE# 40
|
||||
C:001AH LINE# 41
|
||||
C:001AH LINE# 42
|
||||
------- ENDPROC UART_ISR
|
||||
------- PROC _SEND_DATA
|
||||
D:0007H SYMBOL dat
|
||||
C:11C1H LINE# 49
|
||||
C:11C1H LINE# 50
|
||||
C:11C1H LINE# 51
|
||||
C:11C4H LINE# 52
|
||||
C:11C5H LINE# 53
|
||||
C:11C7H LINE# 54
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 10
|
||||
|
||||
|
||||
C:11C9H LINE# 55
|
||||
------- ENDPROC _SEND_DATA
|
||||
------- PROC _SEND_STRING
|
||||
D:0062H SYMBOL s
|
||||
C:111DH LINE# 62
|
||||
C:1123H LINE# 63
|
||||
C:1123H LINE# 64
|
||||
C:112EH LINE# 65
|
||||
C:112EH LINE# 66
|
||||
C:113FH LINE# 67
|
||||
C:1141H LINE# 68
|
||||
------- ENDPROC _SEND_STRING
|
||||
------- PROC SHOW_STRING_MODE
|
||||
C:106DH LINE# 31
|
||||
C:106DH LINE# 32
|
||||
C:106DH LINE# 34
|
||||
C:107AH LINE# 35
|
||||
C:1087H LINE# 36
|
||||
C:108DH LINE# 37
|
||||
C:1091H LINE# 38
|
||||
C:1093H LINE# 39
|
||||
C:1093H LINE# 40
|
||||
C:109EH LINE# 41
|
||||
C:109EH LINE# 42
|
||||
------- ENDPROC SHOW_STRING_MODE
|
||||
------- PROC SHOW_STRING_INIT
|
||||
C:0FFDH LINE# 44
|
||||
C:0FFDH LINE# 45
|
||||
C:0FFDH LINE# 46
|
||||
C:1009H LINE# 47
|
||||
C:1014H LINE# 48
|
||||
C:101FH LINE# 49
|
||||
C:1023H LINE# 50
|
||||
C:1027H LINE# 51
|
||||
C:1029H LINE# 52
|
||||
C:1029H LINE# 53
|
||||
C:1036H LINE# 54
|
||||
C:1036H LINE# 55
|
||||
------- ENDPROC SHOW_STRING_INIT
|
||||
------- PROC RESET
|
||||
C:10F7H LINE# 57
|
||||
C:10F7H LINE# 58
|
||||
C:10FAH LINE# 59
|
||||
C:10FFH LINE# 60
|
||||
C:1103H LINE# 61
|
||||
C:1103H LINE# 62
|
||||
C:1106H LINE# 63
|
||||
C:1108H LINE# 64
|
||||
C:1108H LINE# 65
|
||||
C:110FH LINE# 66
|
||||
C:110FH LINE# 67
|
||||
C:1114H LINE# 68
|
||||
C:111CH LINE# 69
|
||||
------- ENDPROC RESET
|
||||
------- PROC CHANGE_RANGE
|
||||
C:1199H LINE# 71
|
||||
C:1199H LINE# 72
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 11
|
||||
|
||||
|
||||
C:1199H LINE# 73
|
||||
C:11A2H LINE# 74
|
||||
C:11A5H LINE# 75
|
||||
------- ENDPROC CHANGE_RANGE
|
||||
------- PROC MAIN
|
||||
------- DO
|
||||
D:0057H SYMBOL key
|
||||
------- DO
|
||||
D:0058H SYMBOL disp
|
||||
------- ENDDO
|
||||
------- ENDDO
|
||||
C:0B28H LINE# 78
|
||||
C:0B28H LINE# 79
|
||||
C:0B28H LINE# 80
|
||||
C:0B2BH LINE# 81
|
||||
C:0B2EH LINE# 82
|
||||
C:0B30H LINE# 83
|
||||
C:0B3FH LINE# 85
|
||||
C:0B42H LINE# 86
|
||||
C:0B45H LINE# 88
|
||||
C:0B48H LINE# 89
|
||||
C:0B4BH LINE# 92
|
||||
C:0B59H LINE# 93
|
||||
C:0B61H LINE# 94
|
||||
C:0B61H LINE# 95
|
||||
C:0B64H LINE# 97
|
||||
C:0B64H LINE# 98
|
||||
C:0B64H LINE# 99
|
||||
C:0B6BH LINE# 100
|
||||
C:0B70H LINE# 101
|
||||
C:0B70H LINE# 102
|
||||
C:0B72H LINE# 103
|
||||
C:0B75H LINE# 104
|
||||
C:0B75H LINE# 105
|
||||
C:0B77H LINE# 106
|
||||
C:0B7CH LINE# 107
|
||||
C:0B7CH LINE# 108
|
||||
C:0B7EH LINE# 109
|
||||
C:0B81H LINE# 110
|
||||
C:0B90H LINE# 111
|
||||
C:0B93H LINE# 112
|
||||
C:0B96H LINE# 113
|
||||
C:0B98H LINE# 114
|
||||
C:0B9DH LINE# 115
|
||||
C:0B9DH LINE# 116
|
||||
C:0BA0H LINE# 117
|
||||
C:0BA0H LINE# 118
|
||||
C:0BA2H LINE# 119
|
||||
C:0BA7H LINE# 120
|
||||
C:0BA7H LINE# 121
|
||||
C:0BAAH LINE# 122
|
||||
C:0BADH LINE# 123
|
||||
C:0BB0H LINE# 124
|
||||
C:0BB0H LINE# 125
|
||||
C:0BB5H LINE# 126
|
||||
C:0BB5H LINE# 128
|
||||
C:0BBCH LINE# 129
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 12
|
||||
|
||||
|
||||
C:0BBCH LINE# 130
|
||||
C:0C5EH LINE# 131
|
||||
C:0C61H LINE# 133
|
||||
C:0C61H LINE# 134
|
||||
C:0CEFH LINE# 135
|
||||
C:0CEFH LINE# 136
|
||||
C:0CFAH LINE# 137
|
||||
C:0CFAH LINE# 138
|
||||
C:0CFDH LINE# 139
|
||||
C:0D22H LINE# 140
|
||||
C:0D22H LINE# 141
|
||||
C:0D24H LINE# 142
|
||||
C:0D27H LINE# 143
|
||||
C:0D27H LINE# 144
|
||||
C:0D4BH LINE# 145
|
||||
C:0D4BH LINE# 146
|
||||
C:0D4FH LINE# 147
|
||||
C:0D52H LINE# 148
|
||||
C:0D52H LINE# 149
|
||||
C:0D54H LINE# 151
|
||||
C:0D54H LINE# 152
|
||||
C:0D56H LINE# 153
|
||||
C:0D56H LINE# 154
|
||||
C:0D5BH LINE# 155
|
||||
C:0D64H LINE# 156
|
||||
C:0D66H LINE# 158
|
||||
C:0D66H LINE# 159
|
||||
C:0D84H LINE# 160
|
||||
C:0D84H LINE# 161
|
||||
C:0D91H LINE# 162
|
||||
C:0D98H LINE# 163
|
||||
C:0DA1H LINE# 164
|
||||
C:0DA4H LINE# 165
|
||||
C:0DA4H LINE# 166
|
||||
C:0DA7H LINE# 167
|
||||
C:0DAAH LINE# 168
|
||||
C:0DAAH LINE# 169
|
||||
------- ENDPROC MAIN
|
||||
------- PROC TIMER0
|
||||
C:0F27H LINE# 172
|
||||
C:0F34H LINE# 174
|
||||
C:0F38H LINE# 175
|
||||
C:0F3BH LINE# 176
|
||||
C:0F3EH LINE# 177
|
||||
C:0F41H LINE# 178
|
||||
C:0F49H LINE# 179
|
||||
C:0F51H LINE# 180
|
||||
C:0F51H LINE# 181
|
||||
C:0F54H LINE# 182
|
||||
C:0F56H LINE# 184
|
||||
C:0F56H LINE# 185
|
||||
C:0F59H LINE# 186
|
||||
C:0F5CH LINE# 187
|
||||
C:0F5CH LINE# 188
|
||||
C:0F5EH LINE# 190
|
||||
C:0F5EH LINE# 191
|
||||
C:0F61H LINE# 192
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 13
|
||||
|
||||
|
||||
C:0F69H LINE# 193
|
||||
C:0F69H LINE# 194
|
||||
------- ENDPROC TIMER0
|
||||
------- PROC TIMER1
|
||||
------- DO
|
||||
D:0023H SYMBOL start
|
||||
------- ENDDO
|
||||
C:0EC2H LINE# 196
|
||||
C:0ECFH LINE# 198
|
||||
C:0ED3H LINE# 199
|
||||
C:0ED3H LINE# 200
|
||||
C:0ED9H LINE# 201
|
||||
C:0EE1H LINE# 202
|
||||
C:0EE3H LINE# 204
|
||||
C:0EE3H LINE# 206
|
||||
C:0EEAH LINE# 207
|
||||
C:0EEEH LINE# 208
|
||||
C:0EEEH LINE# 209
|
||||
C:0EF1H LINE# 210
|
||||
C:0EF7H LINE# 211
|
||||
C:0EFAH LINE# 212
|
||||
C:0EFCH LINE# 214
|
||||
C:0EFCH LINE# 215
|
||||
C:0F04H LINE# 216
|
||||
C:0F04H LINE# 218
|
||||
C:0F11H LINE# 219
|
||||
C:0F11H LINE# 220
|
||||
C:0F14H LINE# 221
|
||||
C:0F17H LINE# 222
|
||||
C:0F1AH LINE# 223
|
||||
C:0F1CH LINE# 224
|
||||
C:0F1CH LINE# 225
|
||||
C:0F1CH LINE# 226
|
||||
------- ENDPROC TIMER1
|
||||
------- ENDMOD MAIN
|
||||
|
||||
------- MODULE ?C?FPMUL
|
||||
C:0026H PUBLIC ?C?FPMUL
|
||||
------- ENDMOD ?C?FPMUL
|
||||
|
||||
------- MODULE ?C?FPDIV
|
||||
C:012FH PUBLIC ?C?FPDIV
|
||||
------- ENDMOD ?C?FPDIV
|
||||
|
||||
------- MODULE ?C?FPCMP
|
||||
C:01CEH PUBLIC ?C?FPCMP
|
||||
C:01CCH PUBLIC ?C?FPCMP3
|
||||
------- ENDMOD ?C?FPCMP
|
||||
|
||||
------- MODULE ?C?FCAST
|
||||
C:024FH PUBLIC ?C?FCASTC
|
||||
C:024AH PUBLIC ?C?FCASTI
|
||||
C:0245H PUBLIC ?C?FCASTL
|
||||
------- ENDMOD ?C?FCAST
|
||||
|
||||
------- MODULE PRINTF
|
||||
D:0062H PUBLIC ?_PRINTF?BYTE
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 14
|
||||
|
||||
|
||||
D:0062H PUBLIC ?_SPRINTF?BYTE
|
||||
C:071BH PUBLIC _PRINTF
|
||||
C:0715H PUBLIC _SPRINTF
|
||||
------- ENDMOD PRINTF
|
||||
|
||||
------- MODULE ?C?FPROUND
|
||||
C:02CDH PUBLIC ?C?FPROUND
|
||||
------- ENDMOD ?C?FPROUND
|
||||
|
||||
------- MODULE ?C?FPCONVERT
|
||||
C:02FCH PUBLIC ?C?FPCONVERT
|
||||
------- ENDMOD ?C?FPCONVERT
|
||||
|
||||
------- MODULE ?C?FPADD
|
||||
C:0406H PUBLIC ?C?FPADD
|
||||
C:0402H PUBLIC ?C?FPSUB
|
||||
------- ENDMOD ?C?FPADD
|
||||
|
||||
------- MODULE ?C?FTNPWR
|
||||
C:0527H PUBLIC ?C?FTNPWR
|
||||
------- ENDMOD ?C?FTNPWR
|
||||
|
||||
------- MODULE ?C?CLDPTR
|
||||
C:0567H PUBLIC ?C?CLDPTR
|
||||
------- ENDMOD ?C?CLDPTR
|
||||
|
||||
------- MODULE ?C?CLDOPTR
|
||||
C:0580H PUBLIC ?C?CLDOPTR
|
||||
------- ENDMOD ?C?CLDOPTR
|
||||
|
||||
------- MODULE ?C?CSTPTR
|
||||
C:05ADH PUBLIC ?C?CSTPTR
|
||||
------- ENDMOD ?C?CSTPTR
|
||||
|
||||
------- MODULE ?C?IMUL
|
||||
C:05BFH PUBLIC ?C?IMUL
|
||||
------- ENDMOD ?C?IMUL
|
||||
|
||||
------- MODULE ?C?UIDIV
|
||||
C:05D1H PUBLIC ?C?UIDIV
|
||||
------- ENDMOD ?C?UIDIV
|
||||
|
||||
------- MODULE ?C?LMUL
|
||||
C:0626H PUBLIC ?C?LMUL
|
||||
------- ENDMOD ?C?LMUL
|
||||
|
||||
------- MODULE ?C?LNEG
|
||||
C:0675H PUBLIC ?C?LNEG
|
||||
------- ENDMOD ?C?LNEG
|
||||
|
||||
------- MODULE ?C?PLDIIDATA
|
||||
C:0683H PUBLIC ?C?PLDIIDATA
|
||||
------- ENDMOD ?C?PLDIIDATA
|
||||
|
||||
------- MODULE ?C?CCASE
|
||||
C:0693H PUBLIC ?C?CCASE
|
||||
------- ENDMOD ?C?CCASE
|
||||
BL51 BANKED LINKER/LOCATER V6.22.2.0 05/23/2022 15:58:36 PAGE 15
|
||||
|
||||
|
||||
|
||||
------- MODULE PUTCHAR
|
||||
C:10D0H PUBLIC _PUTCHAR
|
||||
------- ENDMOD PUTCHAR
|
||||
|
||||
Program Size: data=102.2 xdata=0 code=4582
|
||||
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
258
Listings/main.lst
Normal file
258
Listings/main.lst
Normal file
@ -0,0 +1,258 @@
|
||||
C51 COMPILER V9.57.0.0 MAIN 05/23/2022 15:58:34 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.57.0.0, COMPILATION OF MODULE MAIN
|
||||
OBJECT MODULE PLACED IN .\Objects\main.obj
|
||||
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE Main\main.c OPTIMIZE(8,SPEED) BROWSE INCDIR(.\Include) DEBUG OBJECTEXTEN
|
||||
-D PRINT(.\Listings\main.lst) TABS(2) OBJECT(.\Objects\main.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include<reg52.h>
|
||||
2 #include<stdio.h>
|
||||
3
|
||||
4 #include"public.h"
|
||||
5 #include"lcd1602.h"
|
||||
6 #include"key.h"
|
||||
7 #include"timer.h"
|
||||
8 #include"com_send.h"
|
||||
9
|
||||
10 u16 time_sig;
|
||||
11 u16 time_50ms;
|
||||
12 u16 time_gate_ms;
|
||||
13 u8 send;
|
||||
14 u8 pause;
|
||||
15 u8 range_mode;
|
||||
16 u8 gate_mode;
|
||||
17 double result;
|
||||
18
|
||||
19 u8* range_mode_name[3] = {"L","M","H"};
|
||||
20 u8* gate_mode_name[4] = {" 1"," 2"," 5","10"};
|
||||
21 u8 gate_mode_number[4] = {1,2,5,10};
|
||||
22
|
||||
23 u8 timer0_th = 0x4c;
|
||||
24 u8 timer0_tl[3] = {0xa0,0x16,0x14};
|
||||
25
|
||||
26
|
||||
27 u8 range_auto;
|
||||
28 u8 auto_count;
|
||||
29 u16 range_h[3] = {100,50000,460000};
|
||||
30
|
||||
31 void show_string_mode()
|
||||
32 {
|
||||
33 1
|
||||
34 1 lcd1602_show_string(5,1,range_mode_name[range_mode]);
|
||||
35 1 lcd1602_show_string(13,1,gate_mode_name[gate_mode]);
|
||||
36 1 if(range_auto){
|
||||
37 2 lcd1602_show_string(6,1,"a");
|
||||
38 2 }
|
||||
39 1 else{
|
||||
40 2 lcd1602_show_string(6,1," ");
|
||||
41 2 }
|
||||
42 1 }
|
||||
43
|
||||
44 void show_string_init()
|
||||
45 {
|
||||
46 1 lcd1602_show_string(0,0,"Frq:");
|
||||
47 1 lcd1602_show_string(14,0,"Hz");
|
||||
48 1 lcd1602_show_string(0,1,"Mode: Time:");
|
||||
49 1 if(range_mode){
|
||||
50 2 lcd1602_show_string(15,1,"s");
|
||||
51 2 }
|
||||
52 1 else{
|
||||
53 2 lcd1602_show_string(15,1,"T");
|
||||
54 2 }
|
||||
C51 COMPILER V9.57.0.0 MAIN 05/23/2022 15:58:34 PAGE 2
|
||||
|
||||
55 1 }
|
||||
56
|
||||
57 void reset(){
|
||||
58 1 timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
59 1 time_50ms=0;
|
||||
60 1 if(range_mode)
|
||||
61 1 {
|
||||
62 2 timer1_reset(0x00,0x00);
|
||||
63 2 }else
|
||||
64 1 {
|
||||
65 2 timer1_reset(0xFF,0xFF);
|
||||
66 2 }
|
||||
67 1 time_sig=0;
|
||||
68 1 result = 0;
|
||||
69 1 }
|
||||
70
|
||||
71 void change_range()
|
||||
72 {
|
||||
73 1 range_mode %= 3;
|
||||
74 1 show_string_init();
|
||||
75 1 show_string_mode();
|
||||
76 1 }
|
||||
77
|
||||
78 int main()
|
||||
79 {
|
||||
80 1 u8 key=0;
|
||||
81 1 range_mode = 1;
|
||||
82 1 gate_mode = 0;
|
||||
83 1 time_gate_ms = 20*gate_mode_number[gate_mode];
|
||||
84 1
|
||||
85 1 lcd1602_init();
|
||||
86 1 send_init();
|
||||
87 1
|
||||
88 1 show_string_init();
|
||||
89 1 show_string_mode();
|
||||
90 1
|
||||
91 1
|
||||
92 1 timer0_init(0x01,timer0_th,timer0_tl[range_mode]);
|
||||
93 1 timer1_init(0x50,0x00,0x00);
|
||||
94 1 timer0_open();
|
||||
95 1 timer1_open();
|
||||
96 1
|
||||
97 1 while(1)
|
||||
98 1 {
|
||||
99 2 key=key_scan(0);
|
||||
100 2 if(key==KEY1_PRESS)
|
||||
101 2 {
|
||||
102 3 range_mode++;
|
||||
103 3 change_range();
|
||||
104 3 reset();
|
||||
105 3 }
|
||||
106 2 else if(key==KEY2_PRESS)
|
||||
107 2 {
|
||||
108 3 gate_mode++;
|
||||
109 3 gate_mode %= 4;
|
||||
110 3 time_gate_ms = 20*gate_mode_number[gate_mode];
|
||||
111 3 show_string_mode();
|
||||
112 3 reset();
|
||||
113 3 }
|
||||
114 2 else if(key==KEY3_PRESS)
|
||||
115 2 {
|
||||
116 3 range_auto = ~range_auto;
|
||||
C51 COMPILER V9.57.0.0 MAIN 05/23/2022 15:58:34 PAGE 3
|
||||
|
||||
117 3 show_string_mode();
|
||||
118 3 }
|
||||
119 2 else if(key==KEY4_PRESS)
|
||||
120 2 {
|
||||
121 3 lcd1602_clear();
|
||||
122 3 show_string_init();
|
||||
123 3 show_string_mode();
|
||||
124 3 }
|
||||
125 2 if(send==1)
|
||||
126 2 {
|
||||
127 3 char disp[10];
|
||||
128 3 if(range_mode)
|
||||
129 3 {
|
||||
130 4 result = (double)(time_sig*65536+TH1*256+TL1)/(double)(time_50ms*50+((TH0-timer0_th)*256+TL0-timer0_tl
|
||||
-[range_mode])/1000)*1000;
|
||||
131 4 }
|
||||
132 3 else
|
||||
133 3 {
|
||||
134 4 result = (double)1000000*gate_mode_number[gate_mode]/(double)(time_50ms*50006+((TH0-timer0_th)*256)+TL
|
||||
-0-timer0_tl[range_mode]);
|
||||
135 4 }
|
||||
136 3 if(range_auto && auto_count>0)
|
||||
137 3 {
|
||||
138 4 auto_count = 0;
|
||||
139 4 if(range_mode < 2 && result>range_h[range_mode])
|
||||
140 4 {
|
||||
141 5 range_mode += 1;
|
||||
142 5 change_range();
|
||||
143 5 }
|
||||
144 4 if(range_mode > 0 && result<range_h[range_mode-1])
|
||||
145 4 {
|
||||
146 5 range_mode += 2;
|
||||
147 5 change_range();
|
||||
148 5 }
|
||||
149 4 }
|
||||
150 3 else
|
||||
151 3 {
|
||||
152 4 auto_count++;
|
||||
153 4 }
|
||||
154 3 if(range_mode ==2){
|
||||
155 4 sprintf(disp,"%.2f",result);
|
||||
156 4 }
|
||||
157 3 else
|
||||
158 3 {
|
||||
159 4 sprintf(disp,"%.3f",result);
|
||||
160 4 }
|
||||
161 3 lcd1602_show_string(4,0,disp);
|
||||
162 3 send_string(disp);
|
||||
163 3 send_string("\r\n");
|
||||
164 3 reset();
|
||||
165 3 timer0_open();
|
||||
166 3 timer1_open();
|
||||
167 3 send=0;
|
||||
168 3 }
|
||||
169 2 }
|
||||
170 1 }
|
||||
171
|
||||
172 void timer0() interrupt 1 //¶¨Ê±Æ÷0ÖжϺ¯Êý
|
||||
173 {
|
||||
174 1 if(range_mode){
|
||||
175 2 timer0_close();
|
||||
176 2 timer1_close();
|
||||
C51 COMPILER V9.57.0.0 MAIN 05/23/2022 15:58:34 PAGE 4
|
||||
|
||||
177 2 timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
178 2 time_50ms++;
|
||||
179 2 if(time_50ms==time_gate_ms)
|
||||
180 2 {
|
||||
181 3 send=1;
|
||||
182 3 }
|
||||
183 2 else
|
||||
184 2 {
|
||||
185 3 timer0_open();
|
||||
186 3 timer1_open();
|
||||
187 3 }
|
||||
188 2 }
|
||||
189 1 else
|
||||
190 1 {
|
||||
191 2 timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
192 2 time_50ms++;
|
||||
193 2 }
|
||||
194 1 }
|
||||
195
|
||||
196 void timer1() interrupt 3
|
||||
197 {
|
||||
198 1 if(range_mode)
|
||||
199 1 {
|
||||
200 2 timer1_reset(0x00,0x00);
|
||||
201 2 time_sig++;
|
||||
202 2 }
|
||||
203 1 else
|
||||
204 1 {
|
||||
205 2 static u8 start = 0;
|
||||
206 2 timer1_reset(0xFF,0xFF);
|
||||
207 2 if(!start)
|
||||
208 2 {
|
||||
209 3 timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
210 3 time_50ms = 0;
|
||||
211 3 start = 1;
|
||||
212 3 }
|
||||
213 2 else
|
||||
214 2 {
|
||||
215 3 time_sig++;
|
||||
216 3 }
|
||||
217 2
|
||||
218 2 if(time_sig==gate_mode_number[gate_mode])
|
||||
219 2 {
|
||||
220 3 timer0_close();
|
||||
221 3 timer1_close();
|
||||
222 3 send=1;
|
||||
223 3 start = 0;
|
||||
224 3 }
|
||||
225 2 }
|
||||
226 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 1458 ----
|
||||
CONSTANT SIZE = 61 ----
|
||||
XDATA SIZE = ---- ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 53 16
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = 1 ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
226
Main/main.c
Normal file
226
Main/main.c
Normal file
@ -0,0 +1,226 @@
|
||||
#include<reg52.h>
|
||||
#include<stdio.h>
|
||||
|
||||
#include"public.h"
|
||||
#include"lcd1602.h"
|
||||
#include"key.h"
|
||||
#include"timer.h"
|
||||
#include"com_send.h"
|
||||
|
||||
u16 time_sig;
|
||||
u16 time_50ms;
|
||||
u16 time_gate_ms;
|
||||
u8 send;
|
||||
u8 pause;
|
||||
u8 range_mode;
|
||||
u8 gate_mode;
|
||||
double result;
|
||||
|
||||
u8* range_mode_name[3] = {"L","M","H"};
|
||||
u8* gate_mode_name[4] = {" 1"," 2"," 5","10"};
|
||||
u8 gate_mode_number[4] = {1,2,5,10};
|
||||
|
||||
u8 timer0_th = 0x4c;
|
||||
u8 timer0_tl[3] = {0xa0,0x16,0x14};
|
||||
|
||||
|
||||
u8 range_auto;
|
||||
u8 auto_count;
|
||||
u16 range_h[3] = {100,50000,460000};
|
||||
|
||||
void show_string_mode()
|
||||
{
|
||||
|
||||
lcd1602_show_string(5,1,range_mode_name[range_mode]);
|
||||
lcd1602_show_string(13,1,gate_mode_name[gate_mode]);
|
||||
if(range_auto){
|
||||
lcd1602_show_string(6,1,"a");
|
||||
}
|
||||
else{
|
||||
lcd1602_show_string(6,1," ");
|
||||
}
|
||||
}
|
||||
|
||||
void show_string_init()
|
||||
{
|
||||
lcd1602_show_string(0,0,"Frq:");
|
||||
lcd1602_show_string(14,0,"Hz");
|
||||
lcd1602_show_string(0,1,"Mode: Time:");
|
||||
if(range_mode){
|
||||
lcd1602_show_string(15,1,"s");
|
||||
}
|
||||
else{
|
||||
lcd1602_show_string(15,1,"T");
|
||||
}
|
||||
}
|
||||
|
||||
void reset(){
|
||||
timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
time_50ms=0;
|
||||
if(range_mode)
|
||||
{
|
||||
timer1_reset(0x00,0x00);
|
||||
}else
|
||||
{
|
||||
timer1_reset(0xFF,0xFF);
|
||||
}
|
||||
time_sig=0;
|
||||
result = 0;
|
||||
}
|
||||
|
||||
void change_range()
|
||||
{
|
||||
range_mode %= 3;
|
||||
show_string_init();
|
||||
show_string_mode();
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
u8 key=0;
|
||||
range_mode = 1;
|
||||
gate_mode = 0;
|
||||
time_gate_ms = 20*gate_mode_number[gate_mode];
|
||||
|
||||
lcd1602_init();
|
||||
send_init();
|
||||
|
||||
show_string_init();
|
||||
show_string_mode();
|
||||
|
||||
|
||||
timer0_init(0x01,timer0_th,timer0_tl[range_mode]);
|
||||
timer1_init(0x50,0x00,0x00);
|
||||
timer0_open();
|
||||
timer1_open();
|
||||
|
||||
while(1)
|
||||
{
|
||||
key=key_scan(0);
|
||||
if(key==KEY1_PRESS)
|
||||
{
|
||||
range_mode++;
|
||||
change_range();
|
||||
reset();
|
||||
}
|
||||
else if(key==KEY2_PRESS)
|
||||
{
|
||||
gate_mode++;
|
||||
gate_mode %= 4;
|
||||
time_gate_ms = 20*gate_mode_number[gate_mode];
|
||||
show_string_mode();
|
||||
reset();
|
||||
}
|
||||
else if(key==KEY3_PRESS)
|
||||
{
|
||||
range_auto = ~range_auto;
|
||||
show_string_mode();
|
||||
}
|
||||
else if(key==KEY4_PRESS)
|
||||
{
|
||||
lcd1602_clear();
|
||||
show_string_init();
|
||||
show_string_mode();
|
||||
}
|
||||
if(send==1)
|
||||
{
|
||||
char disp[10];
|
||||
if(range_mode)
|
||||
{
|
||||
result = (double)(time_sig*65536+TH1*256+TL1)/(double)(time_50ms*50+((TH0-timer0_th)*256+TL0-timer0_tl[range_mode])/1000)*1000;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = (double)1000000*gate_mode_number[gate_mode]/(double)(time_50ms*50006+((TH0-timer0_th)*256)+TL0-timer0_tl[range_mode]);
|
||||
}
|
||||
if(range_auto && auto_count>0)
|
||||
{
|
||||
auto_count = 0;
|
||||
if(range_mode < 2 && result>range_h[range_mode])
|
||||
{
|
||||
range_mode += 1;
|
||||
change_range();
|
||||
}
|
||||
if(range_mode > 0 && result<range_h[range_mode-1])
|
||||
{
|
||||
range_mode += 2;
|
||||
change_range();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
auto_count++;
|
||||
}
|
||||
if(range_mode ==2){
|
||||
sprintf(disp,"%.2f",result);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(disp,"%.3f",result);
|
||||
}
|
||||
lcd1602_show_string(4,0,disp);
|
||||
send_string(disp);
|
||||
send_string("\r\n");
|
||||
reset();
|
||||
timer0_open();
|
||||
timer1_open();
|
||||
send=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void timer0() interrupt 1 //¶¨Ê±Æ÷0ÖжϺ¯Êý
|
||||
{
|
||||
if(range_mode){
|
||||
timer0_close();
|
||||
timer1_close();
|
||||
timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
time_50ms++;
|
||||
if(time_50ms==time_gate_ms)
|
||||
{
|
||||
send=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
timer0_open();
|
||||
timer1_open();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
time_50ms++;
|
||||
}
|
||||
}
|
||||
|
||||
void timer1() interrupt 3
|
||||
{
|
||||
if(range_mode)
|
||||
{
|
||||
timer1_reset(0x00,0x00);
|
||||
time_sig++;
|
||||
}
|
||||
else
|
||||
{
|
||||
static u8 start = 0;
|
||||
timer1_reset(0xFF,0xFF);
|
||||
if(!start)
|
||||
{
|
||||
timer0_reset(timer0_th,timer0_tl[range_mode]);
|
||||
time_50ms = 0;
|
||||
start = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
time_sig++;
|
||||
}
|
||||
|
||||
if(time_sig==gate_mode_number[gate_mode])
|
||||
{
|
||||
timer0_close();
|
||||
timer1_close();
|
||||
send=1;
|
||||
start = 0;
|
||||
}
|
||||
}
|
||||
}
|
BIN
Objects/C52
Normal file
BIN
Objects/C52
Normal file
Binary file not shown.
36
Objects/C52.build_log.htm
Normal file
36
Objects/C52.build_log.htm
Normal file
@ -0,0 +1,36 @@
|
||||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>µVision Build Log</h1>
|
||||
<h2>Tool Versions:</h2>
|
||||
IDE-Version: ¦ÌVision V5.24.2.86
|
||||
Copyright (C) 2017 ARM Ltd and ARM Germany GmbH. All rights reserved.
|
||||
License Information: leaf green, oair, LIC=3U39U-SKLG7-H1EPN-YJ8UA-X3RTS-RJMY6
|
||||
|
||||
Tool Versions:
|
||||
Toolchain: MDK51 Professional Version: 9.57.0.0
|
||||
Toolchain Path: C:\Keil_v5\C51\BIN
|
||||
C Compiler: C51.exe V9.57.0.0
|
||||
Assembler: A51.exe V8.2.7.0
|
||||
Linker/Locator: BL51.exe V6.22.2.0
|
||||
Library Manager: LIB51.exe V4.30.1.0
|
||||
Hex Converter: OH51.exe V2.7.0.0
|
||||
CPU DLL: S8051.DLL V3.113.0.0
|
||||
Dialog DLL: DP51.DLL V2.64.0.0
|
||||
Target DLL: MON51.DLL V2.47.0.0
|
||||
Dialog DLL: TP51.DLL V2.60.0.0
|
||||
|
||||
<h2>Project:</h2>
|
||||
C:\Users\Simular\Desktop\My\C52.uvproj
|
||||
Project File Date: 05/11/2022
|
||||
|
||||
<h2>Output:</h2>
|
||||
Build target 'Target 1'
|
||||
linking...
|
||||
Program Size: data=102.2 xdata=0 code=4582
|
||||
creating hex file from ".\Objects\C52"...
|
||||
".\Objects\C52" - 0 Error(s), 0 Warning(s).
|
||||
Build Time Elapsed: 00:00:00
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
3
Objects/C52.lnp
Normal file
3
Objects/C52.lnp
Normal file
@ -0,0 +1,3 @@
|
||||
".\Objects\main.obj"
|
||||
TO ".\Objects\C52"
|
||||
PRINT(".\Listings\C52.m51") RAMSIZE(256)
|
Loading…
x
Reference in New Issue
Block a user